| 
    
     |  | ご指導ありがとうござます。 本当に初歩的な質問で申し訳ありませんが、WSH?VBS?の意味がよく理解できません。以下の記述をモジュールに書くのではなく、違うところで書くと言う意味でしょうか?もう一度ご指導いただければと思います。
 BOOK2を先に開く理由はBOOK1は集計表、BOOK2は部品表の役割でBOOK1の品名の単価をBOOK2からvlookup関数で拾っています。各ファイル10シートずつあり、BOOK2(参照元)を開いていないとBOOK1を開くのに異常に時間が掛かってしまいます。自分で使うファイルではなく、会社で使うファイルでシート数などを替えることができません。
 どうぞよろしくお願いします。
 
 ▼ちゃっぴ さん:
 >>Private Sub Workbook_Open()
 >>  Workbooks.Open ("D:\My Documents\book2.xls")
 >>End Sub
 >
 >これはBook1に書かれていますよね。
 >ですから、Book1が開かれた時点でBook2が開かれます。
 >したがって、この方法は使えません。
 >
 >対処方法としては、WSHでExcelBookを開くScriptを書き、
 >そいつを実行させるように運用を変更します。
 >
 >Const BOOK1_PATH = "Book1パス名"
 >Const BOOK2_PATH = "Book2パス名"
 >
 >Dim appExcel, wbkBook1, wbkBook2
 >
 >'Excel呼び出し
 >On Error Resume Next
 >Set appExcel = GetObject(, "Excel.Application")
 >On Error Goto 0
 >If Err Then
 >  Set appExcel = CreateObject("Excel.Application")
 >End If
 >
 >'Bookを開く
 >On Error Resume Next
 >Set wbkBook2 = appExcel.Workbooks.Open(BOOK2_PATH)
 >Set wbkBook1 = appExcel.Workbooks.Open(BOOK1_PATH)
 >On Error Goto 0
 >If wbkBook1 Is Noting Then
 >  MsgBox BOOK1_PATH & "が開けません"
 >End If
 >If wbkBook2 Is Noting Then
 >  MsgBox BOOK2_PATH & "が開けません"
 >End If
 >
 >こいつをテキストエディタで入力し、
 >拡張子VBSで保存して実行してみてください。
 >
 >ところでなぜ、Book2から開きたいのでしょうか?
 
 |  |