あなたの習慣について教えてください!!

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

どなたかわかる方教えてください。
よろしくお願いいたします。

A 回答 (8件)

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)では
上記コードでメニューから編集→検索と
たどったのと同じ結果を得られるのですが・・・。
実際に試されました?
    • good
    • 0

masa_019 さん、Wendy02です。



>実際に試されました?
前回、貼り付けたコードでは、なぜか、何度やってもエラーが出ましたね。今回は通りました。

前回、Objectとしては取れるのですが、Executeでエラーが発生しました。原因を探したのですが、見つかりませんでした。

もしかしたら、こちらで、別のオブジェクトを頻繁に出し入れしている状況がエラーを出したのかもしれません。ただし、戻し忘れなどということはありえません。いずれにしても、大変、失礼しました。

私個人は、なるべく、日本語のリテラル文字列を使う書き方を避けているので、ほとんどやったことがありません。

私なら、以下のようにするかと思います。

Application.CommandBars.FindControl(, 1849).Execute

この書き方は、最初に、ローカルウィンドウで、CommandBarのControls の中のIDを調べるか、Excel VBAの資料で、IDのリストから調べるかしなればならない手間があります。また、逆に、このFindControlメソッドが万能で、その全てのコントロールを確保できるわけではありません。理由ははっきりしません。
    • good
    • 0

こんにちは。



#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 メソッドは利かないような気がしますね。
    • good
    • 0

標準モジュールに入れたのですよね?



ひょっとして、頭にSubをつけてないとか?まさかとは思いますが・・・・。

Sub Auto_Open()
Application.Dialogs(xlDialogFormulaFind).Show
Columns("D:D").Select
End Sub
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/12/14 13:31

#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 …
に網羅されていました。
    • good
    • 0
この回答へのお礼

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

これを使ってやってみます。
ありがとうございました。

お礼日時:2005/12/13 10:48

Workbook_Openに


Application.CommandBars("WorkSheet Menu Bar").Controls("編集(&E)").Controls("検索(&F)...").Execute
っていう方法も有ります。
    • good
    • 0
この回答へのお礼

Workbook_Open
Application.CommandBars("WorkSheet Menu Bar").Controls("編集(&E)").Controls("検索(&F)...").Execute

End Sub

で、やってみたのですが、できません。
book名を指定したほうが、いいのでしょうか。
ごめんなさい。本当に無知で。
お早い回答
ありがとうございます。

お礼日時:2005/12/13 10:39

Workbook_Open か 標準モジュールで Auto_Open に



 Application.Dialogs(xlDialogFormulaFind).Show

とか?
    • good
    • 0
この回答へのお礼

Auto_Open
Application.Dialogs(xlDialogFormulaFind).Show
Columns("D:D").Select
End Sub

なにが、だめなのでしょう?
やはり、表示されませんでした。

難しいですね。
ありがとうございました。

お礼日時:2005/12/13 10:33

こんばんは。



ブックを開いたときにマクロを実行するには

1 ThisWorkbookのOPENイベントに記述する
2 プロシージャ名をAuto_Openという名前にする。

のどちらかで出来ます。

参考に下記のURLをどうぞ。

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub0 …
    • good
    • 0
この回答へのお礼

ありがとうございます。
自動マクロで、まずD列を選択後、編集メニューから検索を表示させて、記憶終了ボタンを押してみました。
ところが、実行させてみると、検索の画面が表示されない(モジュールの中身も、そのプロシージャーがなかったので、質問させていただきました。

このページを拝見させていただいて、
Auto_Open
Columns("D:D").Select ←自動記憶で作ったマクロ
End Sub
を実行してみたのですが、やはり表示されませんでした。
なにがだめなのでしょう?

お礼日時:2005/12/13 10:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!