- ベストアンサー
マクロのデータ削除
結合されたセルのデータを、マクロを使って一括削除したいです。 ex 結合セル (A1:B1)、(A2:B2)、(C3:E3) 上のような結合セルを一度に削除するには、どんなコードを組めばいいのでしょうか? つまり、A1のセルからE3のセルまで、一括削除したいです。 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 Sub sample() For Each a In Range("A1:E3") If a.MergeCells Then a.MergeArea.ClearContents Next End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
結合セルを解除するのか、データも含めてセルを削除するのか、紛らわしい質問ではないか。 (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照会を活用せよ。ほとんどヒントは見つかる。
- keithin
- ベストアンサー率66% (5278/7941)
セルを削除するのではなく,セルに記入されたデータを削除したいのだとします マクロを使っているなら,わざわざ難しく考えずに素直に 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
- kybo
- ベストアンサー率53% (349/647)
Range("A1:B2,C3:E3").ClearContents としてみてください。
お礼
御回答有難うございます。 MergeCellsというコード(?)を使って、コートも手間がかからず組めて、セルの中のデータを削除したかったのですが、地道にコードを書いていきます。 有難うございました。
お礼
御回答有難うございます。 MergeCellsというコード(?)を使って、コートも手間がかからず組めて、セルの中のデータを削除したかったのですが、地道にコードを書いていきます。 有難うございました。