エクセルVBAを勉強中のシバマメです!
エクセルVBA、とっても便利です。
手間のかかることが一気にできちゃいます。
下の様な表があった場合。
人に見せるために、セルを結合したい場合があると思います。
隣り合ったセルの値が同じ時に、セルを結合して一つに見せたい。
そんな時に、下の簡単なコードで実現できちゃいます。
あまり、需要ないかもしれませんが…
例え1000行あろうと、あっという間です。
手作業だと数十分、数時間かかるかも。
でも、VBAなら、こんな短いとコードだけです。
そのうえ、簡単な内容です。
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 ▶ボタンで実行
実行すると↓のようになります。


↓よろしければクリックお願いします🌼
にほんブログ村


コメント