Movatterモバイル変換


[0]ホーム

URL:


shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

トップ>VBA>【Excel VBA】フォームによる簡単ランチャーの作成事例

【Excel VBA】フォームによる簡単ランチャーの作成事例

Excel VBAで、フォームによる簡単ランチャーの作成事例です。

フォームを利用するメリットの一つに、フォームを開いたまま Excelのセル編集や他の作業が可能な「モードレス表示」がある点があります。

VBA業務の属人化を防止のため、できるだけシンプルな構成が望ましいです。レイアウトの自由度はないですが、次の「フォーム」ではなく「インプットボックス」やExcelのワークシート上にボタンを追加する方法で目的が達成できるなら、その方が良いと思います。

shikumika.org

内容:

動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2503)です。

アウトプットイメージ

「フォーム」で次のようなマクロの実行メニューを作成します。

Excelのセル編集中、常にメニューを表示し、マクロを選択して実行するため、「モードレス表示」のオプションを活用した事例です。

リストボックスと、実行、閉じるだけのフォームです

フォームでリストボックスを使った簡単ランチャー

作成手順

ステップ1: ユーザーフォームを作成

  1. 「開発タブ」 → 「VBAエディタを開く」(Alt + F11)
  2. 「挿入」 → 「ユーザーフォーム」 を選択
  3. フォーム上に以下のコンポーネントを追加
    - リストボックス (ListBox) → メニューとして利用
    - 実行ボタン (CommandButton) → 選択したマクロを起動

以下は、ユーザーフォームの作成イメージです。コンポーネントなどをクリックしたときのオブジェクト名はVBAのコードで利用するので確認しておきます。

この事例では、リストボックスを選択したとき、オブジェクト名は”ListBox1”となっています。

リストボックスと、実行、閉じるだけのフォームです

ユーザーフォームの作成イメージ

ステップ2: コードを記述

ユーザーフォームに以下のコードを追加します。

もし、前述のコンポーネントのオブジェクト名が違う場合は、修正します。

Private Sub UserForm_Initialize()    'リストボックスに選択肢を追加'    ListBox1.AddItem "マクロ1"    ListBox1.AddItem "マクロ2"    ListBox1.AddItem "マクロ3"End SubPrivate Sub CommandButton1_Click()    Select Case ListBox1.Value        Case "マクロ1"            Call マクロ1        Case "マクロ2"            Call マクロ2        Case "マクロ3"            Call マクロ3        Case Else            MsgBox "選択が無効です", vbExclamation    End SelectEnd SubSub マクロ1()    MsgBox "マクロ1を実行しました"End SubSub マクロ2()    MsgBox "マクロ2を実行しました"End SubSub マクロ3()    MsgBox "マクロ3を実行しました"End Sub
ユーザーフォームにコード追加の方法

ユーザーフォームにコード追加するには、フォームを右クリック、「コードの表示」をクリックします。

フォームを右クリック、「コードの表示」をクリックします

ユーザーフォームで「コードの表示」

以下は、上記でコード表示をした後、コードを記述イメージです。

上述のコードを記述しています

コードを記述イメージ

ステップ3: 標準モジュールに「フォーム表示」の追加

次のコードを標準モジュールに追加し、ユーザーフォームを表示します。

Sub ランチャーを起動()    UserForm1.Show vbModelessEnd Sub

「ランチャーを起動」のコードのみ記載されています

標準モジュールに「フォーム表示」の追加

補足説明

  • ステップ3で、「UserForm1.Show vbModeless」にある”vbModeless”によって「モードレス表示」が指定されています。
    ”vbModeless”を削除した場合、フォームは「モーダル表示」になり、フォームを閉じるまでExcelの操作が制限される仕様となります。
  • 実行は、標準モジュールにある「ランチャーを起動」を呼び出します。

 

以上、Excel VBAでフォームによる簡単ランチャーの作成事例でした。

検索
注目記事
にほんブログ村

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp