Microsoft Access 掲示板

VBAでエクセルを操作してシートにある値をアクセスのテーブルへ保存したい / 2

4 コメント
views
4 フォロー
2

Set WSH = CreateObject("Wscript.Shell") は不要(使っていないなので)
開いたブックは変数に代入しておいて、それに対して操作する。
Set ExApp = Nothing はなくてもOK、End Sub で自動で Nothing にしてくれるので。

以上の点を考慮して修正すると下記になります。

Sub Test()

    Dim ExApp As Object
    Set ExApp = CreateObject("Excel.Application")
    ExApp.Visible = True '正常動作確認後、削除してもOK
    
    Dim DesktopPath As String, FilePath As String
    FolderPath = "C:\アクセス\エクセル"
    FilePath = FolderPath & "\エクセル操作.xlsx"

    Dim Rng1 As String
    Dim Rng2 As String
    Dim Rng3 As String
    Dim Rng4 As String
    Dim wb As Object

    Set wb = ExApp.Workbooks.Open(FileName:=FilePath) '開いたブックを変数に代入
    Rng1 = wb.Sheets(1).Cells(1, 1)
    Rng2 = wb.Sheets(1).Cells(1, 3)
    Rng3 = wb.Sheets(1).Cells(4, 1)
    Rng4 = wb.Sheets(1).Cells(4, 3)
    wb.Close '開いたブックを閉じる
    ExApp.Quit 'エクセルを閉じる

    CurrentDb.Execute "insert into T1(f1,f2,f3,f4) VALUES('" & Rng1 & "','" & Rng2 & "','" & Rng3 & "','" & Rng4 & "');", dbFailOnError

End Sub
通報 ...