web-dev-qa-db-ja.com

vbaのセルアドレスからExcelの結合セルの値を取得します

VBAで "$ B $ 4:$ B $ 11"のような範囲アドレスを持つExcelの結合セルの値を取得する方法

23
1355

Excelでマージセルを使用することが本当に推奨されていない場合(必要に応じて _Center Across Selection_ を使用します)、値を「含む」セルは左上(少なくとも、それを表現する方法です)。

したがって、範囲_B4:B11_の結合セルの値を取得するには、いくつかの方法があります。

  • Range("B4").Value
  • Range("B4:B11").Cells(1).Value
  • Range("B4:B11").Cells(1,1).Value

また、他のすべてのセルには値がありません。デバッグ中に、値がemptyであることがわかります。

また、Range("B4:B11").Valueは機能しないことに注意してください(_Debug.Print_ itを実行しようとすると実行エラー番号13になります)。

37
JMax

ジョシュ・ブラウンは(コメントで)私が最高の答えだと思うものを与えました:

マージされた領域の境界がわからないときは、次の値を取得します

Range("B6").MergeArea.Cells(1,1).Value

これは、たとえば、不明な範囲のセルを結合した可能性のあるファイルをループ処理している場合にVBAで役立ちます。したがって、この方法でより一般的になります。ジョシュありがとう!

26
todd w

これは2つの手順で実行できます。

最初に、結合されたセルの範囲に名前を付けます。結合されたセルを強調表示してから、リボンバーに移動します。Formulas Tab --> Define Name;

名前にスペースが含まれていないことを確認してください。例:defined_Name。出力/結果を表示する目的のセルに移動します。そのセルに次のように入力します:=defined_Name

完了したらEnterを押します。

0