- ベストアンサー
VBAで日報を自動処理する際に他のプログラムを実行する方法
- VBAで日報を作成する際に、他のプログラムを実行させることは可能です。
- Shell関数を使用して、デスクトップのショートカットプログラムを実行することができます。
- パスの取得やスタートの押下などは、VBAの機能を使用して実現できます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
パスの取得にはWScript.Shellオブジェクトを使うのですが、 No.1さんの例がVB6でしたので、すぐに使えるコードにしてみました。 デスクトップに「メモ帳」のショートカットがある場合です。 Set WSH = CreateObject("WScript.Shell") Dim Path As String Path = WSH.SpecialFolders("Desktop") & "\" & "メモ帳.lnk" Set LnkFile = WSH.CreateShortcut(Path) Dim rc As Double rc = Shell(LnkFile.TargetPath, vbNormalFocus) If rc = 0 Then MsgBox "起動に失敗しました" Set LnkFile = Nothing Set WSH = Nothing ショートカットはexeそのものではありませんので、 ショットカットのリンク先であるexeのパスを取得してこれをShellで起動しています。 あと、WSH.SpecialFolders("Desktop")のところを、WSH.SpecialFolders("MyDocuments")にするとマイドキュメントのパスの取得になります。
その他の回答 (2)
- tom11
- ベストアンサー率53% (134/251)
ここまでヒントもらったら、 後は、検索したほうが早いですよ。 http://www.happy2-island.com/vbs/cafe02/capter00110.shtml
お礼
そうですね。 自分で色々考えてみますね。 ありがとうございまいた。
- tsukasa-12r
- ベストアンサー率65% (358/549)
デスクトップのパスの取得方法については、こちら↓が参考になるかと。 http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200608/06080041.txt
お礼
ありがとうございました。 未だに完成しませんが、色々知識を得ようと思っています。
お礼
早速の回答ありがとうございます。 上記を実行すると、 rc = Shell(LnkFile.TargetPath, vbNormalFocus) で止まってしまいます。 どうしてでしょうか?