[[20081114170632]] 『ファイル検索で.Pathで取得した文字が化ける』(飛び入り) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ファイル検索で.Pathで取得した文字が化ける』(飛び入り)
 下のコードの
           Cells(GYO, 3).Value = _
             Left(.Path, Len(.Path) - Len(.Name) - 1)
 部分で書き出している、フォルダのパスが漢字である為なのか、
 文字化けします。
 ちなみに、当然のことかも知れませんが、Cells(GYO, 3).Value = .Path
 としても文字化けしてます。
 原因は何なのでしょうか?

 '   ファイル検索
 Sub File_Search()
    Dim vntF As Variant
    Dim objFS As FileSearch
    Dim objFSO As FileSystemObject
    Dim dteDate As Date
    Dim GYO As Long
    Dim cntFound As Long
    Dim month_set As Integer

    Set objFS = Application.FileSearch      ' FileSearch
    Set objFSO = New FileSystemObject       ' FSO
    Rows("5:65536").ClearContents
    GYO = 4
    With objFS
        .NewSearch
        .LookIn = Trim(Cells(1, 2).Value)   ' Search開始フォルダ
        .Filename = Trim(Cells(2, 2).Value) ' 探索ファイル式

        '月セットが0で9999ヶ月をセットする。
        If Cells(3, 2).Value = 0 Then
                month_set = 9999
            Else
                month_set = Cells(3, 2).Value
        End If
        dteDate = DateAdd("m", month_set * -1, Date)
        .SearchSubFolders = True            ' サブフォルダも探索
        ' 処理開始
        If .Execute() <> 0 Then
            ' 見つかったファイル分のループ
            For Each vntF In .FoundFiles
                '−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
                '    ↓↓↓この間が見つかったファイルに対する処理↓↓↓
                ' FSOにてファイルを取得
                With objFSO.GetFile(vntF)
                ' 今回は、最終更新日を確認し、該当ならシートの表示
                    If .DateLastModified >= dteDate Then
                        GYO = GYO + 1
                        Cells(GYO, 1).Value = .Name
                        Cells(GYO, 2).Value = .DateLastModified
                        Cells(GYO, 3).Value = _
                            Left(.Path, Len(.Path) - Len(.Name) - 1)
                        cntFound = cntFound + 1
                    End If
                End With
                '    ↑↑↑この間が見つかったファイルに対する処理↑↑↑
                '−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
            Next vntF
        End If
    End With
    Set objFS = Nothing
    Set objFSO = Nothing
    ' 処理結果の表示
    If cntFound = 0 Then    
        自動閉_f_mes = 0
        message_moji = "見つかりません"
        message_time = 2
        UF_message.Show
    Else
        自動閉_f_mes = 0
        message_moji = cntFound & "個見つかりました"
        message_time = 2
        UF_message.Show
    End If
 End Sub

わかりませんか?


 検索してみましたら、「.Path 文字化け」ワードでヒットしました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1310972723?fr=rcmd_chie_detail
 YAHOO!JAPAN知恵袋
  「Excel2003VBAでFolder.Pathの値に文字化けが生じました。」

 以下抜粋
 Q:Folder.Pathの内容に文字化けが起きていました。
   (bug_in_the_brainsさん)
 A:ある特定の漢字、若しくはカタカナでは、ありませんか?
   特定の漢字コードが、制御コードと、重なっているものが、有ります。
   (kuresonmanさん)

 と言う事ですので
 「漢字を含む全てのパスが駄目」って事だと関係ないかもしれませんが。

 (HANA)

特定の文字ですので、同じ症状です。こちらExcel 2003です。(飛び入り)


 でしたら、その「特定の文字」を特定し
 情報として載せておいて頂けるとありがたく思います。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.