• ベストアンサー

ShellExecute でショートカットを開く

Visual Basic 6.0 コマンドボタンでリンク先のファイルを開くプログラムを作成しています。 コマンドボタンクリック時に、下記ステートメントを入れているのですが リンク先が、ショートカットの場合エラーして開けません。(見つかりませんのエラー) リンク先全てを開くことは出来ないのでしょうか? すみませんがご教授願います。 CreateObject("Shell.Application").ShellExecute C:\AAA 'AAA = ショートカット名

  • mmac
  • お礼率94% (64/68)

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

  • ベストアンサー
  • OMEGAT
  • ベストアンサー率70% (455/642)
回答No.1

「AAA」というショートカットの実態は、「AAA.lnk」なので「AAA.lnk」で試してみるとどうでしょうか。

mmac
質問者

お礼

回答有難う御座います。 .lnk でショートカットファイルが開けるのは知りませんでした。 説明不測で失礼致しました。 ショートカットファイルとそれ以外も開ける様に出来ないでしょうか? If文で通常ファイルとショートカットファイルの区別も出来ないうえ ErrorTrapも引っかからないので困っています。

mmac
質問者

補足

失礼致しました。 CreateObject("Shell.Application").ShellExecute でショートカットのファイルを開くことは可能でした。 原因は不明ですが、何かのエラーで開けませんでした。 .lnk 参考になりました。 お手数お掛けして申し訳ありませんでした。

関連するQ&A

  • ShellExecuteの使い方について

     既存のプログラム(他の人が作成したもの)を参考にプログラムを作成しましたが、どうしても、希望通りの挙動となりません。ShellExecuteの部分が要点と思いますので、その点について教えてください。言語は JavaScript です。  以下のような記述がありました。 ---- var launcher = new ActiveXObject("Shell.Application"); launcher.ShellExecute(cmd, param, "", "open", "1"); ----  ShellExecute の引き数の cmd は、実行ファイル名(ファイルパス付)、param は実行ファイルの引き数です。これはこれで動いています。  さて、これを参考に、cmd の部分にDOSコマンドを与えました。すると、DOSコマンドは実行されたものの、実行の瞬間に黒いウィンドウ(おそらく、コマンドプロンプトと思われます)が一瞬表示されました。この黒いウィンドウを表示させずにDOSコマンドを実行させたいのですが、引き数を調整することでそのようなことは可能でしょうか。  Webで調べたところ、ShellExecute の引き数として SW_SHOWNORMAL や SW_MAXIMIZE などを与える方法もあるようですが、SW_*** を紹介しているWebページでは、そもそも引き数の個数が上記と異なっていたりします。  ご助言をお願い致します。

  • ShellExecuteってなんで関数?

    ファイルとかを開く時に使うShellExecuteって何故関数なのですか? Sub test() Dim ファイル名 As String ファイル名 = "C:\Test用テキストファイル.txt" CreateObject("Shell.Application").ShellExecute ファイル名 End Sub このようなコードでファイルを開いていますが、関数って戻り値がある場合に使うのですよね? http://msdn.microsoft.com/ja-jp/library/cc422072.aspx をみたらShellExecuteは関数との事でした。 ずっとメソッドだと思ってました。

  • エクセルVBAでPDFやJPGファイルを開閉する

    エクセルでPDFやJPGファイルを開くことは下記のコマンドで できたのですが開いたファイルを閉じる方法がわかりません。 開くのはとても簡単でしたが。 CreateObject("Shell.Application").ShellExecute XPATH & JPGNAME

  • ショートカットをブラウザに表示させたい

    ブラウザにhttp://www.yahoo.co.jp/を表示させて ヤフーのアイコンをデスクトップにグイって持って行けば デスクトップにヤフーのショートカットが出来ますが このショートカットファイルをVBAで開くことは可能ですか? ショートカット名は「Yahoo! JAPAN」となっています。 Sub sample() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "Yahoo! JAPAN" Set objIE = Nothing End Sub と言うように立ち上げられたらと思うのですが ショートカットのURLを読み取る方法はありますか? Sub sample() Dim ファイル名 As String ファイル名 = "C:\Documents and Settings\◎◎\デスクトップ\Yahoo! JAPAN" CreateObject("Shell.Application").ShellExecute ファイル名 End Sub こっちの方法では、「見つかりません」 と言うエラーになってしまいました。 今回の例題はヤフーだからわかりやすいのですが 実はフォルダに色々なサイトのショートカットを貯めており、 それをVBAで開けたら便利だなと思っています。 お気に入りフォルダみたいな感じになっています。

  • ショートカットをデスクトップに作るコマンドを教えて下さい

    お世話になります。 WindowsXPや2000のパソコンが100台以上あります。 サーバーに置いてあるTESTER.EXEを各パソコンにコピーするバッチを作るまでは完成しました。 次に、このTESTER.EXEのショートカットをデスクトップに作りたいのですが、どういうコマンドになりますか? ユーザー名はパソコンによってバラバラなので、その辺のコマンドの書き方もどう書いていいのかわかりません。 なんか変数みたいな何かがあったような気がしますが、よく覚えていません。 参考までにTESTERCOPY.BATはこのようになっています。 最後の行にコマンドが入れば完成となります。 ------------------------------------------------------------ C: CD "\Program Files" MD AAA XCOPY /S "\\192.168.0.1\AAA\TESTER.EXE" "C:\Program Files\AAA\" (TESTER.EXEのショートカットをデスクトップに作るコマンド) ------------------------------------------------------------ 以上、宜しくお願いします。

  • ExcelVBA内のVBSで別ブックを開いたとき

    ブック1で、誰のPCからでもセキュリティの警告を出さないようにブック2を開くVBSを実行し、ブック1で使用した変数xの値をブック2に渡すということをやりたいのですが、上手くいきません...。 ブック2を開く所まではできたのですが、ブック2のセルに変数xの値を入れようとすると、エラー「インデックスが有効範囲にありません。」が発生し、そもそもブック2をアクティブにできません。 ファイル名・パス等は絶対に間違えていないと思います。 原因とどう修正すれば良いか、教えて頂けないでしょうか。 下記が簡略化したプログラムになります。 Book1のプログラム Sub Book1() Dim x As String x = "aaa" CreateObject ("Shell.Application") CreateObject("Shell.Application").ShellExecute "○○.vbs" Workbooks("Book2.xlsx").Sheets("Sheet1").Range("A1") = x End Sub ---------------------------------------------------------------------------------------------------------- VBSのプログラム Dim strExcFileName Dim objExcApp strExcFileName ="○○¥Book2.xlsx" Set objExcApp = WScript.CreateObject("Excel.Application") objExcApp.Visible = True Call objExcApp.Workbooks.Open(strExcFileName,,True) objExcApp.DisplayAlerts = False WScript.Quit 以上、宜しくお願い致します。

  • タスクスケジューラからショートカットを起動させるには?

    タスクスケジューラから起動するのに、プログラムのショートカットを登録したいのですが、登録できません。 ショートカット名:aaa.bat リンク先:bbb.bat タスクスケジューラの実行するファイル名に「参照」で登録すると、ショートカット名が[aaa.bat.lnk]と.lnkの拡張子が表示され、実際の実行するファイル名には、ショートカットではなく、リンク先(bbb.bat)が表示されてしまいます。 また、直接ショートカット名[aaa.bat]と記述すると、登録できても実行されません。 そもそも、ショートカット経由してタスクスケジューラに登録したい理由は、プログラム実行時に最小ウィンドウ(バックグラウンド)で実行したいためです。 どのようにすれば、ショートカットをタスクスケジュールに登録できるか、ご教授ください。

  • VBで「.tif」または「.pdf」形式のファイル印刷

    VBで「.tif」または「.pdf」形式のファイルを一度に複数印刷したいのですが、何かよい方法はないでしょうか。 一応、 fname = "ここにファイルのパスと名前" CreateObject("shell.application").shellexecute fname でファイルを開くようにしたのですが、ここから先が分かりません…。 よろしくお願いします。

  • Acrobat Readerのショートカットが起動できません

    スタートメニュー内のショートカットを起動するアプリを作っているのですが「Acrobat Reader」と「MSN Messenger 6.1」のショートカットだけ起動してくれません。 他のアプリは起動できます。 起動はShellExecuteを使っています。 ShellExecute(m_hWnd, "open", "C:\\Documents and Settings\\All Users\\スタート メニュー\\プログラム\\Adobe Reader 6.0.lnk", NULL, NULL, SW_SHOW); ShellExecuteの戻り値は以下のようになっています。 SE_ERR_ACCESSDENIED : 「オペレーティングシステムが、指定されたファイルへのアクセスを拒否しました。」 エクスプローラでショートカットのプロパティを開いてみると、うまくいかないショートカットは他のショートカットのようにEXEファイルにリンクしているのではなく、何か別のものにリンクしているようです。 このタイプのショートカットの起動の方法を教えてください。 よろしくお願いします。

  • VBScript ショートカット

    Windows2000を使用しています。 ショートカットの作成方法についてヘルプを参照し、下記オブジェクトを使用し作成できることは分かりました。 Set Shell = CreateObject("WScript.Shell") DesktopPath = Shell.SpecialFolders("Desktop") Set link = Shell.CreateShortcut(DesktopPath & "\test.lnk") しかし、1つ1つ意味がイマイチ良く分かりません。 どなたか、VBSに詳しい方教えて下さい。 link.Arguments = "1 2 3" link.Description = "test shortcut" link.HotKey = "CTRL+ALT+SHIFT+X" link.IconLocation = "foo.exe,1" link.TargetPath = "c:\blah\foo.exe" link.WindowStyle = 3 link.WorkingDirectory = "c:\blah" link.Save

専門家に質問してみよう