hatena
hatena
2023/01/18 (水) 16:03:25
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
通報 ...