- ベストアンサー
フォルダのショートカット作成VBA
環境:Excel2002です エクセルブック【×××】で作業後 VBAで フォルダ<aaa>を作りフォルダ<aaa>の中に ブック【bbb】という名前をつけて保存します この時 フォルダ<aaa>のショートカットをマイドキュメントに作りたいのです マイドキュメントの場所が使用するPCによって異なるので マイドキュメントの場所を取得して フォルダ<aaa>のショートカットをマイドキュメントに作る この一連の作業をVBAでやりたいのです お手数をおかけしますがよろしくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
フォルダのショートカットの場合は、以下の様な感じになります。 フォルダ<aaa>はVBAで作成しているのですよね。 そのパスに適宜変更して下さい。 Sub macro() Dim O As Object Dim S As Object Set O = CreateObject("WScript.Shell") Set S = O.CreateShortcut(O.SpecialFolders("MyDocuments") & "\aaa.lnk") S.Description = "aaa" S.TargetPath = "C:\aaa\" S.Save End Sub
その他の回答 (2)
- kybo
- ベストアンサー率53% (349/647)
>S.Description = DepoFの意味と、エラーが発生する原因を教えていただけれと思います ショートカットで右クリック→プロパティ→ショートカットのタブの「コメント」欄に記載のものです。 作成されたショートカット上にマウスをポイントしてみて下さい。 そうすれば、コメントが表示されますよね。それの設定ですので、特になくても問題ありません。 私のWindowsXP環境では問題なく作成されますが、OSの種類などで、エラーになるのかもしれませんので、消しても問題ないかと思います。
お礼
ご丁寧にありがとうございました
- kybo
- ベストアンサー率53% (349/647)
さっきの応用ですよ。 S.TargetPath = "C:\aaa\bbb.xls" の部分は、aaaのフォルダがどこに作成されているのか不明なので、パスは適宜変更して下さい。 Sub macro() Dim O As Object Dim S As Object Set O = CreateObject("WScript.Shell") Set S = O.CreateShortcut(O.SpecialFolders("MyDocuments") & "\bbb.lnk") S.Description = "bbb" S.TargetPath = "C:\aaa\bbb.xls" S.Save End Sub
補足
パスの変更にチョットつまづきましたが どうにか動きました。ありがとうございました プロシージャーは下記にしました '◆マイドキュメントにフォルダのショートカットを作る Dim O As Object Dim S As Object Set O = CreateObject("WScript.Shell") Set S = O.CreateShortcut(O.SpecialFolders("MyDocuments") & "\" & DepoF & ".lnk") ’S.Description = DepoF S.TargetPath = SaveDir S.Save 質問の例題の "C:\aaa\"がSaveDir、aaaがDepoFです S.Description = DepoFを殺しました S.Description = DepoFを生かすと マイドキュメントにショートカット(名前:DepoF)はできるのですが フォルダの色のショートカットにならず、案の定ショートカットでフォルダを開くことはできませんでした 試行錯誤ですがS.Description = DepoFを殺すと通常のフォルダの色のショートカットができあがり ショートカットでフォルダを開くことができました 質問の例題通り、Cドライブにフォルダ<aaa>、ブック【bbb】をセットして 回答いただいたプロシージャーを実行してもエラーは発生しませんでした S.Description = DepoFの意味と、エラーが発生する原因を教えていただけれと思います このままでは、なんか安心できないので……