• ベストアンサー

excel VBA で、エクスプローラを開くとき

excel VBA で、フォルダを指定してエクスプローラーを開くことができますが、そのとき検索文字も指定できるのでしょうか。 具体的には、以下のようにpath0でパスを指定して、エクスプローラーが開きます。 Shell "c:\windows\explorer.exe " + path0, vbNormalFocus このとき、検索文字列を指定したいのですが、可能でしょうか? エクスプローラの右上の虫眼鏡のウインドウに入れる文字を指定して、検索を自動実行させたいのですが。

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

  • ベストアンサー
回答No.1

エクスプローラにはお望みのコマンドラインオプションは有りません。 http://www.atmarkit.co.jp/fwin2k/win2ktips/1290explorerop/explorerop.html またOLEオートメーションで操作できるようにもなっていません。 (あれば便利そうですがウィルス屋も泣いて喜びそうです。。。) なので、 windows7のエクスプローラをVBAで操作-1~3 http://okwave.jp/qa/q8588851.html http://okwave.jp/qa/q8588932.html http://okwave.jp/qa/q8595559.html の3番目の内容が目的達成の方法かと思います。 かなり大変そうです (^_^;) 私にはこれ以上のことは分かりませぬ。 低レベルの回答だと Sub test() Dim path0 As String path0 = "" Shell "c:\windows\explorer.exe " & path0, vbNormalFocus Application.Wait Now + TimeValue("0:00:01") 'エクスプローラが起動するまでの時間稼ぎ SendKeys ("{TAB 3}") 'TABキー3回 SendKeys ("いろは") SendKeys ("{Enter}") End Sub ご存知かも知れませんがSendkeysはタイミングがあてにならない場合があります。 また、NumLock が外れるバグもありますです。

cmc32000
質問者

お礼

すばらしい回答、有難うございます。 確かに、セキュリティという理由で、便利な使い方が制限されることは多いですね。VBAもそのうち廃止されるのでしょう。

関連するQ&A

  • VBAでフォルダを開く

    Excel2003で、VBAで指定フォルダを開く場合に myFol = "D:\aaa" Shell "C:\Windows\Explorer.exe " & myFol, vbNormalFocus これで開きますが、環境変数HOMEを指定することはできないでしょうか?

  • 空白が必要な理由を教えてください。

    http://okwave.jp/qa/q5024766.html を参考にVBAでフォルダを開いたのですが 一つ疑問があります。(素朴な疑問です) Sub OpenFolders() Dim targ As String targ = "C:\" Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus  '空白あり End Sub のコードは 「Shell "C:\Windows\Explorer.exe "」のexeの右隣に空白が入りますがなぜでしょうか?? Shell関数を使う場合は、空白を入れるのですか? Shell "C:\Windows\Explorer.exe" & targ, vbNormalFocus  '空白なし としたらエラーになりました。 ご教授よろしくお願いします。

  • ¥(パスセパレーター)について

    vbaでフォルダを開くコードを作ってるのですが、 パスの最後の¥(パスセパレーター)はあってもなくてもいいのでしょうか? Sub test() Dim myFile As String myFile = "C:\Program Files (x86)\" Shell "C:\Windows\Explorer.exe " & myFile, vbNormalFocus End Sub これでも、 myFile = "C:\Program Files (x86)" でも問題なく開けます。 myFile = "C:\" でも myFile = "C:" でもエラーにならないし、フォルダが開けました。 ¥がない場合は、自動でvbaが付けてくれてるのでしょうか? そもそもフォルダのパスを指定する際は、¥は要らないのでしょうか?

  • エクセル VBA フォルダを閉じる

    いつもお世話になっております。 下記のプロシージャでフォルダを開いているのですが、このフォルダを閉じる場合はどのように記述すればよろしいのでしょうか? よろしくお願いいたします。 Sub opn_fld() Dim myFol As String, mymsg As Integer Dim IE As Object myFol = "C:\ABC\" Shell "C:\Windows\Explorer.exe " & myFol, vbNormalFocus End Sub

  • VBAで開いているフォルダーを最前面に表示

    Excel VBAで指定したフォルダーを開きたいのですが、 Shell "Explorer.exe "・・・を使用すると幾つもフォルダーが開きます。 フォルダーが開いているかのチェックはできるのですが、 後ろに隠れているフォルダーを最前面に表示する方法がわかりません。

  • エクセルVBAで使うShell関数について

    現在、初心者ながらもエクセルを使って動画や音楽を検索して再生するソフトを作っています。 指定したファイルを、指定したアプリケーションで起動して開きたいと思い、ネットを使って調べたら2つの異なるShellの書き方で動かす方法が見つかりました。 2つのShell関数は同じものなのか教えて下さい。 (1) ret = Shell(Winamp_Path & "winamp.exe /ADD " & """" & Path) と、言う Shell(アプリケーションのフルパス/ADD""ファイルのフルパス) と書いてファイルをアプリケーションで開く方法。 (2) Call Shell(Path & oFile, vbNormalFocus) と、言う Shell(アプリケーションのフルパス, 起動時のウィンドウの状態) と書いてアプリケーションを起動する方法。 この2つは同じ種類のShell関数なのでしょうか。 (1)は、ファイルも一種のアプリケーションとして扱われているんでしょうか。 (2)がShell関数の基本型のようですが、(1)のような書き方が見つかってからは、他にも違う書き方があるかと思うと気になって仕方無いです。 使い方の違いは分かったのですが、調べても(2)の使い方や、別の関数や言語、APIを使ったアプリケーションの書き方しか見つからず、 エクセル2007VBのヘルプを見ても(2)の使い方しか見つからず、 Googleで、「エクセル Shell関数」と調べても、2つの違いが書かれている所が見つからなかったので質問しました。 ※この2つと違う、アプリケーションを起動するShellの記述があるなら、詳しくではなく、参考程度に教えて頂けると、とても嬉しいです。 頭の悪い質問だと思いますが、是非ともアドバイス、宜しくお願いします。

  • Windows Explorerのアイコンを出す方法

    知人がWindows付属のエクスプローラのアイコン(フォルダに虫眼鏡)をデスクトップにスタートメニューから出して使っていたら削除したらしくなくなってしまって困っていると相談を受けました。 ファイルの検索でエクスプローラを探したらパソコンの形のアイコンのEXEファイルが検索され、もちろんこれでも同じような結果が得られるし、スタートボタンを右クリックでもOKなのですができればフォルダに虫眼鏡のアイコンを出して元通りにしておきたいそうです。 フォルダに虫眼鏡のエクスプローラを復活させるにはどうすればいいのでしょうか? ご存知の方がいらっしゃいましたら教えてください。よろしくお願いいたします。

  • EXCELのVBAのコマンドボタンの動作について

    EXCELのVBAでコマンドボタンを押したとき、あるテキストを、単にテキストとして開く為に、以下のコーディングをしました。 しかし、「shell」コマンドは実行形式でないといけないようで、うまく行きません。どなたか、判る方いらっしゃいますか? --------------------------------------------- wk_path = ThisWorkbook.Path & "\memo1.txt" wk_rc = Shell(wk_path, vbNormalFocus) --------------------------------------------- (エラーコード:メッセージ) 5:プロシジャーの呼び出し、または引数が不正です。

  • エクセルでフォルダまたはファイルを開くマクロですが、どのように改良すれ

    エクセルでフォルダまたはファイルを開くマクロですが、どのように改良すればよろしいでしょうか? 下記マクロは、エクセルシートのJ列のあるセルをダブルクリックすると、そのセルに記入された文字列を検索して、該当のフォルダまたは、写真が開きます。(エクセルファイルと写真は同フォルダに保存している場合のみ有効) 困っていることは、J列のセルと該当フォルダまたは、写真ファイルをリンクさせたいのですが、文字列が全て一致している時のみしか開かないことです。 D<デジカメ<商品名フォルダ<写真ファイル 例えば セルJ3の文字列がABCEで、フォルダ名またはファイル名がABCDEFであった場合、文字列ABCEを含む条件で、フォルダ名またはファイル名ABCDEFを開くように改良したいのですが、 また、エクセルファイルと写真ファイルの保存場所は、全く違うフォルダにしたいのですが、 エクセルファイルと写真ファイルは、別フォルダの場合、どのように検索先フォルダのパスを入れたら良いのでしょうか? マクロに詳しい方ご教授下さい。よろしくお願い致します。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim myPath As String If Target.Cells(1, 1).Column <> 10 Then Exit Sub Cancel = True myPath = ThisWorkbook.Path & "\" & Target.Cells(1, 1).Text If Dir(myPath, vbDirectory) <> "" Then Shell "explorer.exe /e,/root," & myPath, vbNormalFocus Exit Sub End If myPath = Replace(LCase(myPath), ".jpg", "\" & Target.Cells(1, 1).Text) If Dir(myPath, vbNormal) <> "" Then Shell "rundll32.exe shimgvw.dll,ImageView_Fullscreen " & myPath, vbNormalFocus End If End Sub

  • 開いたときの位置を指定する事は可能ですか?

    Sub Sample() Dim myFile As String myFile = "C:\Program Files (x86)\" Shell "C:\Windows\Explorer.exe " & myFile, vbNormalFocus End Sub これでフォルダを起動させているのですが 開いたときの位置を指定する事は可能ですか? TOP=0 など、IE操作の様に画面に対する位置を指定したいのですが どうすればいいでしょうか?