• ベストアンサー

ブックを開くと同時に検索のウインドウが出るマクロを教えてください。

エクセルがわからない子でもできるように、 BOOK1.xlsを立ち上げると、検索の画面が出てくるマクロを作りたいのですが、自動記憶マクロだと、表示されなくて困っています。 どなたかわかる方教えてください。 よろしくお願いいたします。

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

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.7

No.3の回答者です。 BOOK1.xlsのThisWorkbookモジュールに Private Sub Workbook_Open() Application.CommandBars("WorkSheet Menu Bar").Controls("編集(&E)").Controls("検索(&F)...").Execute End Sub としていますか? >Wendy02さん >#3さんの回答は、詳しく分りませんが、 >ダイアログの立ち上げに、コマンドボタンの >Execute メソッドは利かないような気がしますね。 私の環境(WIN XP、EXCEL2002)では 上記コードでメニューから編集→検索と たどったのと同じ結果を得られるのですが・・・。 実際に試されました?

その他の回答 (7)

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

masa_019 さん、Wendy02です。 >実際に試されました? 前回、貼り付けたコードでは、なぜか、何度やってもエラーが出ましたね。今回は通りました。 前回、Objectとしては取れるのですが、Executeでエラーが発生しました。原因を探したのですが、見つかりませんでした。 もしかしたら、こちらで、別のオブジェクトを頻繁に出し入れしている状況がエラーを出したのかもしれません。ただし、戻し忘れなどということはありえません。いずれにしても、大変、失礼しました。 私個人は、なるべく、日本語のリテラル文字列を使う書き方を避けているので、ほとんどやったことがありません。 私なら、以下のようにするかと思います。 Application.CommandBars.FindControl(, 1849).Execute この書き方は、最初に、ローカルウィンドウで、CommandBarのControls の中のIDを調べるか、Excel VBAの資料で、IDのリストから調べるかしなればならない手間があります。また、逆に、このFindControlメソッドが万能で、その全てのコントロールを確保できるわけではありません。理由ははっきりしません。

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

こんにちは。 #2のお礼の書き込みに対する、割り込みになってしまうけれども、 以下を、<ThisWorkbook モジュール> に入れてください。 Auto_Open でも悪くはありませんが、もしつけるなら、<標準モジュール Module1, Module2 ...>の 「Sub Auto_Open 」... となります。 '<ThisWorkbook モジュール> '------------------------------ Private Sub Workbook_Open()   Worksheets("Sheet1").Select   Columns("D:D").Select   Application.Dialogs(xlDialogFormulaFind).Show End Sub '------------------------------ それから、#3さんの回答は、詳しく分りませんが、ダイアログの立ち上げに、コマンドボタンのExecute メソッドは利かないような気がしますね。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

標準モジュールに入れたのですよね? ひょっとして、頭にSubをつけてないとか?まさかとは思いますが・・・・。 Sub Auto_Open() Application.Dialogs(xlDialogFormulaFind).Show Columns("D:D").Select End Sub

pitan5110
質問者

お礼

びんご!! すみません。 Sub 'コメント’ Auto_Open() Application.Dialogs(xlDialogFormulaFind).Show Columns("D:D").Select End Sub でした。。。 ありがとうございました。 本当に、単純なミスでした。。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#2でご照会されているApplication.Dialogsは非常に有用で、たくさんあります。1例を上げますと(下記を実行しXで閉じると次々現れます) Sub Test01() Application.Dialogs(xlDialogFormulaFind).Show Application.Dialogs(xlDialogPrint).Show Application.Dialogs(xlDialogPublishAsWebPage).Show Application.Dialogs(xlDialogSaveAs).Show Application.Dialogs(xlDialogSaveWorkbook).Show Application.Dialogs(xlDialogSearch).Show Application.Dialogs(xlDialogSendMail).Show Application.Dialogs(xlDialogSort).Show Application.Dialogs(xlDialogSortSpecial).Show End Sub エクセルでおなじみの画面が出せます。 http://www.code-vb.com/fragments/Excel_Dialogs.htm http://www.microsoft.com/japan/developer/library/vbaxl10/xlmscDialogArgLists.htm に網羅されていました。

pitan5110
質問者

お礼

おもしろい!! まず、検索→×→印刷→×→Webページとして発行(アシスタント表示)→×→名前をつけて保存→×→通常のファイル検索 ん?実行時エラー'1004'DialogクラスのShowメソッドが失敗しました。 になってしまいました。 これを使ってやってみます。 ありがとうございました。

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.3

Workbook_Openに Application.CommandBars("WorkSheet Menu Bar").Controls("編集(&E)").Controls("検索(&F)...").Execute っていう方法も有ります。

pitan5110
質問者

お礼

Workbook_Open Application.CommandBars("WorkSheet Menu Bar").Controls("編集(&E)").Controls("検索(&F)...").Execute End Sub で、やってみたのですが、できません。 book名を指定したほうが、いいのでしょうか。 ごめんなさい。本当に無知で。 お早い回答 ありがとうございます。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

Workbook_Open か 標準モジュールで Auto_Open に  Application.Dialogs(xlDialogFormulaFind).Show とか?

pitan5110
質問者

お礼

Auto_Open Application.Dialogs(xlDialogFormulaFind).Show Columns("D:D").Select End Sub なにが、だめなのでしょう? やはり、表示されませんでした。 難しいですね。 ありがとうございました。

noname#187541
noname#187541
回答No.1

こんばんは。 ブックを開いたときにマクロを実行するには 1 ThisWorkbookのOPENイベントに記述する 2 プロシージャ名をAuto_Openという名前にする。 のどちらかで出来ます。 参考に下記のURLをどうぞ。

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_130_04.html
pitan5110
質問者

お礼

ありがとうございます。 自動マクロで、まずD列を選択後、編集メニューから検索を表示させて、記憶終了ボタンを押してみました。 ところが、実行させてみると、検索の画面が表示されない(モジュールの中身も、そのプロシージャーがなかったので、質問させていただきました。 このページを拝見させていただいて、 Auto_Open Columns("D:D").Select ←自動記憶で作ったマクロ End Sub を実行してみたのですが、やはり表示されませんでした。 なにがだめなのでしょう?

関連するQ&A