

No.2ベストアンサー
- 回答日時:
VBAで書けば、例えば、こんな感じになります。
db1.xls というエクセルのファイルがあって、そのファイルに Sheet1、Sheet2、、、、、、Sheet40というシートが含まれている、という前提です。
(行替えやタブがここでうまく書けないので、読みにくいし、そのままコピーしてもうまく行かないかもしれません)
Sub A()
Dim I As Intege
For I = 1 To 40
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Sheet" & I, "db1.xls", True
Next
End Sub
F5で実行します。
データベースに、シートと同じ名前のテーブルができます。
同じシート名のテーブルがすでにあれば、インポートしたレコードは追加されます。
コードは実際に自分のパソコンで走らせて確認していますが、やる前に絶対にパックアップを取っておいてください。
お手元のデータベースがめちゃくちゃになってしまったら、私は、これも絶対に、直せません。
ポイントは DoCmd.TransferSpreadsheet という命令です。
引数は左から順番に、インポート、ソースはエクセル2000、シートの名前は Sheet**、ソースのファイル名は db1.xls、先頭行をフィールド名として使う、と言う意味です。
詳しくはヘルプで見ていただきたいと思います。
ヘルプはもしかしたら、デフォルトでインストールされていないかもしれません。
インストールされていれば、TransferSpreadsheet の部分のどこかにカーソルを置いて、F1で表示されます。
2番目の引数について、エクセル2000より後の場合にどうなるのかは、申し訳ないですが、知りません。
これについては、ヘルプで確認してください。
もし、シート名がこのように規則的な名前でなければ、この DoCmd.TransferSpreadsheet をシートの数だけ羅列します。
Sub A()
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "なんとか"db1.xls", True
DoCmd.TransferSpreadsheet acImport acSpreadsheetTypeExcel9, "かんとか"db1.xls", True
............(以下同様)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ほにゃら"db1.xls", True
End Sub
さて、余談になりますが、今回きりの作業であれば、私なら、ひとつひとつインポートウィザードでインポートします。
高々、40シートですよね。スプレッドシートの構成や中身によりますが、1シートあたり10分もあれば、インポートできるのではないでしょうか。
TransferSpreadsheet メソッドでインポートしても、あとでフィールドのデータ型を変えたり、主キーを設定したり、という作業がそれぞれのテーブルで必要になるかもしれません。つまり、モジュールをつくってみても、それで終わりにはなりません。定期的なルーチン作業ならともかく、今回限りなら、大して手間は変わらないと思います。
ありがとうございます。
ユーザー定義が定義されておりませんと
Sub A()
のところが黄色になり出てしまうんですが…
おっしゃる様にひとつひとつ手作業でインポートしていきます。

No.1
- 回答日時:
勝手に想像しますが、その40以上あるシートを定期的にアクセスのデータベースにインポートしなければならない、という状況でしょうか。
その場合、エクセルのファイル名、シート名、フィールド名は変わりませんね?インポートする先も決まっていますね?
その場合、それぞれのシートにリンクした、リンクテーブルを作っておくとよいでしょう。
それで、リンクテーブル01(つまり、エクセルのシート01)のレコードをテーブル01に追加する追加クエリ、リンクテーブル02(シート02)のレコードをテーブル02に追加する追加クエリ・・・・・と追加クエリをシートの数だけ作っておきます。
次からは、その40いくつある追加クエリを一つずつ実行するだけです。
というのはどうでしょう。
1アクションでこの追加クエリを全部実行する、というのは、やはりVBAかマクロを書かないとできません。
余計なお世話ですが、必要なのは「クエリを実行する」コマンドだけですので、挑戦してみませんか?
一回きりの作業であって、単に40以上のシートをまとめてドラッグして、アクセスのウィンドウにドロップする、というようなことができるか、という質問でしたら、その答えは知りません。
たぶん、シートの数だけインポートしなければならないのではないでしょうか。
回答ありがとうございます。
定期的ではなく一回だけです。
説明不足ですいません。
VBAかマクロで簡単にできる方法があったら教えて頂きたいのですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excel複数シートをaccessへ一括インポート
Visual Basic(VBA)
-
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
エクセル複数シートをアクセスで1つのテーブルに。
Access(アクセス)
-
-
4
Accessのマクロを使用してExcelのシートをインポートしたい
Access(アクセス)
-
5
ACCESS への複数ファイルのインポートマクロ
Access(アクセス)
-
6
アクセスクエリ(複数)→マクロ→エクセル出力(ワークシート別)
その他(パソコン・スマホ・電化製品)
-
7
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
8
Access サブフォームでの選択行の取得
その他(データベース)
-
9
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
10
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
11
複数のエクセルファイルをアクセスにインポートし自動で一つのデータにまとめたい
Access(アクセス)
-
12
Access VBA インポート シート指定
Excel(エクセル)
-
13
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
14
Access VBAよりシート名を取得したい
その他(データベース)
-
15
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
-
16
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
17
エクセルの指定したシートにエクスポート
その他(データベース)
-
18
Accessにインポートしたら並び順が変わっちゃった
Access(アクセス)
-
19
AccessのテーブルデータをExcelの特定のワークシート名にエクスポートすることは可能ですか
Excel(エクセル)
-
20
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のシートのみ再計算させな...
-
エクセルで複数のシートに画像...
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
ワークシートそのものの色を変...
-
【ExcelVBA】マクロの入ったシ...
-
ハイパーリンクでジャンプした...
-
Excel 全シート上のボタンを削...
-
InputBoxに入力した言葉をシー...
-
Excelでマクロ設定したが反映さ...
-
エクセルで、シートの名前を変...
-
エクセルの2つのシートを並び...
-
エクセル 非表示のシートをハ...
-
EXCELの図形(テキストボックス)...
-
アクセスからエクセルのシート...
-
DATE関数 4月31日などのあ...
-
Accessのテーブルを既存のExcel...
-
特定の複数のシートに同じ処理...
-
エクセルのシート連番の振り直し
-
EXCELの「シートの見出し」のフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
ワークシートそのものの色を変...
-
特定のシートのみ再計算させな...
-
エクセルでブック内の倍率がバ...
-
エクセルで複数のシートに画像...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルの2つのシートを並び...
-
エクセルで、シートの名前を変...
-
Wordで差し込み印刷時に表示す...
-
エクセルのシート連番の振り直し
-
Aフォルダにあるエクセルの表を...
-
特定の複数のシートに同じ処理...
-
ハイパーリンクでジャンプした...
-
エクセル 非表示のシートをハ...
-
Excelでマクロ設定したが反映さ...
-
エクセル、特定のシートにパス...
-
Accessのテーブルを既存のExcel...
-
エクセルのシート名の変更がで...
-
アクセスからエクセルのシート...
-
EXCELの図形(テキストボックス)...
おすすめ情報