こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

回答受付中の質問

アクセスへのエクセルファイルの一括取込みについて

お世話になっております。

エクセルVBAで所定のフォルダのエクセルファイルから一つのシートにまとめるというマクロを作成しております。アクセスVBAでaccdbファイルで同じことをしたいのですが、アクセスは触ったことがなく、ご教示していただけないでしょうか。

以下エクセルでの取り込みマクロです(長いので一部割愛)。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Sub エクセル取り込み()
Dim fpath, fname, buzai, bmst, hantei As String
Dim buzaiflg As Boolean
Dim wb As Workbook
Dim sh1, sh2, sh3, sh4, sh5 As Worksheet
Dim dlg As FileDialog
Dim TCht As Chart

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False

Set sh1 = ThisWorkbook.Worksheets("データまとめ")
Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
' キャンセルボタンクリック時にマクロを終了
If dlg.Show = False Then Exit Sub
' フォルダーのフルパスを変数に格納
fpath = dlg.SelectedItems(1) & "\"

Application.DisplayAlerts = False

i = 5
pcnt = 2
fname = Dir(fpath & "*.xl*", vbNormal)
Do Until fname = ""
Set wb = Workbooks.Open(fpath & fname, UpdateLinks:=0)
Set sh2 = wb.Worksheets(1)

i = i + 1

sh1.Range("A" & i).Value = i - 5
sh1.Range("B" & i).Value = fname
sh1.Range("C" & i).Value = sh2.Range("A6").Value
sh1.Range("D" & i).Value = sh2.Range("D6").Value
sh1.Range("E" & i).Value = sh2.Range("F6").Value
sh1.Range("F" & i).Value = sh2.Range("K4").Value
sh1.Range("G" & i).Value = sh2.Range("K5").Value
sh1.Range("H" & i).Value = sh2.Range("A9").Value

割愛

wb.Close SaveChanges:=False
fname = Dir()
Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True

MsgBox "終了しました。"
End Sub

投稿日時 - 2019-11-19 11:18:57

QNo.9680652

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

エクセルのファイルをアクセスで処理したいという事でしょうか。
でしたら、エクセルのファイルをアクセスにインポートして追加クエリの実行をファイル分だけ繰り返してして最後にエキスポートするとできます。
コードはマクロを作成して「マクロをVisual Basicに変換」して手を加えてください。

投稿日時 - 2019-11-20 16:02:31

あなたにオススメの質問