Excel 関連のページです > Excelマクロの使い方 > はじめてのダイアログシート


はじめてのダイアログシート

このページでは、ダイアログシートを使ったマクロの作成手順をご紹介します。マクロの内容は、リストボックスで選択した項目をアクティブセルに入力するものです。


まず、Excelを起動して、新規ブックを作成します。

Sheet1のA1:A5にテストデータを入力します。


ダイアログシートを挿入します。


ダイアログシートが挿入されて、フォームツールバーが表示されました。


リストボックスを作成します。フォームツールバーでリストボックスのボタンをクリックしてから、フォーム上で配置したい位置をドラッグします。図形を作成する要領です。


リストボックスが作成されました。位置や大きさはマウス操作で変更できます。


リストボックスに表示する項目を設定します。リストボックスを選択して右クリックし、[オブジェクトの書式設定]を選択します。


入力範囲の項目に Sheet1!$A$1:$A$5 と入力して[OK]ボタンをクリックします。


リストボックスにワークシート上の項目が表示されました


次にダイアログボックスを表示するマクロを作成します。

モジュールシートを挿入します。


このページをご覧になっているブラウザ上で、以下のマクロをマウスで範囲選択してコピーし、モジュールシートに貼り付けしてください。

Sub MyFormShow()
    Dim Dialog1 As DialogSheet
    Dim ListBox1 As ListBox

    'オブジェクト変数の設定
    Set Dialog1 = ThisWorkbook.DialogSheets("Dialog1")
    Set ListBox1 = Dialog1.ListBoxes(1)

    'ダイアログボックスの表示
    If Dialog1.Show Then
        '確認ボタン(OKボタン)が押された場合の処理
        If ListBox1.ListIndex > 0 Then
            ActiveCell.Value = ListBox1.List(ListBox1.ListIndex)
        End If
    Else
        'キャンセルボタンが押された場合の処理
        MsgBox "キャンセルされました。", vbInformation
    End If
End Sub

これでとりあえずマクロは完成です。


それではマクロを実行してみましょう。

ワークシートを表示させ、適当なセルを選択して、マクロ実行のダイアログボックスを表示します。


MyFormShowマクロを選択して[開始]ボタンをクリックします。


ダイアログボックスが表示されます。リストボックスの項目を選択して[OK]ボタンをクリックします。


アクティブセルに選択項目が入力されました。


いかがでしたか? はじめの一歩は踏み出せたでしょうか。


このマクロの簡単な改良についてです。

ダイアログボックスのタイトルを変更する

ダイアログボックスを表示したときに、リストボックスにフォーカスが当たっているようにする

ショートカットキーでダイアログボックスを表示する

「キャンセルされました。」のメッセージを表示しないようにする