エクセルVBAを勉強中のシバマメです!
エクセルVBA、とっても便利です。
手間のかかることが一気にできちゃいます。
下の様な表があった場合。
人に見せるために、セルを結合したい場合があると思います。
隣り合ったセルの値が同じ時に、セルを結合して一つに見せたい。
そんな時に、下の簡単なコードで実現できちゃいます。
あまり、需要ないかもしれませんが…
例え1000行あろうと、あっという間です。
手作業だと数十分、数時間かかるかも。
でも、VBAなら、こんな短いとコードだけです。
そのうえ、簡単な内容です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Sub Yokoketugou() With Application ' 警告を非表示に .DisplayAlerts = False .ScreenUpdating = False End With Dim maxCol As Long Dim maxRow As Long Dim i As Long Dim j As Long maxRow = Cells(Rows.Count, 1).End(xlUp).Row maxCol = Cells(1, Columns.Count).End(xlToLeft).Column For j = 1 To maxRow For i = maxCol To 1 Step -1 If Cells(j, i).Value = Cells(j, i + 1) Then Range(Cells(j, i), Cells(j, i + 1)).Merge End If Next i Next j With Application ' 警告を表示に戻しておきます。 .DisplayAlerts = True .ScreenUpdating = True End With End Sub |
簡単にコードの説明
- 3〜6 警告非表示です。これをしとかないと、毎回確認とかされてしまいます。
- 8〜11 変数の設定です。変数名の付け方は、ルールに従いましょう。
- 13〜14 最終列と最終行の取得。
- 15〜21 ここで、処理です。隣り合うセルの中身が同じ場合は、結合します。
- 23〜26 警告非表示にしたのを戻しておきます。
使い方
- 下記のコードを個人用マクロブックに保存しましょう。
個人用マクロブック作成方法 - 対象のエクセル表を開いた状態でマクロを実行します。
- F5 or ▶ボタンで実行
実行すると↓のようになります。
↓よろしければクリックお願いします🌼
にほんブログ村
コメント