• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル エンター検索 delでクリア)

エクセルでエンター検索と削除のマクロが動かない

このQ&Aのポイント
  • エクセルのマクロで住所録の入っているシートから宛名と概要の内容を検索し、結果を削除するマクロを作成しましたが、マクロが動かない状態です。
  • マクロを使用するために、宛名用セル(C3)と概要用セル(D3)に検索ワードを入力し、ボタンをクリックして「検索」と「削除」のマクロを実行します。
  • チェンジイベントを使ってマクロを実行するため、サイトの記載を参考にしながら試していますが、うまく動かすことができません。エクセル初心者で進めず困っています。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

マクロの検索でC3とD3を書き換えてるので都度マクロの検索が実行され続けている状態ですね。 Application.EnableEvents = False でイベント処理を中止して処理が終わった時点で Application.EnableEvents = True でイベント処理を有効に戻します。 処理の途中でエラーになった場合中止のままになりますのでイミディエイトウィンドウで Application.EnableEvents = True を実行してください。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Not Intersect(Target, Range("C3:D3")) Is Nothing Then If Target.Value = "" Then クリア Else 検索 End If End If Application.EnableEvents = True End Sub

Spits
質問者

お礼

ありがとうございました なんの問題もなく、希望通り動いてくれました また、書き込みに対して早急に回答頂きありがとうございました 奥が深いので、これからもネット検索して自分で色々いじりながら勉強していきます 本当にありがとうございました

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

> サイトを見ているとmsgbox のところをマクロ名に変えてみれば動くとあり、 > Macro 検索 > Macro "検索" > など入力方法を試したのですが上手くいきません サイトに記載されているコードでMsgBoxと書かれているところをマクロ名に変えれば動きますということですね。マクロ名が検索でしたらそのまま検索と記載すればいかがですか。 マクロ名が検索とクリアでしたら(C3またはD3に入力とあるのでその両方を見てます) たとえば以下のような感じになると思いますが。 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("C3:D3")) Is Nothing Then If Target.Value = "" Then クリア Else 検索 End If End If End Sub

Spits
質問者

補足

早速教えていただいたマクロをワークシートに入力しました 検索セルにワード入力してエンターを押したところマクロは起動しているのですが、あらたな問題が発生しました まずワードを入れエンター押した時に 実行時エラー28 スタック領域が不足しています とでて、ワードを削除すると 実行時エラー13 型が一致しません となります ちなみに検索マクロは Sub 検索() Cells(3,"C").Value = "*" & Cells(3,"C").Value & "*" Cells(3,"D").Value = "*" & Cells(3,"D").Value & "*" Sheets("住所").Range("A12:I10000").AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Range("C2:D3"),Copy, CopyToRange:=Range("A8:I8"),Unique:=False Range("A9").Select End Sub クリアはフィルターで検索抽出した回答を選択して、罫線を含め全消去するものです エラーは検索ワードを❇︎で囲っているのですが、その❇︎が延々と動いてしまっているようです クリアの方は何が起きているかわかりません 検索のマクロを書き換えないとダメなのですか? なんどもすいませんが教えて下さい

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

どのようなコードなのか不明なので原因がわかりませんが、コードの途中の切れ目となるところ(IFで分岐しているところなどでIFの後とか、実際にマクロが呼ばれているかどうか呼び出すマクロの頭とか、シートチェンジの頭とか)にMsgBoxを入れてどこまで実行されているのか確認してみてはいかがですか。 また、マクロ名をPublic Sub 元のマクロ名()に変更したらどうなるでしょう。

Spits
質問者

補足

すでに色々と試したものは、消してしまい、新たなものを試すと言う方法でやっていたので、msgboxで動いていたものも消してしまい残っていないんです サイトを見ているとmsgbox のところをマクロ名に変えてみれば動くとあり、 Macro 検索 Macro "検索" など入力方法を試したのですが上手くいきません また、どのサイトを見ても、検索セルにワード入力で検索のような書き込みはあっても、削除でクリアマクロが出来るようなものが見当たりません まずこれは不可能なんですか? 出来れば、どのように書き込みをすればいいかを教えて下さい

関連するQ&A