• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで日報を作っています。 )

VBAで日報を自動処理する際に他のプログラムを実行する方法

このQ&Aのポイント
  • VBAで日報を作成する際に、他のプログラムを実行させることは可能です。
  • Shell関数を使用して、デスクトップのショートカットプログラムを実行することができます。
  • パスの取得やスタートの押下などは、VBAの機能を使用して実現できます。

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

  • ベストアンサー
  • saneppie
  • ベストアンサー率66% (18/27)
回答No.2

パスの取得には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")にするとマイドキュメントのパスの取得になります。

sumi33
質問者

お礼

早速の回答ありがとうございます。 上記を実行すると、 rc = Shell(LnkFile.TargetPath, vbNormalFocus) で止まってしまいます。 どうしてでしょうか?

その他の回答 (2)

  • tom11
  • ベストアンサー率53% (134/251)
回答No.3

ここまでヒントもらったら、 後は、検索したほうが早いですよ。 http://www.happy2-island.com/vbs/cafe02/capter00110.shtml

sumi33
質問者

お礼

そうですね。 自分で色々考えてみますね。 ありがとうございまいた。

回答No.1

デスクトップのパスの取得方法については、こちら↓が参考になるかと。 http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200608/06080041.txt

sumi33
質問者

お礼

ありがとうございました。 未だに完成しませんが、色々知識を得ようと思っています。

関連するQ&A

専門家に質問してみよう