AccessにCSVを書き出す為のプログラム「CSV書き出し」を書き、それをExcel側のプログラムで実行する例

progani

Access側にCSVを書き出すプログラム書く
Const strFileName As String = "体重管理"

Sub CSV書き出し()
    DoCmd.TransferText TransferType:=acExportDelim, TableName:="tblデータ", _
        FileName:=Application.CurrentProject.Path & "\" & strFileName & ".csv"
End Sub

カレントデータベースと同じフォルダに書き出ししたい場合は、CurrentProject.Path を指定しないと、
「ツール」-「オプション」-「全般」の『既定のデータベースフォルダ』に書き出される

構文
式。 TransferText (TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName, CodePage)

第3引数 TableName テキスト データのインポート、エクスポート、リンクを行う Microsoft Access テーブルの名前、または結果をテキスト ファイルにエクスポートする Microsoft Access クエリの名前を、文字列式で指定します。

第5引数 HasFieldNames  は、テキスト ファイルの 1 行目をフィールド名として使用する場合は、True (–1) を使います。テキスト ファイルの 1 行目をデータとして処理する場合は、False (0) を使います。この引数を指定しないと、False (既定値) が使われます。


Excel側で、Accessに書いたCSV書き出しプログラムを実行する
Const DB_Name As String = "\MY体重管理.accdb"

Sub CSV()
    Dim strPath As String
    Dim objACS As Object
    
    strPath = ThisWorkbook.Path & DB_Name
    
    Set objACS = CreateObject("Access.Application")
    
    With objACS
        .Visible = False  'アプリケーションを非表示
        .OpenCurrentDatabase (strPath)
        .Run ("CSV書き出し") 'Accessに書いたサブルーチン
        .CloseCurrentDatabase
        .Quit
    End With
    
    Set objACS = Nothing
    
    MsgBox "CSVファイルの書き出しが完了しました", vbInformation