VBA開発

結合セルの初期化(ClearContents)のエラーを回避する

結合セルをClearContentsでエラーが出る

結合セルは厄介なもので、セル情報クリアするのもひと手間です。


  '■結合されていなければエラーは出ない
    Range("A1").ClearContents

  '■結合されていればエラーが出る(消去できない)
    Range("A1").ClearContents ’実行時エラー1004 この操作は結合したセルには行えません。

  '■Clearで無理やり削除しようとしても、同じエラーが発生する
    Range("A1").Clear ’実行時エラー1004 この操作は結合したセルには行えません。

結合セルの初期化方法

  '■結合範囲がA1:C3とした場合、消去される
    Range("A1").MergeArea.ClearContents

  '■結合範囲がA1:C3とした場合、消去される
    Range("B2").MergeArea.ClearContents

  '■結合範囲がA1:C3とした場合、消去される
    Range("C3").MergeArea.ClearContents

  '■Clearの場合、結合状態も解除される
  Range("A1").MergeArea.Clear

  '■ClearContentsではなく空文字列を代入する場合は、MergeAreaはいらない
  Range("A1")=""   ’結合範囲がA1:C3とした場合の初期化
  Range("B2")=""   ’結合範囲がA1:C3とした場合は代入できないので不可
  Range("C3")=""   ’結合範囲がA1:C3とした場合は代入できないので不可

  '■ループで初期化する場合は
  Cells(i,1)=""    ’■結合セルの一番左上を参照させる必要があります

  '■結合されていなくても、エラーは出ず消去される
    Range("A1").MergeArea.ClearContents

その他

コメント

タイトルとURLをコピーしました