こんにちは。
派犬事務員のコロ子です。
前回の記事を書いたら、MergeAreaプロパティを使えばいいんじゃない?
と教えて頂いた。
MergeAreaプロパティ、こんな便利なものがあったなんて!!!
「練習のために○○は使わないでコードを書いてみましょう」的な事をしているのではなくて、素で知らなかった。
知らないと「VBA道場で修行的なコード」「体育会系に鍛錬的なコード」になっちゃう。修行も鍛錬も好きじゃないからー!!

MergeAreaプロパティは「結合されているセル範囲のRangeオブジェクトを返す」とのことなので、例えば
Range("B6").MergeArea(1).Value
と書くとB6セルを含む結合範囲の1番目のセルの値が取得できる。
ちなみに
Range("B4:B10").MergeArea.Value
とか
Range("B4:B10").MergeArea(1).Value
と書きたくなるけど
Range("B6").MergeArea(1).Value
Rangeの中身は単独セルを書かないといけない。
では、早速MergeAreaプロパティを使って書き直そう。
Sub Test1()
Dim ran As Range
For Each ran In Range("D4:H17")
Debug.Print "日付:" & _
Cells(2, ran.Column).MergeArea(1).Value & _
Cells(3, ran.Column).Value
Debug.Print "サンプル名:" & _
Cells(ran.Row, 2).MergeArea(1).Value
Debug.Print "ロット番号:" & _
Cells(ran.Row, 3).MergeArea(1).Value
Debug.Print "データ:" & ran.Value
Next ran
End Subえっつ!!これだけ?超簡単じゃん!
めちゃめちゃスッキリ!