こんにちは、Ryoです。
パソコンを扱う中でショートカットはとても便利で利用頻度も高いので、VBAで処理する内容などによってはショートカットを作りたいと思うこともあるかと思います。その場合はWindows管理ツールであるWindows Script Host(WSH)を利用することで対応できますので、今回はその内容について書いていきます。
1.サンプル概要
今回のサンプルコードを実行するブック保存先へのショートカットをデスクトップ上に作成します。ショートカット名は「サンプル」です。

作成したショートカットのプロパティはこのようになっておりリンク先はブック保存先、コメント欄はサンプルコード内で指定した文章になっています。

作成したショートカットをダブルクリックすれば、このようにリンク先として設定したブック保存先にアクセスできます。

2.サンプルコード
Sub sample1()
Dim wshShell As Object
Dim deskPath As String
Dim shortPath As String
'wshShellオブジェクトを作成
Set wshShell = CreateObject("WScript.Shell")
'デスクトップパスを取得する
deskPath = wshShell.SpecialFolders("Desktop")
'ショートカット名の指定
shortPath = deskPath & "\サンプル" & ".lnk"
With wshShell.CreateShortcut(shortPath)
'ショートカットのリンク先を設定
'(サンプルでは実行ブックの保存先)
.targetPath = ThisWorkbook.Path
'コメント欄の表記文字を設定
.Description = "このショートカットはサンプルです"
'保存実行
.Save
End With
Set wshShell = Nothing
End Sub
本サンプルコードを実行することで、デスクトップに「サンプル」という名前でショートカットが作成されます。
このようにショートカットを作成するにはWshShellオブジェクトを使用します。これは冒頭に説明したWSHを扱うためのオブジェクトで構文は以下になります。
Set expression = CreateObject(“WScript.Shell”)
サンプルでは先ずwshshellオブジェクトを構文に準じて作成します。
Set wshShell = CreateObject(“WScript.Shell”)
次にWSHのSpecialFoldersプロパティで「デスクトップパス」を取得、ショートカット名の指定を行っています。
deskPath = wshShell.SpecialFolders(“Desktop”)
shortPath = deskPath & “\サンプル” & “.lnk”
後はCreateShortcutメソッドを使用して指定したパスにショートカットを作成し、コメントの文字設定と保存を行うことで一連のショートカット作成処理は完了です。
With wshShell.CreateShortcut(shortPath)
.targetPath = ThisWorkbook.Path
.Description = “このショートカットはサンプルです”
.Save
End With
3.まとめ
このようにWindows Script Host(WSH)を使用するとOSの機能をVBAで使用することができます。
利用頻度自体はそう高くないかもしれませんが、サンプルのようにショートカット(lnkファイル)の作成は簡単にできますので、機会があればご検討くださいませ。
以上、VBAでショートカットを作成する方法についてでした!今回の記事が何かの参考になれば幸いです。
Ryo

