2012-01-25 3 views
1

を使用してマクロをプログラミングしましたが、これはWorkbook_Open()呼び出し( "thisWorkbook")にあります。excel 2007を使用してexcelが既に実行されている状態でworkbook_Open()が実行されていません

これは新しい「エクセルセッション」であるので、これはうまく動作します。したがって、xlsm-file /と一緒に開始されます。ファイルを読み込み、読み込みます。

ただし、Excelが既に実行されている間は、Workbook_Open()関数は実行されません。そうでなければ、マクロは、ブックがロードされた後に手動で起動すると、正常に動作します。

明確にする:他のワークブックが開いていなくても、これは起こりますが、他の計算が(ほとんどの場合提案されているように)Workbook_Open()コールを妨げることはないと確信しています。

(問題があまりにもExcel 2003のために存在しているようだ: Excel Workbook Open Event macro doesn't always run

私はどのような場合には、私のマクロを呼び出す方法を任意のヒントのために感謝されます! (大部分のユーザーが既にファイルを起動したときにExcelを起動しているので) ありがとう

+0

ファイルが既に開かれている場合、Excelが二度同じファイル名を開くことができませんので、それは、発射されていないように見えます。 – jgallant

+0

ファイル_at all_が開いていますが、すべてのワークブック(対象ファイルを含む)が閉じられ、実行中にExcelが実行されたままになります – Thumper

+1

通常のExcelの動作ではありません。私はあなたが開発用に使用しているマシンに固有のものだと思っています。他のマシンでも同じ動作が起こりますか? –

答えて

2

グローバルbool変数を作成し、workbook_openで値をtrueに設定することができます。

そして、あなたはの値を確認した後、変数

'In Module 
Global BoolCheck As Boolean 


Sub CheckValue() 
'Verify if Workbook_Open Event is called 
If BoolCheck = False Then 
    'case not call the 
    ActiveWorkbook.Workbook_Open 
End If 
End Sub 

'in Workbook Object 
Public Sub Workbook_Open() 
    BoolCheck = True 
End Sub 

[]の

関連する問題