0

特定のテンプレートに基づくドキュメントが作成されるたびに、Word で Excel ドキュメントを開こうとしています。

ここに私のマクロがあります

Sub AutoNew()
Dim oExcel As Excel.Application
Dim oWB As Workbook
Set oExcel = New Excel.Application
Set oWB = oExcel.Workbooks.Open("E:\Letters.xlsx")
End Sub

テンプレートをダブルクリックすると、テンプレートに基づいたドキュメントが表示されますが、マクロは実行されません。

テンプレートのマクロのリストに表示されますが、実行しようとしても何も起こりません。

4

1 に答える 1

2

KazJawについて述べたように、アプリを見えるようにする

Sub AutoNew()
  Dim oExcel As Excel.Application
  Dim oWB As Workbook
  Set oExcel = New Excel.Application
  Set oWB = oExcel.Workbooks.Open("E:\Letters.xlsx")
  oExcel.Visible = true
End Sub

欠点は、別のマクロが呼び出された場合に、Excel アプリケーションが新しいタスクとして起動されることです (tak マネージャーを参照)。すべてのドキュメントは独自のタスクで開かれます。

正しい方法は、登録されたアプリケーションでドキュメントを起動するために API を使用することです。たとえば、http: //access.mvps.org/access/api/api0018.htm

または、1行の回避策、醜いですが、うまく機能します:

Shell "cmd.exe /c start D:\a\test.xlsx"

マクロを含むテンプレートの拡張子は、.xltx ではなく、.xltm でなければならないことに注意してください。

于 2013-06-05T07:31:46.753 に答える