| 
    
     |  | ▼ハル さん、皆さん、こんにちは。 VB側で、
 set app =createobject("excel.application")
 with app
 .visible=true
 set bk=app.workbooks.open("D:\My Documents\callingtest.xls")
 '                  ↑オープンするExcelブック
 end with
 こんなコードでインスタンスを作成しているのですよね?
 
 だとしたら、
 
 app.run "callingtest.xls!module1.macro1"
 
 で呼び出せます。
 
 
 Macro1というプロシジャーが標準モジュールではなく、Thisworkbookにコピーされていれば、
 
 bk.macro1
 
 でOKです(私は、これはよく使います)。
 
 確認して下さい。
 
 
 >
 ><ThisWorkbook>
 >Public Sub Workbook_Open()
 >
 >  iFlg = 0
 >  strBakDat = "-1"
 >
 >  Sheets("Sheet1").Select
 >  Range("A1").Select
 >  Module1.Macro1
 >End Sub
 >Public iFlg As Integer
 >Public strBakDat As String * 16
 >
 >
 ><Module1のソース>
 >Public Sub Macro1()
 >'
 >' Macro1 Macro
 >' マクロ記録日 : 2004/10/26 ユーザー名 : ?????
 >'
 >
 >'
 >  Dim strDat As String * 16
 >
 >  'webクエリ更新
 >  Selection.QueryTable.Refresh BackgroundQuery:=False
 >
 >  strDat = Cells(2, 3).Value
 >
 >  '値が変わっていれば、テキストファイルに保存
 >  If strDat <> strBakDat Then
 >    strBakDat = strDat
 >    Open "d:\data1.csv" For Output As #1
 >    Write #1, strDat
 >    Close #1
 >  End If
 >End Sub
 >
 >
 >よろしくお願いします。
 
 |  |