Categories: VBA基礎

EXCEL VBA フォルダー・ファイルのショートカット作成(アプリケーション・共有フォルダー・URLのショートカット)

 

 

EXCEL VBA フォルダーのショートカット作成・ファイルのショートカット作成(アプリケーション・共有フォルダー・URL)

 

 

●はじめに
今回説明するプログラムは、デスクトップ上にフォルダーのショートカットやファイルのショートカット・アプリケーション・URLのショートカットを作成するサンプルプログラムです。社内で複数のパソコンにファイルのショートカットやフォルダーのショートカットを作成する場合、個々に作成してもらうか、ショートカットをフォルダーに入れてZipファイルにしてメールの添付ファイルとして配布する方法がありますが、上記のやり方ですと、個々に作成してもらうと間違えて作成してしまったり、メールで添付ファイルとして送っても意図しない場所で解凍する事もあります。今回、EXCEL VBAを利用して手間なくデスクトップ上にショートカットファイルを配布する説明をいたします。

 

 

●書式の説明  (WshShortCutオブジェクト)

フォルダーやファイル等のショートカットの実体は、下図のプロパティの内容から作成されいます。あくまでもフォルダー・ファイル等本体では無いので、プロパティの設定でリンク先や作業フォルダー等を設定する必要があります。ショートカットのプロパティの内容については、下記の通りになります。

 

プロパティ説明
TargetPathリンク先のファイル名"C:\Users\akira\OneDrive\01_開発中”
WorkingDirectory作業フォルダ"C:\Users\akira\OneDrive\"
Hotkeyキーボード・ショートカット "Ctrl+Alt+Z"
WindowStyle実行時の大きさ(ウィンドウのサイズ)1   '標準:1・最大化:3・最小化:7
Descriptionコメント(ショートカットの説明)"ショートカットテストです。"
IconLocationショートカットのアイコン"%SystemRoot%\system32\SHELL32.dll, 41"  41は、木のアイコン
Arguments実行ファイルに渡すパラメータ
FullName(読み取り専用)ショートカットファイルのフルパス

 

 

 

 

 

EXCEL VBA  デスクトップ上にフォルダーのショートカットを作成

 

 

●プログラム説明 (サンプル①)

下記のサンプルプログラムは、デスクトップ上に指定したフォルダーのショートカットを作成するサンプルプログラムです。

【ショートカット】のプロパティについて

ショートカットを作成するにあたり、必須事項は、ショートカット名とリンク先(TargetPath)が必須事項となります。

 

 

'
'******** AKIRA55.COM ******* https://akira55.com/shortcut/
'
Sub shortcut01()  'デスクトップ上にフォルダーのショートカットを作成する
 
  Dim WshShell As Object
  Dim DeskTopPath, ShortCutPath As String
   
 
  Set WshShell = CreateObject("WScript.Shell") 'WshShellオブジェクトを作成
 
  DeskTopPath = WshShell.SpecialFolders("Desktop") 'デスクトップパスを取得する
  
  ShortCutPath = DeskTopPath & "\サンプルフォルダー" & ".lnk" 'ショートカット名の指定

   
  With WshShell.CreateShortcut(ShortCutPath)
          
      .TargetPath = "C:\Users\akira\OneDrive\01_開発中\サンプルフォルダー"    'ショートカットのリンク先を設定
      
      .WorkingDirectory = "C:\Users\akira\OneDrive\" '作業フォルダ
      
      .Hotkey = "Ctrl+Alt+Z"
      
      .WindowStyle = 1  '標準:1・最大化:3・最小化:7
      
      .Description = "ショートカットテストです。" 'コメント欄の表記文字を設定
      
      .IconLocation = "%SystemRoot%\system32\SHELL32.dll, 80"  'アイコンの設定 80番アイコン
  
      .Save 'ショートカットの保存実行
  End With
 
  Set WshShell = Nothing
 
End Sub
'

 

 

●実行前~実行後 ※プログラム実行後、デスクトップ上に指定した「サンプルフォルダー」のショートカットが作成されました。
(画面クリックして拡大)

 

 

 

 

EXCEL VBA  ファイルのショートカット作成(自身のEXCELファイルのショートカット)

 

 

●プログラム説明 (サンプル②)

下記のサンプルプログラムは、デスクトップ上に指定した自身のEXCELファイルのショートカットを作成するサンプルプログラムです。


 

 

'
'******** AKIRA55.COM ******* https://akira55.com/shortcut/
'
Sub shortcut02()  'デスクトップ上にファイルのショートカットを作成する
 
  Dim WshShell As Object
  Dim DeskTopPath, ShortCutPath As String
   
 
  Set WshShell = CreateObject("WScript.Shell") 'WshShellオブジェクトを作成
 
  DeskTopPath = WshShell.SpecialFolders("Desktop") 'デスクトップパスを取得する
  
  ShortCutPath = DeskTopPath & "\" & ThisWorkbook.Name & ".lnk" 'ショートカット名の指定(このブックのショートカット名)
   
  With WshShell.CreateShortcut(ShortCutPath)
          
      .TargetPath = ThisWorkbook.FullName  'ショートカットのリンク先を設定(このブック)
      
      .Save 'ショートカットの保存実行
  End With
 
  Set WshShell = Nothing
 
End Sub
'

 

 

●実行前~実行後 ※プログラムファイル実行後、自身のEXCELファイルのショートカットがデスクトップ上に作成されました。
(画面クリックして拡大)

 

 

 

EXCEL VBA インターネットURLのショートカット作成

 

 

●プログラム説明 (サンプル3)

下記のサンプルプログラムは、デスクトップ上に指定したインターネットURL(リンク先:Yahoo!Japan)のショートカットを作成するサンプルプログラムです。


 

'
'******** AKIRA55.COM ******* https://akira55.com/shortcut/
'
Sub shortcut03()   'デスクトップ上にインターネットURLのショートカットを作成する
 
  Dim WshShell As Object
  Dim DeskTopPath, ShortCutPath As String
   
 
  Set WshShell = CreateObject("WScript.Shell") 'WshShellオブジェクトを作成
 
  DeskTopPath = WshShell.SpecialFolders("Desktop") 'デスクトップパスを取得する
  
  ShortCutPath = DeskTopPath & "\" & "Yahoo!JAPAN.URL"  'ショートカット名の指定(URLショートカット名)
  
  With WshShell.CreateShortcut(ShortCutPath)
          
      .TargetPath = "https://www.yahoo.co.jp/"  'ショートカットのリンク先を設定(YahooのURLを指定)
      
      .Save 'ショートカットの保存実行
  End With
 
  Set WshShell = Nothing
 
End Sub
'

 

 

●実行前~実行後 ※プログラムファイル実行後、インターネットサイトYahoo!JapanのURLショートカットがデスクトップ上に作成されました。
(画面クリックして拡大)

 

 

 

EXCEL VBA アプリケーションソフト(ペイント)のショートカット作成

 

 

●プログラム説明 (サンプル④)

下記のサンプルプログラムは、デスクトップ上にアプリケーションソフト(ペイント)のショートカットを作成するサンプルプログラムです。

 

'
'******** AKIRA55.COM ******* https://akira55.com/shortcut/
'
Sub shortcut04()   'デスクトップ上にペイント(アプリケーション)のショートカットを作成する
 
  Dim WshShell As Object
  Dim DeskTopPath, ShortCutPath As String
   
 
  Set WshShell = CreateObject("WScript.Shell") 'WshShellオブジェクトを作成
 
  DeskTopPath = WshShell.SpecialFolders("Desktop") 'デスクトップパスを取得する
  
  
  ShortCutPath = DeskTopPath & "\" & "ペイント.lnk"  'ショートカット名の指定(ペイント)
  
  With WshShell.CreateShortcut(ShortCutPath)
        
      .TargetPath = "%windir%\system32\mspaint.exe"  'ショートカットのリンク先を設定(ペイントのEXEを指定)
      .Save 'ショートカットの保存実行
  
  End With
 
 
  Set WshShell = Nothing
 
End Sub
'

 

●実行前~実行後 ※プログラム実行後、ペイント(アプリケーション)のショートカットがデスクトップ上に作成されました。
(画面クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。

 

AKIRA