Step7:UTF-8形式ファイルの読み書き(BOM無し)|Excelソフト

AMP(アンプ)ファイルはUTF-8形式なので、読み書きテストを行います。保存はBOM無しでおこないます。

UTF-8ファイルに関しては「UTF-8形式 HTMLファイルの読み込みと書き込み方法」と「Excel VBAでBOM無しのUTF-8ファイルを作成する方法」を参考にしてください。

AMP変換ソフト作成 メニューへ

スポンサーリンク





UTF-8ファイルの読み込み

下のプロシージャを作成しました。
読み込んだファイルは後で使用するので、Private宣言の変数にしました。
ADODB.Streamを使用し、一行ずつ読み込み確認のためイミディエイトウィンドウに表示します。
イミディエイトウィンドウに表示させるには「Debug.Print」を使います。
UTF-8ファイルの読み込み

Private Sub ExUtfRead()
    Dim fname As String
    Dim tmp As String
    Dim tobj As Object
     
    fname = Range("F5")
    Set tobj = CreateObject("ADODB.Stream")
    tobj.Charset = "UTF-8"
    tobj.LineSeparator = 10
    tobj.Open
    tobj.LoadFromFile fname
        Do Until tobj.EOS
            tmp = tobj.ReadText(-2)
            sUtfBuf = sUtfBuf & tmp
        Loop
    tobj.Close
    Debug.Print sUtfBuf
End Sub

[変換開始]ボタンのクリックイベントから呼び出すようにします。
[変換開始]ボタンのクリックイベントから呼び出す

Private Sub CommandButton1_Click()
    If Range("F5") = "" Then
        MsgBox "変換ファイル名を入力してください。"
        Exit Sub
    End If

    If ExDir(Range("F5"), vbNormal) = "" Then
         MsgBox "変換ファイル名が存在しません。" _
             & vbCrLf & "処理を中止します。"
         Exit Sub
    End If
     
    ExUtfRead
End Sub

実行結果のイミディエイトウィンドウです。
文字化けせずに正常に読み込まれています。
実行結果のイミディエイトウィンドウ
(イミディエイトウィンドウを開くには、表示メニューで行います)

スポンサーリンク



読み込んだファイルをBOM無しのUTF-8で保存します。
BOM無しにするに先頭の3バイトの情報を削除します。
BOM有りにするには、この部分のコードを削除してください。
引数を追加しIF文で選択できるようにしてもいいかと思います。
読み込んだファイルをBOM無しのUTF-8で保存

保存したUTF-8ファイルをテキストエディタで開いた画面です。
UTF-8(BOM無し)と表示されています。
UTF-8ファイルをテキストエディタで開いた画面

念のためにバイナリエディタで比較しました。
処理前のファイルを開いたバイナリコードです。
処理前のファイルを開いたバイナリコード

処理後のファイルを開いたバイナリコードです。
違いはなく問題なく読み書きできています。
処理後のファイルを開いたバイナリコード

スポンサーリンク






AMP変換ソフト作成 メニューへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved