
どなたか教えてください。
あるサイトでショートカット作成方法を発見し、作ってみました。
ファイルのショートカットは作成できるのですがフォルダのショートカットがうまくいきません。
どなたか教えていただけませんか。よろしくお願いします。
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<package>
<job id="shortcut">
<?job error="true" debug="true" ?>
<object id="objFs" progid="Scripting.FileSystemObject" />
<script language="VBScript">
<![CDATA[
' ショートカットの情報を記述した設定ファイルの格納場所
' 設定ファイルのパスについては、各自の環境に合わせて変更する必要がある
Const CONFIG="C:\config.dat"
Set objTs=objFs.OpenTextFile(CONFIG,1,False)
' config.datの情報に基づいて、ショートカットを作成する
' config.datにはタブ区切りテキスト形式で、ショートカットのファイル名、コメント、リンク先のパス、ホット・キーが定義されているものとする。
Do While Not objTs.AtEndOfStream
aryDat=Split(objTs.readLine,Chr(9))
Set objShl=WScript.CreateObject("WScript.Shell")
Set objCut=objShl.CreateShortcut(objFs.BuildPath(objShl.SpecialFolders("Desktop"),aryDat(0) & ".lnk")) ' デスクトップ上にショートカットを作成
objCut.Description=aryDat(1) ' コメント
objCut.TargetPath=aryDat(2) ' リンク先のパス
objCut.Hotkey=aryDat(3) ' ホット・キー(Alt+、Ctrl+、Shift+、Ext+)
' 作業フォルダ(My Documents)
'objCut.WorkingDirectory=objShl.SpecialFolders("MyDocuments")'
objCut.Save ' 生成したショートカットを保存
Loop
objTs.Close
]]>
</script>
</job>
</package>
A 回答 (2件)
- 最新から表示
- 回答順に表示

No.2
- 回答日時:
「うまくいかない」 とは?
ファイルへのショートカットは正しく作られているということですか?
WSF ファイルを実行するユーザーと対象フォルダーへのアクセス権限の関係とかは確認されましたか?
当方 Windows 7 x64 ですが、VBScript にしてみて試したところファイル、フォルダーとも正常にショートカット ファイルが作成されましたよ。ちなみに管理者権限を持っているユーザーで実行しています。
Config.DAT の中身
メモ帳.lnk[TAB]メモ帳[TAB]C:\Windows\System32\notepad.exe[TAB]Ctrl+Alt+A
Tools.lnk[TAB]Toolsフォルダー[TAB]D:\Tools[TAB]Ctrl+Alt+B
test.vbs の中身
Option Explicit
Const CONFIG = "d:\config.DAT"
Dim fso, ts
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(CONFIG, 1, False)
Dim aryDat
Dim shellObject, shortCutObject
Do While Not ts.AtEndOfStream
aryDat = Split(ts.ReadLine, Chr(9))
Set shellObject = WScript.CreateObject("WScript.Shell")
Set shortCutObject = shellObject.CreateShortcut(fso.BuildPath(shellObject.SpecialFolders("Desktop"), aryDat(0) & ".lnk"))
shortCutObject.Description = aryDat(1)
shortCutObject.TargetPath = aryDat(2)
shortCutObject.Hotkey = aryDat(3)
shortCutObject.Save
Loop
ts.Close
No.1
- 回答日時:
上記のままだですと動作確認がとれません。
まず、VBスクリプト部分を別ファイルに抜き出して実験しました。
もしくは Excel のVBエディッタで デバッグもできます。
以下は VBS 部分です。 別ファイルで 「TEST.vbs」という名前で保存してください。
ご希望通りに動作します。(デバッグ済です)
==========================================================================
MsgBox "ショートカット作成プログラム"
Set objShl = WScript.CreateObject("WScript.Shell")
Set OBJfs = CreateObject("scripting.FileSystemObject")
LocDeskTOP = objShl.SpecialFolders("Desktop") 'ショートカットの作成場所
LocMYDOC = objShl.SpecialFolders("MyDocuments") '作業フォルダ(My Documents)
' ショートカットの情報を記述した設定ファイルの格納場所
' 設定ファイルのパスについては、各自の環境に合わせて変更する必要がある
Const CONFIG = "C:\config.dat"
Set objTs = OBJfs.OpenTextFile(CONFIG, 1, False)
' config.datの情報に基づいて、ショートカットを作成する
' config.datにはタブ区切りテキスト形式で、ショートカットのファイル名、コメント、リンク先のパス、ホット・キーが定義されているものとする。
StrREC = objTs.readLine 'レコードの読み込み
Do While Not objTs.AtEndOfStream
arydat = Split(StrREC, vbTab)
StrCutname = LocDeskTOP & "\" & Trim(arydat(0)) & ".lnk"
Set objCut = objShl.CreateShortcut(StrCutname)
With (objCut)
.Description = arydat(1) ' コメント
.TargetPath = arydat(2) ' リンク先のパス
.Hotkey = arydat(3) ' ホット・キー(Alt+、Ctrl+、Shift+、Ext+)
.WorkingDirectory = objShl.SpecialFolders(LocMYDO) '作業フォルダ(My Documents)
MsgBox "ショートカット:" & StrCutname & vbCrLf & _
"コメント:" & arydat(1) & vbCrLf & _
"リンク先のパス:" & arydat(2) & vbCrLf & _
"ホット・キー:" & arydat(3)
.Save ' 生成したショートカットを保存
End With
StrREC = objTs.readLine
Loop
objTs.Close
==========================================================================
あとは XSLファイルに実装してください。
これで動かなければ XMLおよびXSLのどちらかの問題となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Python でWindowsのショートカット(.lnk)のプロパティを参照したい 1 2023/02/01 15:09
- Visual Basic(VBA) VBSで作成した相対パスのショートカットが他者と共有できません。 1 2022/09/05 11:20
- Windows 10 ショートカットの作り方と使い方について教えて下さい。 3 2022/05/27 08:44
- Windows 10 ショートカットの使い方について教えて下さい。 2 2022/06/21 15:27
- Chrome(クローム) サイトのショートカットアイコンの格納場所は? 1 2022/12/26 01:38
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(プログラミング・Web制作) 新しいフォルダを作るbatファイルを作りたいです。 1 2022/10/15 00:41
- Windows 10 Windows11の実行モジュールはどこにある 1 2022/05/31 07:33
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
COM
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
コマンドプロンプトのコピー関...
-
実行ファイルのパスを取得したい
-
ShellExecuteでエクセルファイ...
-
xcopyコマンドの進行状況を表示...
-
VBAでパワーシェルを実行したい...
-
【Excel VBA】Power Qurry でCS...
-
VBA★PDFをPDFアプリで印刷し...
-
C#でのProcess.Startと変数path
-
初心者powershellのPS1ファイル...
-
エクセルVBAで一つ上の階層...
-
FolderBrowserDialogについて-2
-
【VBA】ExcelマクロでCSVファイ...
-
VB2005 でパス名が誤っていない...
-
エクセルのマクロで特定フォル...
-
SDIアプリ D&Dで複数のファイ...
-
VS2012での\\(円マーク)とバッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
Excel 相対パス
-
実行ファイルのパスを取得したい
-
コマンドプロンプトのコピー関...
-
【VB.NET】App.configにファイ...
-
エクセルのマクロで特定フォル...
-
VBA★PDFをPDFアプリで印刷し...
-
ExcelVBAの使い方 ¥の使い方...
-
fopenでのパス指定
-
ExcelのVBAで上書き保存を確...
-
EXCEL(VBA)で指定フォルダ内の...
-
C#でのProcess.Startと変数path
-
【VBA】ExcelマクロでCSVファイ...
-
VBAでパワーシェルを実行したい...
-
A列に記載されているフォルダ...
-
初心者powershellのPS1ファイル...
-
Eclipse
-
VBAとロングファイル名
おすすめ情報