• ベストアンサー

マクロのデータ削除

結合されたセルのデータを、マクロを使って一括削除したいです。 ex 結合セル (A1:B1)、(A2:B2)、(C3:E3)   上のような結合セルを一度に削除するには、どんなコードを組めばいいのでしょうか? つまり、A1のセルからE3のセルまで、一括削除したいです。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.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)
回答No.3

結合セルを解除するのか、データも含めてセルを削除するのか、紛らわしい質問ではないか。 (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)
回答No.2

セルを削除するのではなく,セルに記入されたデータを削除したいのだとします マクロを使っているなら,わざわざ難しく考えずに素直に 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

TEXASHAPPY
質問者

お礼

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

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

Range("A1:B2,C3:E3").ClearContents としてみてください。

TEXASHAPPY
質問者

お礼

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