← コード一覧へ戻る
実務Excel・Windows連携

Windowsのメモ帳を起動する

Shell関数でWindowsのメモ帳を開き、返されたタスクIDを確認します。

実行前に確認

  • Shellはアプリの終了を待ちません。返されたIDだけで起動先の処理完了を判定しないでください。
  • 知らない実行ファイル、ダウンロードしたファイル、セルから受け取った未確認のコマンドへ置き換えないでください。
  • 公式仕様とコードを照合した例です。Excel実機での実行は未検証です。業務ブックではなくコピーで試してください。

1サンプルコード

Option Explicit
Sub PracticeAdvanced8012()
    Dim exePath As String, taskId As Double
    exePath = Environ$("SystemRoot") & "\System32\notepad.exe"
    If Len(Environ$("SystemRoot")) = 0 Or Dir$(exePath) = "" Then
        MsgBox "メモ帳が見つかりません。": Exit Sub
    End If
    On Error GoTo Failed
    taskId = Shell("""" & exePath & """", vbNormalFocus)
    Debug.Print "起動時のタスクID: "; taskId
    Exit Sub
Failed:
    MsgBox "起動できません: " & Err.Description
End Sub

図で見る操作の流れ

イメージ図

準備、実行する操作、確認する結果の順で示しています。

  1. 準備

    Windows版向けです。既存のメモ帳で編集中の内容があれば先に保存します。

  2. 操作

    Shell関数でWindowsのメモ帳を開き、返されたタスクIDを確認します。

  3. 結果

    メモ帳が開きます。練習が終わったらメモ帳を手動で閉じます。

Shellはアプリの終了を待ちません。返されたIDだけで起動先の処理完了を判定しないでください。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[標準モジュール]へ、この例だけを貼り付けます。

  2. 2

    Windows版向けです。既存のメモ帳で編集中の内容があれば先に保存します。

  3. 3

    PracticeAdvanced8012を実行します。タスクIDはVBEのCtrl+Gで確認できます。

  4. 4

    メモ帳が開きます。練習が終わったらメモ帳を手動で閉じます。

使っている機能の公式ドキュメント(Microsoft Learn)