AccessからExcelデータを操作するには、常に次の操作を行います。VBA新しいExcelインスタンスを作成するのではなく、Excel.Applicationオブジェクトをブックを既に開くように設定します。
Set xl = CreateObject("Excel.Object")
ただし、このメソッドは新しいExcelインスタンスを作成し、たとえば、そのインスタンスにのみ書式設定を適用します。
xl.Range(...).Interior.Color = blah, blah, blah
最初のコード行で作成されたExcelオブジェクトのそのインスタンスのみを参照します。
私はすでにExcelのインスタンスを開いていて、インポートする準備をするためにすでに開いているファイルに書式を適用するために使用するAccessにVBAがあるという問題があります。私はExcelの新しいインスタンスを作成し、私がxl.Workbook(blah).Activate
で作業しているワークブックを参照することができたと思うが、ちょっと混乱しているようだ。
私はコードをExcelに移すことができましたが、AccessからExcelを操作し、ユーザーがアクセスできる中央のVBAを持つという目的を破っています。
ルックは)'限りエクセルの単一インスタンスのみが開いて、すでにそこだとして、それはあなたが欲しいものを行う必要があります。 –
これは助けになるかもしれません:http://stackoverflow.com/questions/2971473/can-vba-reach-across-instances-of-excel – Ralph
Set xlApp = GetObject( "Excel.Application")が請求書に合っているかどうか?開いていればこれは優れています。 –