結合セルを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
その他
- Clearメソッドに関する情報はこちらを参照。
- 実務ではWorksheet名を記載して可読性を上げましょう。その際は省略化した記載をしましょう
- 実際には実務でよく使うケースは、Range(“A1″)=””のように空文字列の代入でしょう。
- 結合セルは他にも厄介です。見栄えはいいのですがVBAでは厄介です。
セルの結合は厄介?結合で実行結果が異なる【エクセルマクロ】



コメント