AccessからVBAでCSVファイルエクスポート

当ページのリンクには広告が含まれています。
  • URLをコピーしました!

AccessのデータをCSVでエクスポートして他システムで活用することはよくある作業です。

もちろん手動でテーブルを選択してエクスポートすることも可能ですが、通常ルーチン作業になることが多いため、ボタン一つで実行できると楽ですね。

今回はAccessからVBAでCSVファイルにエクスポートするコードはお気軽にコピペしてご利用ください。

個人の環境下で検証しておりますのでお使いの環境やデータによって正常に動作しない恐れもあります。サンプルはご自由にお使いいただいて結構ですが自己責任でご利用をお願いいたします。

目次

AccessからCSV(テキストファイル)を出力する方法

テキストファイルへのエクスポート

コードサンプル

'------------------------------------------------------------
'   処理内容:データCSV出力()
'   引数:なし
'   戻り値:
'  更新:
'------------------------------------------------------------
Private Sub OutputCsv()
    Dim strFileName     As String
    
    On Error GoTo Err_Exit
    
    strFileName = "C:\work\test.csv"
    
    'エクスポート
    DoCmd.TransferText acExportDelim, , "Qry●●", strFileName, True
    
    MsgBox "出力しました。", vbOKOnly + vbInformation
    
    Exit Sub
    
Err_Exit:
    MsgBox Err.Number & ":" & Err.Description, vbOKOnly + vbCritical, "OutputCsv()"
End Sub

解説

事前にファイル名(strFileName)をフルパスで指定し、対象のクエリをTransferTextコマンドを使ってエクスポートしています。

DoCmd.TransferText acExportDelim, , テーブル名(クエリー名), 出力ファイル名, True

第2引数区切り記号付きエクスポート
第3引数エクスポート定義名(定義が不要な場合は空白)
第4引数テーブルまたはクエリー名をダブルクォートで囲んで記述
第5引数出力ファイル名
第6引数ヘッダー行を出力する場合はTrue、不要の場合はFalse

※フォルダやファイル名を指定するプログラムは以下をご参照ください。

エクスポートする際に文字コードを変更したい

出力後に連携するシステムによっては、文字コードを指定したい場合もあります。

その際は第7引数に文字コードを指定してください。

主要な文字コードは以下の通りです。

識別子文字体系
指定なしSHIFT-JIS
65001Unicode (UTF-8)
1200Unicode UTF-16、リトル エンディアン バイト順 (ISO 10646 の BMP)マネージド アプリケーションでのみ使用できる
932SHIFT-JIS

その他の文字コードはこちらで詳細をご確認ください。

DoCmd.TransferText acExportDelim, , "Qry●●", strFileName, True,,65001

第6引数をあけて、第7引数なので要注意!(第6引数は第2引数がacExportDelimの時は無視されます)

注意点

TransferTextコマンドはテキストファイルにエクスポートするコマンドなので出力先のファイル拡張子がテキストファイルと認識されない場合予期せぬエラーになります。

💡 Accessしかできなかった私が年収2倍のPMになった話
キャリアを見直した実体験はこちらの記事で紹介しています

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次