質問: excel→access vbaによるインポート 1つのexcelファイルの複数のデータシートをaccess2000にインポートしたい。 【説明】 data.xlsという名前のexcel2000で作成したファイルがあり、その中に同じ書式(列)を 持ったsheetが20枚ほどあります。 それらのデータをaccess2000にインポートしたいのですが、 1.作業は毎月発生する。 2.ほかのユーザも出来るようにする。 などの理由から、マクロかvbaを使って自動化できればと考えています。 ぽちっとボタンを押すと、data.xlsのすべてのシートからデータをインポートし、 それぞれのsheet名がついたテーブルに格納されるというのが理想です。 フィールド名は固定ですので、あらかじめテーブルを作っておくことは出来ます。 excelの各シートの上部数行は見出しやら説明文が書いてありますので、 インポートの際にその部分の行(5行分)を削除することが必要です。 当方vbaの知識はほぼ皆無ですので、やんわりご教示頂ければ幸いです。 よろしくお願いいたします。 (次回ネットに入るのは15日以降です)
回答: しょっぱなから動かないのは参照設定の問題でしょう。 アクセスで他のdllファイルを利用した機能を使うときに必要です。 http://www.accessclub.jp/beginer/tips/tips_32.htm フィールド名の部分はより具体的に書くなら こんな感じになります。with rst .addnew !氏名 = "太郎" !住所 = "東京都" .update end withこれであるテーブルの氏名欄に「太郎」住所欄に「東京都」が入る訳です。 で今回の場合はエクセルのとあるシートのとあるセルの値がアクセスのテーブルに入るんですよね? ですから "太郎"の部分が、worksheets("sheet1").range("a1")とかになる訳で。 ループや変数扱い方がよく分からないのなら全て決め打ちにするしかないでしょう !氏名 = worksheets("sheet1").range("a1") !住所 = worksheets("sheet1").range("a2") !電話 = worksheets("sheet1").range("a3") というような感じで。 よく分かるようになったら数行でまとめられるようになります。が流石にそれは自分で勉強して下さい。