Excelトップへ
Excel基礎一覧へ

Excel基礎

2022年11月15日【ID:0】

【ex18】Excelを直接開かずにマクロ実行


以下2点について順番に解説してきます。




1.マクロ(VBA)を実行させるVBSファイルとは

そもそもVBSファイルとは何なのかについて解説します。
VBSファイルとはプログラミング言語「VBScript」で書かれたファイルのことで拡張子は「.vbs」になります。

このVBとは「Visual Basic」のことでMicrosoft社が開発したWindows上で動かすためのプログラミング言語になります。
そのVisual Basicをベースに作られたのが「VBScript」になります。

>解説を動画で見る

VBSファイルはメモ帳などで簡単に作成することができます。
メモ帳で書いた内容を保存すると通常は「.txt」で保存されますが、こちらを「.vbs」に変更すれば完成です。

例えば、下記のExcelファイルの「Set_Time」を実行する方法について解説します。

では、VBScriptで記述する内容を確認します。

Const FILE_NAME = "C:\Users\…\ファイル名.xlsm"
Const PROC_NAME = "Set_Time"
Dim app
Set app = CreateObject("Excel.Application")

With app
     'Excel非表示
     .Visible = False
     Dim wb
     Set wb = .Workbooks.Open(FILE_NAME)
     .Run wb.Name & "!" & PROC_NAME
     'アラートを消す
     .DisplayAlerts = False
     wb.Save
     wb.Close

End With

app.Quit

基本的な書き方はVBAと同じになります。


「Const FILE_NAME = “C:\Users\…\ファイル名.xlsm”」で対象のファイルを指定しています。
「Const PROC_NAME = “Set_Time”」で実行したいプロシージャ名を指定しています。
「Dim app」でappという変数を用意し、「Set app = CreateObject(“Excel.Application”)」でExcelを操作するためのオブジェクトを用意します。


次に変数appを使ってExcelを操作していきますが、app.Visibleやapp.Runなどとappを何度も書くのは大変なのとまとまりがないため、「With app」でappを省略できるようにしています。
WithからEnd Withの中で「.」から始まっているものがappが省略されているものになります。


「.Visible = False」でExcelを非表示にしています。
「Dim wb」でwbという変数を用意し、「Set wb = .Workbooks.Open(FILE_NAME)」でFILE_NAMEに設定したExcelファイルを開いてExcelファイルの情報をwbに設定しています。
「.Run wb.Name & “!” & PROC_NAME」でPROC_NAMEに設定したプロシージャを実行させています。
実行させるプロシージャは、「(Excelファイル名)!(プロシージャ名)」で指定します。


残りは閉じる操作になります。
「.DisplayAlerts = False」で「…を保存しますか?」の確認画面を非表示にしています。
「wb.Save」でExcelファイルを保存しています。保存する場合は、「…を保存しますか?」が表示されないため、上記の「.DisplayAlerts = False」を省略しても問題ありません。
「wb.Close」でExcelファイルを閉じています。

一連の流れが完了したため、「app.Quit」でExcelアプリを終了させて完了です。


こちらでVBSファイルとテスト用のExcelファイルを配布しています。




2.Excelファイルを時間になったら起動させる方法とは

今回は「タスクスケジューラ」を活用した方法について解説していきます。

こちらを活用することにより決まった時間にExcelファイルを立ち上げることができます。
また「1.マクロ(VBA)を実行させるVBSファイルとは」で解説したVBSファイルを設定することで決まった時間にマクロを実行させることもできます。

>解説を動画で見る

まずは、Windowsのスタートメニューにて「タスク スケジューラ」と検索し、アプリ「タスク スケジューラ」を開きます。

タスクスケジューラが立ち上がりましたら、「タスクの作成」より作成できます。
ただ、既存のタスクの中に追加で作成したものが混ざってしまうと管理がややこしくなってしまうので、新しいフォルダを用意していきます。
まずは「タスク スケジューラ ライブラリ」を選択します。

中央のモザイクがかかっている場所が「タスク スケジューラ ライブラリ」のフォルダ内にあるタスク一覧になります。
今回は新しいフォルダで作成していくので「新しいフォルダー…」を選択します。
→フォルダ名の入力画面が表示されましたら、好みの名前を設定します。
※こちらでは「TEST」という名前を設定しています。

フォルダ名の設定して「タスク スケジューラ ライブラリ」を展開すると作成したフォルダが見つかります。
作成したフォルダを選択して「タスクの作成」を選択します。

以下の画面が表示されましたら、好みの名前を設定します。
※他の諸々の設定については今回は割愛します。

次に「操作」を設定します。
ここで「新規」を選択し「Excelファイルを開く」という内容を設定します。
※VBSファイルの場合もここで設定します。

以下の画面で対象のファイルを選択し「OK」を選択します。

以下のように設定できましたら、「トリガー」を設定します。
※トリガーとは操作をするキッカケのようなものになります。

ここで「トリガー」を選択し「新規」を選択します。

ここでどのタイミングで実行するのかを設定します。
こちらでは「1回」のみ実行で指定した日時に実行する設定をしています。
設定できましたら「OK」で保存します。

これで設定が完了です。
後は時間になれば自動的に設定した内容が実行されます。

使い終わったタスクは、必要に応じて編集や削除するといいです。

パソコンで開く場合は、共有用のリンクコピーがあるのでご活用ください!


Excelで警告が表示される場合


是非、シェアお願いします!

  リンクコピー Twitter Facebook はてなブックマーク Pocket
Excelトップへ
Excel基礎一覧へ

- 関連記事 -



- メンバー限定 [一覧] -



- 他の記事 -




サイト累計閲覧数

777517

IT予備メンバーについて
アンケート
サイトの改善に
向けて

✨困ったとき✨ Excel
保護解除ツール


Excelトップへ
Excel基礎一覧へ