'***************************************************************************************************
' Excelワークブックを開く処理① TestWorkbookOpen1.vbs
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
Option Explicit
Const cnsBook = "TestBook1.xlsx"
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
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' Excelワークブックを開く処理② (Auto_Openマクロを起動させる) TestWorkbookOpen2.vbs
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
Option Explicit
Const cnsBook = "TestBook2.xlsm"
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
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' Excelワークブックを開く処理③ (指定のマクロを起動させる) TestWorkbookOpen3.vbs
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
Option Explicit
Const cnsBook = "TestBook3.xlsm"
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
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' 「マクロ有効」で開かせるサンプル(VBA側) Module1(Module)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'07/01/01(1.00)新規作成
'20/03/03(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'===================================================================================================
#If VBA7 Then
' ■スリープ(API)
Private Declare PtrSafe Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long)
#Else
' ■スリープ(API)
Private Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long)
#End If
'***************************************************************************************************
' ■■■ モジュール側マクロ ■■■
'***************************************************************************************************
'* 処理名 :Auto_Open
'* 機能 :VBS側からの起動指定マクロ
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2007年01月01日
'* 作成者 :井上 治
'* 更新日 :2020年03月03日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Public Sub TEST1()
'-----------------------------------------------------------------------------------------------
' 起動メッセージ
MsgBox "指定のマクロが起動しました。", vbInformation
' 3秒停止
Sleep 3000
' 終了メッセージ
MsgBox "指定のマクロが終了しました。", vbInformation
End Sub
'----------------------------------------<< End of Source >>----------------------------------------
'***************************************************************************************************
' 「マクロ有効」で開かせるサンプル(VBA側) ThisWorkbook(Class)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'07/01/01(1.00)新規作成
'20/03/03(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
' ■■■ ワークブックイベント ■■■
'***************************************************************************************************
'* 処理名 :Workbook_Open
'* 機能 :自動起動マクロ
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数 :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2007年01月01日
'* 作成者 :井上 治
'* 更新日 :2020年03月03日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub Workbook_Open()
'-----------------------------------------------------------------------------------------------
' 読み取り専用で開かれたか確認(読み取り専用でなければ単独起動と判断)
If Not ThisWorkbook.ReadOnly Then
MsgBox "VBScript「TestWorkbookOpen3.vbs」から起動して下さい。"
ThisWorkbook.Saved = True
If Workbooks.Count <= 1 Then Application.Quit
ThisWorkbook.Close False
End If
End Sub
'----------------------------------------<< End of Source >>----------------------------------------