|
ご指導ありがとうござます。
本当に初歩的な質問で申し訳ありませんが、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から開きたいのでしょうか?
|
|