結合セルを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では厄介です。
セルの結合は厄介?結合で実行結果が異なる【エクセルマクロ】
コメント