Excel オブジェクトから結合されたセルの値を取得する

Excel で「A1」から「B2」の4セルが結合され値が設定されている場合に、Cells プロパティから4セルどこを指定しても値を取りたいと思うことがあると思いますが、実際に値の愛っているセルは結合されたセルの一番左上のセルのみであるため、ほかの位置を指定すると空の値が返ります。

【例】

A1:B2の結合セルに「10」が入力されていた場合

  • sheet.Cells(1, 1) ⇒ 10
  • sheet.Cells(1, 2) ⇒ “”
  • sheet.Cells(2, 1) ⇒ “”
  • sheet.Cells(2, 2) ⇒ “”

結合セルのどこを指定しても値を取得したい場合は「MergeArea」プロパティを使うと有効です。MergeArea.Cells の位置は必ず (1, 1)にして値が必ず存在するセルを指定します。

【例】

value = sheet.Cells(2, 2).MergeArea.Cells(1, 1).Value   ‘ = 10

]]>