• 締切済み

エクセル マクロ 検索 自動記録できない

excel2003でマクロを作っていますが、  ファイルを立ち上げたときに自動的にファイル-編集-検索を実行し、 検索画面を起動するようにしたいので、その動作を自動記録しようとするのですが、記録できません。 過去の質問を見て、 Application.Dialogs(xlDialogFormulaFind).Show ↑これを使えば出来ると書いてありましたが、 少し古いエクセルの検索画面で、私が使いたいexcel2003の検索画面ではありませんでした。  どのようにすれば、検索画面をマクロで起動できるのでしょうか。 ご教示いただけますようよろしくお願いします。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

SendKeysは便利ですが 危険もあることを承知してください Excel単独で動作している場合はいいのですが 他のアプリが動作していて ActiveSheet.SelectとSendKeysの命令の間にフォアグランドウィンドウが切り替わってしまった場合切り替わった側にキー操作が送信されてしまいます めったに無いことですがご承知おきください

回答No.3

ど~も。 難しいことは言えませんが、 多分下コードをコピペしていただくだけで、思い通りに動くのではないでしょうか? 一つ条件として、ThisWorkbookモジュールにコピペしてください。 ThisWorkbookモジュールは、Sheet3(Sheet3)の下にあります。 ----------------------------------------------------------------- Private Sub Workbook_Open()  Application.CommandBars("Worksheet Menu Bar"). _   Controls("編集(&E)").Controls("検索(&F)...").Execute End Sub ----------------------------------------------------------------- どうでしょう。

gywdq050
質問者

お礼

大変お礼が遅くなり申し訳ありません。 このようなやり方があるのですね。 大変参考になりましたありがとうございました。

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

>少し古いエクセルの検索画面 バージョンにあわせた画面が出てくると思ってましたが、出てきませんか。 Sub test01() Application.Dialogs(xlDialogFormulaFind).Show End Sub Sub test03() Application.Dialogs(xlDialogFormulaReplace).Show End Sub どちらとも違いますか。

gywdq050
質問者

お礼

ありがとうございました。 これについては、なぜかエクセル2000の検索画面が出てくるのです。 よって、オプションとかの設定がないのです。このたびはオプション設定をつかいますので、別の方法でやらしていただきます。 ありがとうございました。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

メニューである CommandBarから探して Executeメソッドの実行になりそうです dim cmd as CommandBar dim pop as CommnadBarPopup dim btn as CommnadBarButton set cmd = CommandBars("Worksheet Menu Bar") set pop = cmd.Controls("編集(&E)") set btn = pop.Controls("検索(&F)...") btn.Execute または Sendkeysを使って ActiveCell.Select SendKeys "^f" といった具合でしょう

gywdq050
質問者

お礼

sendkeysは非常に便利ですね。初めて知りました。 これはいろいろ応用できそうです。 お礼が遅くなり申し訳ありませんが、ありがとうございました。 大変参考になりました。

関連するQ&A

  • Excelで検索マクロを作りたい

    Excelで検索マクロを作るのに Sub test01() Application.Dialogs(xlDialogFormulaFind).Show End Sub を記述しましたが検索画面で「半角と全角を区別する」にチェックが入ってしまっていますが、チェックがない状態で立ち上げるにはどうしたら良いでしょうか?

  • エクセル「検索と置換」の表示を消すマクロ

    エクセルの「検索と置換」を Application.Dialogs(xlDialogFormulaFind).Show で出現させて検索の作業をしています。 作業後に「検索と置換」の画面をマクロで消したいのですが どのようなコードになるでしょうか。 宜しくお願いいたします。

  • エクセルVBAでマクロなしのブックでマクロを使う方法

    タイトルが変ですが、こういうことです。 Sub serch() Application.Dialogs(xlDialogFormulaFind).Show ActiveCell.Value End Sub このコードは検索ダイアログを表示するものですが、これをマクロなしの様々なブックで使いたいのです。 何か方法があるでしょうか?

  • 【Excel97及び2000】マクロの自動記録

    マクロの自動記録をしたのですが、自動記録をしたファイルを開いた時にしかそのマクロが出てきません。 <操作過程>  1.A.xlsというファイルを開いた状態で自動記録(PERSONAL.xlsも再表示しておいた)  2.すべて保存  3.B.xlsというファイルを開いてマクロボタンをクリックしても出てこない  4.A.xlsを開いてマクロボタンをクリックするとそのマクロは出てくる しかも、そのマクロを削除しようとしても削除ボタンが使用できず、ステップインボタンをクリックすると「このプロジェクトのマクロは無効に設定されています。マクロを有効にする方法についてはオンライン ヘルプまたはホスト アプリケーションのドキュメントを参照してください。」というコマンドが出てしまいます。ヘルプを見てもさっぱり分かりません。 PC更新前(Excel97)では普通に自動記録できたのですが、更新後は97でも2000でもこういう状態になってしまいました。 どうしたら以前のようにマクロの自動記録ができるのでしょうか? 昔作ったマクロはどのファイルを開いても出てきますし、以前のように削除もできますし編集画面も出ます。

  • IMEを制御するマクロについて教えてください

    エクセルを開いて、検索ボタンをクリックするとエクセルの検索ウインドが開くマクロを組みました。 Application.Dialogs(xlDialogFormulaFind).Show それで、この検索ウインドに入力する文字は日本語しか想定してないので、自動的にIMEをデフォルトの半角英数から、ひらがなに変更させるマクロを組みたいのですが、私は全くのド素人のためさっぱりわかりません。 どなたかお手数ですが教えてください。よろしくお願いいたします。

  • マクロの自動記録について

    Sub Macro1() 'Macro1 Macro 'Keyboard Shortcut:Ctrl+a Application.Run"ATPVBAEN.XLA!Sample",Worksheets("sheet1").Range("$A$2:$AD$31"),ActiveCell,"R",10,False ActiveCell.Offset(0,1).Select End Sub  これは、マクロの自動記録を用いて、『ツール>分析ツール>サンプリング』の動作を自動的に生成されたマクロ(プログラム)を書き直したものです。  このマクロを実行しようとすると、『実行時エラー'1004':'ATPVBAEN.XLA'が見つかりません。ファイル名およびファイルの保存場所が正しいか確認してください。』と出て、マクロが実行できません。どうすればよいでしょうか?

  • エクセル/組み込み検索ダイアローグで初期値の指定は?

    エクセルVBAで、 Application.Dialogs(xlDialogFormulaFind).Show で出てくる検索用の組み込みダイアローグですが、デフォルトで 検索方向を「列」 検索対象を「値」 半角全角を区別しない という設定にしたいのです。 どのように記述すればよいのでしょうか?

  • エクセルマクロで自動記録したものが・・・

    置換えの動作を自動記録したマクロを実行すると、 「移動先のセルの内容を置き換えますか?」と小さなウインドウが表示され、それでOKをクリックすると先に進みます。 このウインドウを出さずにそのまま進める方法はありますか? あればその方法を教えてください。

  • エクセル 複数シート検索のマクロ

    以前、下記の質問をさせてもらい ---- 以下 --------------- エクセルの文字列検索で、複数シートにまたがった場合のマクロ記述を知りたいです。 シートaとシートbの選択は下記となると思いますが、 Sub Macro1() Sheets(Array("a", "b")).Select Sheets("a").Activate End Sub その後で、検索窓([ctrl]+[f])を表示させたいのですが・・・。 ---- 以上 --------------- に対して、以下のご回答を受けたのですが、 Sub TEST01() Sheets(Array("a", "b")).Select Cells.Select Application.Dialogs(xlDialogFormulaFind).Show End Sub うまく行く場合もあるのですが(と思い解決で締め切ってしまいました)、大抵の場合(該当文字列が複数あるとき?)にフリーズしてしまいます。 上記マクロだと、「検索する文字列」タイトルで[次を検索][閉じる][置換]ボタンが表示され(古いOffice?)、 マクロを使用しない通常の[ctrl]+[f]だと、「検索と置換」タイトルで[検索]と[置換]タグが表示されます(Office2003)。 また、マクロを実行した後は通常の[ctrl]+[f]、[編集]-[検索]が効かなくなってしまいます。 この部分はフリーズとは無関係かもしれませんが・・・。 フリーズしないマクロの記述と、出来れば検索終了後に特定のシートに戻るようなマクロも追加したいです。 また、別件になりますが、ファイルを開いた時に必ず特定のシートに位置づけられる事ができればそれもご教授願いたいです。

  • マクロの記録ができません

     こんにちは、教えてください。マクロを作ろうとしているのですがうまくいきません。ヴァージョンは「2002」です。  「マクロの保存先」で「個人用マクロブック」を選び実行しようとしたら「起動フォルダにある個人用マクロブックは記録のために開かれた状態でなければなりません」>「記録できません」というエラーが出て実行できませんでした。  過去にも似た質問があったので読んでみると、個人用マクロブックは「XLSTART」というフォルダの中に「PERSONAL.XLS」というファイル名で認識されているとのこと。確かに「XLSTART」というフォルダはあるのですが中は空でした。場所は、「ドライブ名:\Program Files\Microsoft Office\Office10\XLSTART」です(ドライブ名:\Documents and Settings\ユーザー名\Application Data\Microsoft\Excel\XLSTARTではありませんでした)。  そこで新しいブックを立ち上げて「PERSONAL.XLS」という名前で「XLSTART」フォルダに保存してみました。すると、新しいブックを立ち上げようとすると、通常は「Book1」という名前のブックができるのに、自動的に「PERSONAL.XLS」が立ち上がるようになってしまいました。  この状態でマクロの記録をしてみたら、一応記録はできますし動きます。  ところが、このマクロを編集しようとVBEを起動しても、Moduleが出て来ません。「VBAProject(PERSONAL.XLS)」と表示されるべき場所には「Sheet1」とあります。  そこで「XLSTART」フォルダの中の「PERSONAL.XLS」を削除してみたところ、以前と同じように新しいブックは「Book1」という名前に戻りました。ただし、マクロの記録はできません。  ちょっと混乱気味ですが、やりたいことは以下の3点です。 1.個人用マクロブックにマクロが記録できるようにしたい。 2.VBEで作ったマクロを編集したい。 3.新しいブックは「Book1」で立ち上がるようにしたい。  どうしたらいいのでしょうか。ご回答いただければ幸いです。

専門家に質問してみよう