

'*******************************************************************************
' Excelワークブックを開く処理@
'
' 作成者:井上治 URL:http://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'*******************************************************************************
Option Explicit
Const cnsBook = "TestBook1.xls"
Dim objExcelApp, strPath
' 本スクリプトファイルのフォルダ名の取得
With WScript
strPath = Replace(.ScriptFullName, .ScriptName, "")
End With
' Excelのオブジェクトの参照を取得
Set objExcelApp = CreateObject("Excel.Application")
' 指定のワークブックを開く(同一フォルダ)
' ⇒リンク非更新、読み取り専用としています。
objExcelApp.Workbooks.Open strPath & cnsBook, False, True
' Excelウィンドウを表示
objExcelApp.Visible = True
Set objExcelApp = Nothing
'*******************************************************************************
' Excelワークブックを開く処理A (Auto_Openマクロを起動させる)
'
' 作成者:井上治 URL:http://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'*******************************************************************************
Option Explicit
Const cnsBook = "TestBook2.xls"
Const xlAutoOpen = 1
Dim objExcelApp, objWbk, strPath
' 本スクリプトファイルのフォルダ名の取得
With WScript
strPath = Replace(.ScriptFullName, .ScriptName, "")
End With
' Excelのオブジェクトの参照を取得
Set objExcelApp = CreateObject("Excel.Application")
' 指定のワークブックを開く(同一フォルダ)
' ⇒リンク非更新、読み取り専用としています。
Set objWbk = objExcelApp.Workbooks.Open(strPath & cnsBook, False, True)
' Excelウィンドウを表示
objExcelApp.Visible = True
' 自動起動マクロ(Auto_Open)があれば実行
objWbk.RunAutoMacros xlAutoOpen
Set objWbk = Nothing
Set objExcelApp = Nothing
'*******************************************************************************
' Excelワークブックを開く処理B (指定のマクロを起動させる)
'
' 作成者:井上治 URL:http://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'*******************************************************************************
Option Explicit
Const cnsBook = "TestBook3.xls"
Const cnsMacro = "TEST1"
Dim objExcelApp, objWbk, strPath
' 本スクリプトファイルのフォルダ名の取得
With WScript
strPath = Replace(.ScriptFullName, .ScriptName, "")
End With
' Excelのオブジェクトの参照を取得
Set objExcelApp = CreateObject("Excel.Application")
' 自動起動マクロの抑止(イベント停止)
objExcelApp.EnableEvents = False
' 指定のワークブックを開く(同一フォルダ)
' ⇒リンク非更新、読み取り専用としています。
Set objWbk = objExcelApp.Workbooks.Open(strPath & cnsBook, False, True)
' Excelウィンドウを表示
objExcelApp.Visible = True
' 指定のマクロを実行
objExcelApp.Run "'" & objWbk.Name & "'!" & cnsMacro
' 指定ブックを閉じる
objWbk.Saved = True
objWbk.Close False
Set objWbk = Nothing
' イベント停止解除
objExcelApp.EnableEvents = True
' Excel終了
objExcelApp.Quit
Set objExcelApp = Nothing
Option Explicit
' ■Sleep
Public Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long)
' 指定マクロ
Public Sub TEST1()
' 起動メッセージ
MsgBox "指定のマクロが起動しました。", vbInformation
' 3秒停止
Sleep 3000
' 終了メッセージ
MsgBox "指定のマクロが終了しました。", vbInformation
End Sub
Option Explicit
' 読み取り専用で開かれたか確認
Private Sub Workbook_Open()
If ThisWorkbook.ReadOnly <> True Then
MsgBox "VBScript「TestWorkbookOpen3.vbs」から起動して下さい。"
ThisWorkbook.Saved = True
If Workbooks.Count <= 1 Then Application.Quit
ThisWorkbook.Close False
End If
End Sub