Sub TEST1()
Dim A, B
A = ThisWorkbook.Path & "\TEST\ショートカット.lnk" 'ショートカットのファイルパス
B = ThisWorkbook.Path & "\TEST\TEST1" 'リンク先のフォルダパス
With CreateObject("WScript.Shell").CreateShortcut(A)
.TargetPath = B 'リンク先のフォルダパスの設定
.Save '保存
End With
End Sub
「TEST1」のショートカットファイルを作成します。
ショートカットを作成したい
実行すると、ショートカットを作成できます。
ショートカットを変更できた
ショートカットファイルを開くと、「TEST1」にリンクできていることがわかります。
「TEST1」にリンクできています。
ショートカットファイルのリンク先の取得
ショートカットファイルのリンク先の取得は、「.TargetPath」を使うとできます。
VBAコードは、次のようになります。
Sub TEST2()
Dim A
A = ThisWorkbook.Path & "\TEST\ショートカット.lnk" 'ショートカットのファイルパス
With CreateObject("WScript.Shell").CreateShortcut(A)
Debug.Print .TargetPath 'リンク先のフォルダパスの取得
End With
End Sub
リンク先のフォルダパスを取得します。
リンク先のフォルダパスを取得したい
実行すると、リンク先のフォルダパスを取得できます。
リンク先のフォルダパスを取得できた
リンク先のフォルダパスを取得できました。
ショートカットファイルのリンク先の変更
ショートカットファイルのリンク先の変更する手順は、ショートカットファイルの作成手順と同じです。
ショートカットファイルのリンク先を変更するVBAコードは、次のようになります。
Sub TEST3()
Dim A, B
A = ThisWorkbook.Path & "\TEST\ショートカット.lnk" 'ショートカットのファイルパス
B = ThisWorkbook.Path & "\TEST\TEST2" 'リンク先のフォルダパス
With CreateObject("WScript.Shell").CreateShortcut(A)
.TargetPath = B 'リンク先のフォルダパスの変更
.Save '保存
End With
End Sub
Sub TEST4()
Dim A
'1つのファイルパスを取得
A = Dir("C:\Users\user\Desktop\TEST\*")
'すべてのファイルパスを取得
Do While A <> ""
'ショートカットファイルの場合
If Right(A, 4) = ".lnk" Then
With CreateObject("WScript.Shell").CreateShortcut("C:\Users\user\Desktop\TEST\" & A)
'リンク先のフォルダパスを変更
.TargetPath = Replace(.TargetPath, "C:\Users\user\Desktop\TEST\", "C:\Users\user\Desktop\変更後\")
.Save '保存
End With
End If
A = Dir() '次のファイルパスを取得
Loop
End Sub