• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでコードの編集が上手くいきません)

VBAでコードの編集が上手くいかない!エラーの解決方法を教えてください

このQ&Aのポイント
  • VBAで作成したコードを編集しているが、エラーが発生している。
  • シートのセルを変更した場合にオートフィルターを設定したいが、空白にするとエラーが発生する。
  • エラーの原因は、対象のセルが空白の場合にオートフィルター条件が設定されないため。処理の中でセルが空白かどうかを判定し、その場合はオートフィルターを解除するように修正する必要がある。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

所定のセル範囲に空白以外で記入したら,オートフィルタを掛け直します。 シート1: private sub Wokrhseet_Change(byval Target as excel.range)  dim h as range  if application.intersect(target, range("C40:C45")) is nothing then exit sub  worksheets("リスト").autofiltermode = false  for each h in target  if h.value <> "" then  worksheets("リスト").range("A:C").autofilter field:=1, criteria1:=h.value  end if  next end sub #シート2のマクロは,今回のご質問には無関係です #補足 C40,C42,C44の3カ所のセルがあったとして,エクセルではそれらのセルを「同時に」書き換えることも「やろうと思えばできます」。 例えば3つのセルを選んで一斉にDeleteキーで削除するとか,一斉にCtrl+Enterで入力する(勿論これでは同じデータが記入されてしまいますけど)とか,どこかからデータをコピー貼り付けるとか。 いまマクロを検討しているアタマでは「1個のセルを書き換えたとき」という前提(想定)でマクロを書いていると思いますが,先にお話ししたような複数セルの同時操作といった「想定外の操作」でエラーにならないように,マクロの方は「出来ること全てに備えて(どのように動作すればよいのか考えておいて)」作成しなければいけません。

roadsky353
質問者

お礼

一旦、質問を閉め切り 再度質問させていただきます。 有難うございました。

roadsky353
質問者

補足

補足にて判りやすいご指導を頂き有難うございます。 今回のマクロを、前回のマクロを消して書きこんだのですが 何故かオートフィルタ―の掛け直しができなくなりました。 ちなみに、エラーも出ません。 どうしたら宜しいでしょうか?

関連するQ&A

専門家に質問してみよう