Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
lnkファイルのリンク先を取得で、lnkファイルの場所が¥¥〇〇の場合取得できない
投稿日時: 20/09/13 14:29:23
投稿者: toshio104o

リンク先を取得するため
以下のようなVBAを作成しました。
 
\\〇〇\△△の場合は、リンク先が取得出来ますが
\\〇〇の場合は、リンク先が取得出来ません。
 
VBAの修正方法を教えてください
 
------------------------------
 
Dim buf As String
Dim cnt As Long
Dim objWSShell As Object
Dim objSC As Object
Dim Path As String
Dim abc As String
 
 
Path = C:\Users\t16\Desktop & "\*.lnk"
 
buf = Dir(Path)
Do While buf <> ""
cnt = cnt + 1
Cells(cnt, 1) = buf
 
abc = Worksheets("設定値").Range("b3").Value & "\" & buf
  
Set objWSShell = CreateObject("WScript.Shell")
Set objSC = objWSShell.CreateShortcut(abc)
Cells(cnt, 2) = objSC.TargetPath
 
 
buf = Dir()
Loop

回答
投稿日時: 20/09/13 16:53:50
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:

\\〇〇\△△の場合は、リンク先が取得出来ますが
\\〇〇の場合は、リンク先が取得出来ません。


記述してあるコードとは、どのように関係するのでしょうか?
 
リンクファイルが、共有フォルダに存在するのか?
リンク先ファイルが、共有フォルダに存在するのか?
 
よくわかりません。
 
>Path = C:\Users\t16\Desktop & "\*.lnk"
 このコードで実行できますか?

投稿日時: 20/09/13 17:42:30
投稿者: toshio104o

返信ありがとうございます。
 
 
 
C:\Users\t16\Desktop & "\*.lnk"
上記のURLのあるショートカットファイル(*.lnk)のリンク先が、\\〇〇\△△の場合は、
Cells(cnt, 2) = objSC.TargetPath でExcelに入力できます。
 
 
上記のURLのあるショートカットファイル(*.lnk)のリンク先が、\\〇〇\の場合は、
Cells(cnt, 2) = objSC.TargetPath でExcelに入力が出来ません(空白)
 

回答
投稿日時: 20/09/13 18:24:25
投稿者: WinArrow
投稿者のウェブサイトに移動

toshio104o さんの引用:

上記のURLのあるショートカットファイル(*.lnk)のリンク先が、\\〇〇\の場合は、
Cells(cnt, 2) = objSC.TargetPath でExcelに入力が出来ません(空白)
 

この時の「○○」は、コンピュータ名ですよね?
 
必ず、共有フォルダがあるはずですが、違いますか?

回答
投稿日時: 20/09/13 18:38:30
投稿者: MMYS

Worksheets("設定値").Range("b3").Value
の値はなんですか。おそらく、フォルダ指定と思います。であれば
 
変数 Path のフォルダ指定と
Range("b3") のフォルダ指定が
 
同じならなら正常動作。
違う場合、開示動作になります。(存在しないパスを指定しているので)
 
 
 
 

投稿日時: 20/09/13 18:55:57
投稿者: toshio104o

WinArrow さんの引用:
toshio104o さんの引用:

上記のURLのあるショートカットファイル(*.lnk)のリンク先が、\\〇〇\の場合は、
Cells(cnt, 2) = objSC.TargetPath でExcelに入力が出来ません(空白)
 

この時の「○○」は、コンピュータ名ですよね?
 
必ず、共有フォルダがあるはずですが、違いますか?

 
 
 
〇〇は、コンピュータ名です。
必ず、共有フォルダはありますが、
コンピュータ名のみでショートカットファイルを作成されたものを
読み込みたいため、質問しました。

回答
投稿日時: 20/09/14 11:34:38
投稿者: WinArrow
投稿者のウェブサイトに移動

toshio104o さんの引用:

コンピュータ名のみでショートカットファイルを作成されたものを
読み込みたいため、質問しました。

 
共有関係にないPCから
コンピュータ名のみでショートカットファイルを
どのように作成したのでしょう?
 
実際のショートカットファイルのプロパテイの
リンク先へのパスを確認してみたらいかがでしょう?

回答
投稿日時: 20/09/14 12:08:39
投稿者: Suzu

これ、確か リンク先が、
 「\\コンピューター名」 の場合、TargetPath を取得できなかった記憶があります。
  (Win7 動作確認でもその様になりました。)
 
あくまでも「フォルダ」や「ファイル」に対して TargetPath なら取得できるのですがね。
(\\コンピューター名 のショートカット の作成はできます。)
 
キーワードが悪いのか、ネット検索しても出てきません。。
 
 
以前は、バイナリーで開いて 取得した記憶があります。
 
あいまいで申し訳ありません。

投稿日時: 20/09/15 23:59:54
投稿者: toshio104o

Suzu さんの引用:
これ、確か リンク先が、
 「\\コンピューター名」 の場合、TargetPath を取得できなかった記憶があります。
  (Win7 動作確認でもその様になりました。)
 
あくまでも「フォルダ」や「ファイル」に対して TargetPath なら取得できるのですがね。
(\\コンピューター名 のショートカット の作成はできます。)
 
キーワードが悪いのか、ネット検索しても出てきません。。
 
 
以前は、バイナリーで開いて 取得した記憶があります。
 
あいまいで申し訳ありません。

 
できないことがわかりました。
 
アドバイスありがとうございました