2017-08-26 4 views

答えて

1

ユニコードでは、ファイルのエンコード方法に微妙な違いがあり、fsoを使用すると、より多くの制御が可能になるため、Scripting.FileSystemObject(fso)を使用して調べることができます。たとえば私のプロジェクトの1つでは、ファイルをutf-8-bomではなくplain utf-8として保存する必要がありました。デフォルトの動作はファイルをutf-8-bomとして保存することです。つまり、ファイルの先頭に配置されたバイトオーダーマーク(BOM)と呼ばれる3つの隠し文字があります。 Microsoftスクリプトランタイムを:平野UTF-8

Dim fso As Scripting.FileSystemObject, stream1 As Stream, stream2 As Stream 
Sub saveFileAfterRemovingBOM(path As String) 
stream1.Position = 3 'skip BOM (byte order mark) 
Set stream2 = CreateObject("ADODB.Stream") 
With stream2 
    .Type = adTypeBinary 
    .Mode = adModeReadWrite 
    .Open 
    stream1.CopyTo stream2 
    stream1.Flush 
    stream1.Close 
    .SaveToFile path, adSaveCreateNotExist 'creates the file if it doesn't exist 
    .Flush 
    .Close 
End With 
End Sub 

としてファイルを保存する前に、以下のコードでは、これらの3つの文字が新しいストリームにコピーすることによって除去されるストリーム& Scripting.FileSystemObjectオブジェクトは、次のようにVBEでの参照を追加する必要があります& Microsoft ActiveXデータオブジェクトライブラリ(10/16時点のv6.1)。 VBEの使用ツールでこれらを追加するには - >参照を...

enter image description here

+0

その 'dbf'に注意してください。 '* .dbf'の範囲をdbf形式でエクスポートするには、どのように開発できますか? – mgae2m

+0

'Microsoft ActiveXデータオブジェクトライブラリ(v6.1時点での10/16) 'が見つかりません。 「Microsoft ActiveXデータオブジェクト2.8ライブラリ」には、「Microsoft ActiveXデータオブジェクト2.0ライブラリ」があります。魔女1は活性化されるべきですか? – mgae2m

+0

私はこれらのライブラリを使用するプロジェクトをチェックしたところ、両方がリストに表示されました。私は答えの最後にスクリーンショットを追加しました。私はOffice 365、Windows 10を使用しています。なぜそれらを見ていないのか分かりません。 –

関連する問題