Workbooks.Open
現在のMSExcelインスタンスを使用してCreateObject(“Excel.Application”)
、新しいMSExcelインスタンスを作成します。CreateObject
あなたはここで読むことができます。
新しいインスタンスを作成した後に単に発行しWorkbooks.Open
ても、ワークブックが新しいインスタンスで開かれることは保証されません。あなたはそれにバインドする必要があります。例えば
Dim oXLApp As Object, wb As Object
Set oXLApp = CreateObject("Excel.Application")
'~~> Hide Excel
oXLApp.Visible = False
'~~> Open files
Set wb = oXLApp.Workbooks.Open("C:\Sample.xls")
他の質問について
また、CreateObjectを使用して作成されたExcelの1つのインスタンスを使用してすべてのワークブックを開く必要がありますか、それとも処理する必要のあるワークブックごとに1つのインスタンスを作成する必要がありますか?
複数のインスタンスは必要ありません。1つのインスタンスで作業できます。例えば
Dim oXLApp As Object, wb As Object
Set oXLApp = CreateObject("Excel.Application")
'~~> Hide Excel
oXLApp.Visible = False
'~~> Open files
Set wb = oXLApp.Workbooks.Open("C:\Sample1.xls")
'
'~~> Do some Stuff
'
wb.Close (False)
'~~> Open files
Set wb = oXLApp.Workbooks.Open("C:\Sample2.xls")
'
'~~> Do some Stuff
'
wb.Close (False)
'
'~~> And So on
'