

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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Excel(エクセル) エクセルでファイル保存時に複数シートのオートフィルタを全て解除したい 1 2023/05/10 13:23
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) セルの値からファイルを複数作りたい 2 2022/10/06 12:42
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
何回やってもうまくいかないことは?
みなさんには、何回やってもうまくいかないことはありますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
Excel複数シートをaccessへ一括インポート
Visual Basic(VBA)
-
ACCESS への複数ファイルのインポートマクロ
Access(アクセス)
-
エクセル複数シートをアクセスで1つのテーブルに。
Access(アクセス)
-
-
4
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
5
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
6
Access VBAよりシート名を取得したい
その他(データベース)
-
7
Access VBA インポート シート指定
Excel(エクセル)
-
8
Accessにインポートしたら並び順が変わっちゃった
Access(アクセス)
-
9
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
10
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
11
「#エラー」の回避
Access(アクセス)
-
12
Access VBAからExcelシートの削除
Excel(エクセル)
-
13
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
14
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
15
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
16
インポート時のエラー「データ型の変換エラー」
Access(アクセス)
-
17
ACCESSでのエクセルインポート時のシート有無の判定について
その他(データベース)
-
18
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
19
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
20
ACCESSのVBで、エクセルファイルの最終行を取得
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
特定のシートのみ再計算させな...
-
ハイパーリンクでジャンプした...
-
【ExcelVBA】マクロの入ったシ...
-
エクセル、特定のシートにパス...
-
確定申告用の医療費集計フォー...
-
Excelでマクロ設定したが反映さ...
-
エクセルで複数のシートに画像...
-
エクセルでリンク貼り付けした...
-
EXCELの図形(テキストボックス)...
-
Wordで差し込み印刷時に表示す...
-
Accessのテーブルを既存のExcel...
-
エクセルのシー名を二段表示に...
-
EXCELで存在しないシート...
-
(エクセル)Indirect関数で、ハ...
-
【Excel VBA】データ貼り付け先...
-
エクセルの2つのシートを並び...
-
エクセルのファイルサイズが急...
-
ワークシートそのものの色を変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
ハイパーリンクでジャンプした...
-
特定のシートのみ再計算させな...
-
エクセルで複数のシートに画像...
-
【ExcelVBA】マクロの入ったシ...
-
EXCELの図形(テキストボックス)...
-
エクセルのシー名を二段表示に...
-
ワークシートそのものの色を変...
-
エクセル、特定のシートにパス...
-
確定申告用の医療費集計フォー...
-
EXCELの「シートの見出し」のフ...
-
Wordで差し込み印刷時に表示す...
-
Accessのテーブルを既存のExcel...
-
EXCELで存在しないシート...
-
エクセルの2つのシートを並び...
-
エクセルのシート連番の振り直し
-
Excelでマクロ設定したが反映さ...
-
エクセルで、シートの名前を変...
-
エクセルの複数シートでのリン...
おすすめ情報