Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5331 / 13646 ツリー ←次へ | 前へ→

【51468】フォルダを閉じる acch 07/9/20(木) 9:19 質問[未読]
【51469】Re:フォルダを閉じる Blue 07/9/20(木) 9:56 回答[未読]
【51471】Re:フォルダを閉じる acch 07/9/20(木) 11:59 お礼[未読]

【51468】フォルダを閉じる
質問  acch  - 07/9/20(木) 9:19 -

引用なし
パスワード
   教えてください。
次のルーチン(過去の投稿を参考にさせていただきましたが、見よう見まねで意味はまったくわかりません)を実行しました。自宅では、うまくいったのですが、職場ではうまくいきません。

Sub folder_close()
Dim ws As Object
Dim cpath As String
With CreateObject("shell.application")
 For Each ws In .Windows
   cpath = Replace(Replace(Replace(ws.Locationurl, "%20"," "),"file:///",""),"/","\")
   if Right(cpath,1) = "\" then
    cpath = Left(cpath,Len(cpath) - 1)
   End if
   If ThisWorkbook.Path = cpath Then
    ws.Quit
    Exit For
   End If
 Next
End With
End Sub

以上ですが、
   If ThisWorkbook.Path = cpath Then
のところで、内容をみると、
ThisWorkbook.Path −> "\\Caresvr\WINCAREV"\Csv\郵便振替"
cpath       −> "file:\\Caresvr\WINCAREV"\Csv\郵便振替"
となり、クローズできません。(自宅のパソコンでは一致しており、クローズできたのですが??)
どう修正すればいいのでしょうか。

【51469】Re:フォルダを閉じる
回答  Blue  - 07/9/20(木) 9:56 -

引用なし
パスワード
   Explorerであれば、
WindowsプロパティからDocumentプロパティの値をとって指定のフォルダかどうかを
判定したほうがよいでしょう。

Dim ws As Object
Dim cpath As String

For Each ws In CreateObject("Shell.Application").Windows
  If InStr(TypeName(ws.Document), "ShellFolder") > 1 Then
    cpath = ws.Document.Folder.Self.Path
    If Right$(cpath, 1) = "\" Then
      cpath = Left(cpath, Len(cpath) - 1)
    End If
    If ThisWorkbook.Path = cpath Then
      ws.Quit
      Exit For
    End If
  End If
Next

【51471】Re:フォルダを閉じる
お礼  acch  - 07/9/20(木) 11:59 -

引用なし
パスワード
   すばらしいです。ちゃんとクローズすることができました。
感謝です!!

5331 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free