◆マクロを使うには
WordやExcelでマクロを使う場合のやり方です。
・Alt+F11を押すと、Visual Basicが立ち上がります。
・「ファイル」⇒「オプション」「リボンのユーザー設定」で「開発」のチェックを入れる方がいいでしょう。
・たとえば、開発タブの「挿入」「フォームコントロール」で「ボタン」を作ります。「新規作成」を押すと、Visual Basicの画面になるので、スクリプトを書きます。
・または、マクロを押して、行動を記録すると、自動でスクリプトを書いてくれます。
・ファイルの拡張子はxlsmにする

マクロの基本的な使い方は以下
https://udemy.benesse.co.jp/office-enhance/excel-macro.html

(1)まずはやってみよう
・たとえば、開発タブの「挿入」「フォームコントロール」で「ボタン」を作ります。「新規作成」を押すと、Visual Basicの画面になるので、スクリプトを書きます。

------
Sub ボタン1_Click()
    Shell "C:\Windows\Notepad.exe"
End Sub
--------

・上書き保存して完成。このとき、ファイルの拡張子はxlsmにする

とても簡単ですね。

(2)もう少し丁寧に書く
VBAの構文は、以下です。
Dim 変数 as データ型

①変数に入れてみる
Sub test()
 Dim i As Long
    i = Shell("C:\Windows\Notepad.exe")
End Sub

※test()としているが、クリック時に実行する場合は、以下でよい。
Sub ボタン1_Click()

②起動方法を変える。
最小化するのか、最大化するのか、前回の配置に置くのか。
以下にそれぞれの書き方がありますが、今回は、前回閉じた
状態にするためvbNormalFocusを指定
https://www.tipsfound.com/vba/05shell

Sub ボタン1_Click()
 Dim i As Long
    i = Shell("C:\Windows\Notepad.exe",vbNormalFocus)
End Sub

③iの変数って何か
なぜiを宣言するのか。先のように宣言しなくてもいいであるが、まずは、iに何が入っているかを確認しましょう。
以下を追加して、iの値を調べます。
 MsgBox "i=" & i

Sub ボタン1_Click()
    Dim i As Long
    i = Shell("C:\Windows\Notepad.exe", vbNormalFocus)
    MsgBox "i=" & i
End Sub
 
すると、13888と出たり、15400と出たり、毎回違う値が出ます。
ただ、失敗すると0になります。
iを0以外の場合、つまり成功した場合にはSuccess!と表示しましょう。
 
Sub ボタン2_Click()
    Dim i As Long
    i = Shell("C:\Windows\Notepad.exe", vbNormalFocus)
    If i <> 0 Then MsgBox "Success!"
End Sub

(3)セキュリティ警告
・マクロは危険です。利用者にとっても便利ですが、攻撃者にとっても便利。
・マクロの自動起動もできるし、一つのボタンで、複数の処理を走らせることも可能。攻撃者がいるとすると、利用者が目を引くような処理をさせておいて、裏で違うことをするなどもできそうだ。
・2003まではxlsで共通だったが、2007以降は、マクロ無しは拡張子がxlsx、有りはxlsm。
・また、ファイルを開くとセキュリティ警告が出る。「コンテンツの有効化」のボタンを押す。

(3)その他
①自動実行は以下
Sub AutoOpen()

End Sub

例としては、以下
Sub autoopen()

    Dim ret As Long
    ret = Shell("C:\WINDOWS\SYSTEM32\CALC.EXE")

End Sub


②コメントアウトは '
   ' Shell "Notepad.exe"