この記事では、VBAマクロで結合セルの値を取得(複数も)する方法【Range, MergeArea, MsgBox関数を使用】について解説していきます。
ポイントとしては`Range`, `MergeArea`, `MsgBox`関数を使用することです。
完全な初心者でもわかりやすいように、変数名を独特の表現にしています。実際に使用する際には、適切な英語表記に変更してご活用ください。
それでは詳しく見ていきましょう!
VBAマクロで結合セルの値を取得(複数も)し表示・出力する方法【シート1のA~C列の範囲で】
それではまず、シート1のA~C列の範囲で結合セルの値を取得し、それらを別のシートのA列2行目から順々に表示・出力する方法について解説していきます。
Sub GoukeiHyokaSheet1()
Dim hyou1 As Worksheet, hyou2 As Worksheet
Dim masu As Range, hajimeMasu As Range
Dim gyouHyou2 As Integer
Set hyou1 = ThisWorkbook.Sheets("Sheet1")
Set hyou2 = ThisWorkbook.Sheets("Sheet2")
gyouHyou2 = 2
For Each masu In hyou1.Range("A1:C100")
If masu.MergeCells Then
Set hajimeMasu = masu.MergeArea(1)
hyou2.Cells(gyouHyou2, 1).Value = hajimeMasu.Value
gyouHyou2 = gyouHyou2 + 1
End If
Next masu
End Sub
Alt + F11にてVBE画面を開いて、上記コードをコピペしましょう。コードのAlt+F8を押し、マクロ選択画面で`GoukeiHyokaSheet1`関数を実行します。
このコードでは、シート1のAからC列までの範囲を走査し、結合されたセルが見つかった場合、その結合セルの最初のセルの値を取得し、シート2のA列に順番に追記していくものになっています!
VBAマクロで結合セルの値を取得(複数も)し表示・出力する方法【ブック内のすべてのシートで】
続いては、ブック内のすべてのシートでA~C列の範囲の結合セルの値を取得し、シート名とともにメッセージボックスで表示する方法について解説していきます。
Sub GoukeiHyokaAllSheets()
Dim hyou As Worksheet
Dim masu As Range, hajimeMasu As Range
Dim kekkaMoji As String
For Each hyou In ThisWorkbook.Worksheets
For Each masu In hyou.Range("A1:C100")
If masu.MergeCells Then
Set hajimeMasu = masu.MergeArea(1)
kekkaMoji = kekkaMoji & hyou.Name & ": " & hajime
Masu.Value & vbCrLf
End If
Next masu
Next hyou
MsgBox kekkaMoji
End Sub
Alt + F11にてVBE画面を開いて、上記コードをコピペしましょう。コードのAlt+F8を押し、マクロ選択画面で`GoukeiHyokaAllSheets`関数を実行します。
このコードでは、ワークブック内の全てのシートをループし、各シートのAからC列までの範囲内で結合セルを探します。
結合セルが見つかると、その値とシート名を文字列に追加し、最後にメッセージボックスで全ての結果を表示します(^^)/
まとめ VBAマクロで結合セルの値を取得(複数も)する方法【Range, MergeArea, MsgBox関数を使用】
この記事では、VBAを使用してExcelの結合セルの値を取得する方法を、シートごとおよびワークブック全体で行う二つの方法を紹介しました。
マクロをマスターしてさらに快適な毎日にしていきましょう(^^)/