- 締切済み
ディスクトップにショートカットを貼り付ける方法
office2016 c:\Insに登録されているMENU.batをディスクトップに貼り付けるマクロで、 下記の様にしたのですが、 実行時エラー’70 書き込みできません と表示されます。 ログインユーザはAdmin権限です。 Sub Shortcut_sample_NG() Dim wsh As New IWshRuntimeLibrary.WshShell Dim sc As IWshRuntimeLibrary.WshShortcut Set sc = wsh.CreateShortcut("C:\Users\Public\Desktop\MENU.bat.lnk") sc.TargetPath = "C:\Ins\MENU.bat" sc.Save End Sub ディスクトップではなく、c:\workだとショートカット作成されます。 Sub Shortcut_sample_OK() Dim wsh As New IWshRuntimeLibrary.WshShell Dim sc As IWshRuntimeLibrary.WshShortcut Set sc = wsh.CreateShortcut("C:\work\MENU.bat.lnk") sc.TargetPath = "C:\Ins\MENU.bat" sc.Save End Sub どの様にしたらディスクトップにショートカットを貼り付けることができるでしょうか? filecopyも同じでエラーではじかれます。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nbokan181
- ベストアンサー率32% (74/228)
回答No.3
- kawais070_1
- ベストアンサー率55% (521/943)
回答No.2
- nbokan181
- ベストアンサー率32% (74/228)
回答No.1
お礼
回答ありがとうございます。 「管理者として実行」をやって、権限昇格をしないと、C:\Users\Public 以下のフォルダはアクセスできません なんて制約があったのですね。 ログインユーザの取得は以前にやったことがあったので下記の様にしました。 Sub Shortcut() 'WshNetworkオブジェクトを利用するには、「Windows Script Host Object Model」に参照設定 Dim WshNetworkObject As IWshRuntimeLibrary.WshNetwork '---(1) Set WshNetworkObject = New IWshRuntimeLibrary.WshNetwork '---(2) With WshNetworkObject Worksheets("TANMATSU").Cells(2, 1) = .UserName End With Dim user As String user = Worksheets("TANMATSU").Cells(2, 1) Dim wsh As New IWshRuntimeLibrary.WshShell Dim sc As IWshRuntimeLibrary.WshShortcut Set sc = wsh.CreateShortcut("C:\Users\" & user & "\Desktop\MENU.bat.lnk") sc.TargetPath = "C:\Ins\MENU.bat" sc.Save End Sub