• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ もし特定の列が無かったら、何もしないが、有った場合は、マクロを)

マクロを使って特定の列が存在する場合のみ処理を行いたい

このQ&Aのポイント
  • Excel2003でマクロを実行し、特定の列が存在する場合のみ処理を行いたい場合、以下のようなコードを使用します。
  • まず、列の存在チェックを行います。もし特定の列が存在しない場合は、処理を行わずに終了します。
  • 存在する場合は、指定したマクロを実行します。この方法を使用することで、エラーを回避しながら特定の列が存在する場合にのみ処理を行うことができます。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

Select は、この場合必要ありません。 Find メソッドは、あまり省略をしないほうがよいです。 Ubound を使って、上限のIndex を取るのが良いです。 '// Sub a5_Click()    Dim Koumoku(6) As String  Dim i As Long  Dim r As Range    Koumoku(0) = "日時"  '・  '・  '・  Koumoku(6) = "submit2"    For i = 0 To Ubound(Koumoku)   Set r = Cells.Find(What:=Koumoku(i), MatchCase:=False)   If Not r Is Nothing Then    r.EntireColumn.Delete Shift:=xlToLeft   End If  Next i End Sub

noname#248169
質問者

お礼

>Select は、この場合必要ありません。 そうだったのですか。 教えてくださったコードで無事出来ました。 こちらのコードのほうが分かりやすいですね。Selectに拘ってましたが、必要が無いと知りました。 ありがとうございました。

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

Findの戻り値を使って存在有無の判断をします。 詳しくは参考URLでどうぞ。

参考URL:
http://officetanaka.net/excel/vba/cell/cell11.htm
noname#248169
質問者

お礼

同じ現象のHPありがとうございました。 >失敗が許されない検索など、検索とは呼べません。 確かに・・・と納得です。 検索の型なども詳しく記載されていまして、大変参考になりました。 ありがとうございました。

関連するQ&A