プロが教えるわが家の防犯対策術!

結合されたセルのデータを、マクロを使って一括削除したいです。

ex 結合セル (A1:B1)、(A2:B2)、(C3:E3)  
上のような結合セルを一度に削除するには、どんなコードを組めばいいのでしょうか?
つまり、A1のセルからE3のセルまで、一括削除したいです。

宜しくお願いします。

A 回答 (4件)

一例です。



Sub sample()
For Each a In Range("A1:E3")
If a.MergeCells Then a.MergeArea.ClearContents
Next
End Sub
    • good
    • 0

結合セルを解除するのか、データも含めてセルを削除するのか、紛らわしい質問ではないか。


(1)Delete
(2)MergeCells=ふぁlせ
(3)ClearContents
など自分で色々やってみよ。
質問する前に、実際やってみたら。論より証拠だ。
例えば
Sub test01()
Range("a1:a5").Delete
End Sub
Sub test02()
Range("a1:B5").Delete
End Sub
Sub test03()
Range("a1:B3").ClearContents
End Sub
Sub test04()
Range("a1:A5").MergeCells = False
End Sub
のA列のみ指定、A,B列両方範囲指定など色々変えてやってみるべき。
ーーー
結合セルだけ見つけるには
Sub test05()
For Each cl In Range("a1:E5")
If cl.MergeCells = True Then
MsgBox cl.Address
End If
Next
End Sub
ーー
結合セル範囲を掴むなら
http://www.moug.net/tech/exvba/0050106.html
を勉強せよ。
Googleで「エクセル VBA セル結合範囲」などで照会すること。
ーー
もっと質問する前に、GoogleなどのWEB照会を活用せよ。ほとんどヒントは見つかる。
    • good
    • 0

セルを削除するのではなく,セルに記入されたデータを削除したいのだとします



マクロを使っているなら,わざわざ難しく考えずに素直に
sub macro1()
 range("A1:B1").clearcontents
 range("A2:B2").clearcontents
 range("A3:E3").clearcontents
end sub
としてやれば,ナニも悩む必要はありません。

実際には
sub macro2()
 range("A1:A2,B1:B2,C3:E3").clearcontents
end sub
でもいいです。


ちなみに
>つまり、A1のセルからE3のセルまで、一括削除したいです。
なら
sub macro3()
 range("A1:E3").clearcontents
end sub
でも出来ます。



逆にわざわざ難しくしたければ,こんな風でもいいです。
sub macro4()
 dim h as range
 dim res as range
 set res = range("A1,A2,C3")

 for each h in res
  set res = union(res, h.mergearea)
 next
 res.clearcontents
end sub
    • good
    • 0
この回答へのお礼

御回答有難うございます。 MergeCellsというコード(?)を使って、コートも手間がかからず組めて、セルの中のデータを削除したかったのですが、地道にコードを書いていきます。 有難うございました。

お礼日時:2011/12/26 12:24

Range("A1:B2,C3:E3").ClearContents



としてみてください。
    • good
    • 0
この回答へのお礼

御回答有難うございます。 MergeCellsというコード(?)を使って、コートも手間がかからず組めて、セルの中のデータを削除したかったのですが、地道にコードを書いていきます。 有難うございました。

お礼日時:2011/12/26 12:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています