VBAでExcelブックのショートカットをさくっとデスクトップにつくる
ファイルのショートカットをつくるのは、案外手間だ。
ワンクリックでさっくり片づけられる方法があったのでつくってみた。
といっても、モーグで紹介されていたサンプルコードをほんのちょっとアレンジしただけです。
コード
Sub MakeShortcut() Dim ShellObject Set ShellObject = CreateObject("WScript.Shell") Dim TempPath As String TempPath = ShellObject.SpecialFolders("Desktop") Dim ShortcutObject Set ShortcutObject = ShellObject.CreateShortcut(TempPath & "\" & ActiveWorkbook.Name & ".lnk") With ShortcutObject .TargetPath = ActiveWorkbook.FullName .Save End With End Sub
説明する
1. WshShellオブジェクトをつくる
ショートカットを作るには、WshShellオブジェクトのメソッドが必要みたい。このオブジェクトを作るには、Microsoft Script Host Obuject Modelを参照設定するか、CreateObjectでやる方法がある。ここでは後者の方法でやった。参照方法を使うのは、コードがシンプルになるのがよいとは思うけど、あとで参照設定が必要なことを忘れて、なんで動かないんだ?ってことに必ずなるので、個人的にちょっとめんどくさい。
2. デスクトップのパスを取得する
ここでは、ショートカットをデスクトップに置きたいので、パスを取得する必要がある。デスクトップのパスもWScriptオブジェクトから取れる。.SpecialFolders(“Desktop”)がその操作。
3. ショートカットを作る
WshShellオブジェクトでショートカットを作るには、.ShortcutObjectに次のプロパティに2つの引数を渡してやる必要がある。
.CreateShortcut
ショートカットを保存するフルパス。.TargetPath
ショートカットの参照先ブック。すなわち元Excelファイル。
これらを渡してから.Saveメソッドを実行すると、指定したとおりにショートカットが作成されるという具合。
感想
便利。こういう作業をワンクリックでできると、他の仕事がはかどる。