こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フォルダのショートカット作成VBA

環境:Excel2002です

エクセルブック【×××】で作業後
VBAで
フォルダ<aaa>を作りフォルダ<aaa>の中に
ブック【bbb】という名前をつけて保存します

この時
フォルダ<aaa>のショートカットをマイドキュメントに作りたいのです

マイドキュメントの場所が使用するPCによって異なるので
マイドキュメントの場所を取得して
フォルダ<aaa>のショートカットをマイドキュメントに作る
この一連の作業をVBAでやりたいのです
お手数をおかけしますがよろしくお願いします

投稿日時 - 2013-01-16 09:36:52

QNo.7894369

すぐに回答ほしいです

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

フォルダのショートカットの場合は、以下の様な感じになります。
フォルダ<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

投稿日時 - 2013-01-16 09:50:48

補足

パスの変更にチョットつまづきましたが
どうにか動きました。ありがとうございました

プロシージャーは下記にしました

'◆マイドキュメントにフォルダのショートカットを作る
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の意味と、エラーが発生する原因を教えていただけれと思います
このままでは、なんか安心できないので……

投稿日時 - 2013-01-16 12:58:43

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>S.Description = DepoFの意味と、エラーが発生する原因を教えていただけれと思います

ショートカットで右クリック→プロパティ→ショートカットのタブの「コメント」欄に記載のものです。

作成されたショートカット上にマウスをポイントしてみて下さい。
そうすれば、コメントが表示されますよね。それの設定ですので、特になくても問題ありません。

私のWindowsXP環境では問題なく作成されますが、OSの種類などで、エラーになるのかもしれませんので、消しても問題ないかと思います。

投稿日時 - 2013-01-16 13:06:33

お礼

ご丁寧にありがとうございました

投稿日時 - 2013-01-16 15:59:30

ANo.1

さっきの応用ですよ。

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

投稿日時 - 2013-01-16 09:46:41

あなたにオススメの質問