Workbooks.Open
は、現在のMS Excelのインスタンスを使用し、CreateObject(“Excel.Application”)
は、新たなMS Excelのインスタンスを作成します。 CreateObject
hereを読むことができます。
新しいインスタンスを作成した後で単に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")
、私はエクセルの1つのインスタンスを使用する必要がありますが、すべてのワークブックを開くためにCreateObjectを使用して作成されたか、私は私が持っているそれぞれのワークブックのための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
'
@Siddarth、Excellent Siddarthとありがとう。 –