私はExcel 2010を使用しており、ユニコードコードでdbfにテーブルの範囲を格納する必要があります。 私は迷惑をかけました:どのようにテーブルの範囲のExcelワークシートをユニコード符号化でdbf形式で保存できますか?
Workbook.SaveAs FileName:="test.dbf", FileFormat:=xlDBF4, CreateBackup:=False
しかし、エラーが発生します。
どうすればいいですか?
私はExcel 2010を使用しており、ユニコードコードでdbfにテーブルの範囲を格納する必要があります。 私は迷惑をかけました:どのようにテーブルの範囲のExcelワークシートをユニコード符号化でdbf形式で保存できますか?
Workbook.SaveAs FileName:="test.dbf", FileFormat:=xlDBF4, CreateBackup:=False
しかし、エラーが発生します。
どうすればいいですか?
ユニコードでは、ファイルのエンコード方法に微妙な違いがあり、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の使用ツールでこれらを追加するには - >参照を...
その 'dbf'に注意してください。 '* .dbf'の範囲をdbf形式でエクスポートするには、どのように開発できますか? – mgae2m
'Microsoft ActiveXデータオブジェクトライブラリ(v6.1時点での10/16) 'が見つかりません。 「Microsoft ActiveXデータオブジェクト2.8ライブラリ」には、「Microsoft ActiveXデータオブジェクト2.0ライブラリ」があります。魔女1は活性化されるべきですか? – mgae2m
私はこれらのライブラリを使用するプロジェクトをチェックしたところ、両方がリストに表示されました。私は答えの最後にスクリーンショットを追加しました。私はOffice 365、Windows 10を使用しています。なぜそれらを見ていないのか分かりません。 –