前提条件として、
ExcelではAccessのフィールド名に相当するタイトル行があること。
各列の値がAccessのフィールドのデータ型に沿ったものである事。
(でないとエクスポートエラーになります)
で、VBA では下記のようになります。
(他にも方法がありますが、多分これが分かりやすいかと思います)
Excel で、Alt + F11 キーでVBEの画面にして
挿入→標準モジュール を選択し、下記コードを貼り付けます。
緑色になっているコメント行を読んで指示に従ってください。
>マクロの記録で行いたい
さすがのMS社さんもそこまで面倒は見てくれません。
>初歩的かも
難しい範疇に入ります。
Sub AccessMDB()
'ツール→参照設定 から
'Microsoft Access xx.x Object Library に
'チェックが必要です。
'xx.x は環境によって変わります
Dim AC As Access.Application
Set AC = CreateObject("Access.Application")
Stop
'ここで確認のため一旦止めています
'以降は、F8 を押して一行ずつ進めていって(ステップ実行)
'テーブルの中身の変化を確認していってください
'
AC.OpenCurrentDatabase "D:\Office\BBB.mdb", True
'実際のmdbファイルのフルパスに書き換えてください
AC.CurrentDb.Execute "delete * from TTT"
'テーブルのレコード削除
AC.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TTT", ThisWorkbook.FullName, True, "Sheet1!"
'テーブルに出力
'ワークシートの1行目をテーブルのフィールド名とするように、True としています
AC.DoCmd.RunCommand acCmdCompactDatabase
'最適化実行
AC.CloseCurrentDatabase
'ファイルを閉じます
AC.Quit
'Access終了
End Sub
お礼
大変わかりやすく説明して頂きありがとうございます。 早速トライしてみます。 お礼遅れてすみませんでした。