AccessのデータをCSVで出力して、他のシステムに連携したい──
そんなときに役立つのが、VBAによる自動エクスポート処理です。
手動でのエクスポートも可能ですが、定期作業であれば「ボタン1つでCSV出力」ができると便利ですよね。
本記事では、AccessからCSV出力するためのVBAコード例を紹介しつつ、
文字コードの指定方法やエクスポート時のよくあるエラー対処法についてもあわせて解説します。
AccessからCSV出力する基本のVBAコード
まずは定番の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
に出力ファイルのフルパスを指定DoCmd.TransferText
でクエリをCSV形式で出力- 第5引数の
True
でヘッダー行を出力
DoCmd.TransferText acExportDelim, , テーブル名(クエリー名), 出力ファイル名, True
第2引数 | 区切り記号付きエクスポート |
第3引数 | エクスポート定義名(定義が不要な場合は空白) |
第4引数 | テーブルまたはクエリー名をダブルクォートで囲んで記述 |
第5引数 | 出力ファイル名 |
第6引数 | ヘッダー行を出力する場合はTrue、不要の場合はFalse |
出力時にファイル名・パスを柔軟に指定するには?
フォルダやファイルをユーザーに選ばせたい場合は、以下の記事を参考にしてください。
これらを組み合わせることで、ファイル保存場所を柔軟に指定できます。
文字コードを指定したい(UTF-8など)場合の方法
出力先システムによっては、文字コードにUTF-8を求められることもあります。その場合は第7引数にコードページを指定できます。
DoCmd.TransferText acExportDelim, , "Qry●●", strFileName, True,,65001 ' UTF-8
識別子 | 文字体系 |
---|---|
(省略) | Shift-JIS(デフォルト) |
65001 | UTF-8 |
1200 | UTF-16 LE |
932 | Shift-JIS |
注意:第6引数を空にした上で、第7引数を設定する必要があります。。
その他の文字コードはこちらで詳細をご確認ください。
DoCmd.TransferText acExportDelim, , "Qry●●", strFileName, True,,65001
よくあるエラーと対処法(3027など)
エラー例
3027:データベースまたはオブジェクトは読み取り専用なので、更新できません。
対処ポイント
- 出力先のフォルダに書き込み権限があるか確認
- ファイル名の指定に誤りがないか(拡張子やパス)
- ファイルがすでに開かれていないかチェック
詳しくは別記事でまとめています: 👉 Access実行時エラー3027の対処法
自動化のその先へ:他ツールと連携するには?
AccessでCSV出力ができれば、以下のようなツールとの連携も可能です:
- Excel:Power Queryを使って自動取込
- Googleスプレッドシート:CSV読み込み+GASで通知
- ZohoやNotionなどへの手動アップロード
業務の流れに応じて、どこまで自動化するかを考えると効率アップにつながります。
関連記事リンク
まとめ|Access資産を活かす業務効率化とは?
AccessでのCSV出力は、小規模な業務システムや定期的なデータ連携において、今も実用的な方法です。
本記事のコードを活用しながら、少しずつ自動化を進めることで、作業効率も確実にアップします。
最近では、Google Apps Script(GAS)やNotionなどのツールを併用しているケースも増えています。
これまでAccessで培ったロジックや自動化の知見は、次のツール移行や業務改善にもつながる武器になりますよ!
コメント