Microsoft Access 掲示板

フォルダパス内にカンマ

6 コメント
views
4 フォロー

お世話になります。
下記コードでフォルダパスを開かせるようにしているのですが、パス内にカンマが含まれるときはうまく指定のフォルダパスを開くことができません。(エクスプローラーがデフォルトとして開く)
カンマが含まれていても開くことはできますでしょうか?
また、こういう実際開けないときにデフォルトのエクスプローラーを開かない方法はありますでしょうか…?

Private Sub btnパスへ移動_Click()

Dim testPath As String
    If Not IsNull([txtフォルダパス]) Then
    testPath = Me!txtフォルダパス
    PathOpen (testPath)
    Else
    MsgBox "パスが入力されていません。"
    End If
    
End Sub

Public Function PathOpen(freePath As String)

    If IsNull(freePath) Then
    MsgBox "パスが入力されていません。"
            ElseIf AcDir(freePath, vbDirectory) = "" Then
            MsgBox "保存しているパスが存在しません。パスを確認してください。"
            Exit Function
                ElseIf Not IsNull(freePath) Then
                Shell "Explorer.exe " & freePath, vbNormalFocus
                     Else: MsgBox "パスが入力されていません。"
    End If

End Function
セロハン
作成: 2021/02/24 (水) 09:27:14
通報 ...
1
hiroton 2021/02/24 (水) 09:45:06 83be0@f966d

パスにコマンドとして認識されてしまうような文字が含まれている場合はパス全体を「"」ダブルクオーテーションで囲む必要があります

Shell "Explorer.exe """ & freePath & """, vbNormalFocus

半角スペースが含まれてるパスなんかもよくあるパターンですね

2
セロハン 2021/02/24 (水) 11:36:02 0029a@1c915 >> 1

ありがとうございます。非常に助かりました!

3
セロハン 2021/02/24 (水) 12:58:05 0029a@1c915 >> 1

ごめんなさい、、お礼を言った後に申し訳ないのですが、修正してみたところやはりうまくパス先に飛べませんでした。(今までと同じ状況)
カンマ「,」を「&」に変更したらうまく飛ぶのですが…

4
セロハン 2021/02/24 (水) 13:21:17 0029a@1c915 >> 1

追記です。
①コードを直すと、以下のパスに書き換わります。
②フォルダパスを開くボタンを押したとき、フォルダは開いているようなのですが、前面に出てこないため開いたことがわかりづらい状態になっております。

Shell "Explorer.exe """ & freePath & """, vbNormalFocus"
5
hiroton 2021/02/24 (水) 13:24:20 83be0@f966d >> 1

あー、すみませんコードがみすってました
修正後コード

Shell "Explorer.exe """ & freePath & """", vbNormalFocus

正しくは
Shell "Explorer.exe """ & freePath & """", vbNormalFocus
です
最初のコードをコピペすると
Shell "Explorer.exe """ & freePath & """, vbNormalFocus"
と自動修正が働いて、うまく動かないコードになります


やっぱり手打ち回答してるとみすりますね・・・
VBEでちゃんと確認してからなら最初のコードも

Shell "Explorer.exe """ & freePath & """, vbNormalFocus"

のように色分けされて、vbNormalFocusが文字列の色になってるぞおかしいってすぐわかるんですが、試してもらっているコードもこうなっていますよね?

6
セロハン 2021/02/24 (水) 16:07:38 0029a@1c915 >> 5

なるほど、うまく行きました!
確かに色分けされています。全く気にしていませんでした。これからは意識するようにしたいと思います。
ありがとうございました。