HOME > VBA広場 > Excel VBA ビギナーズ > 第10回 [OK]ボタンで操作を切り替える 4/4

第10回 [OK]ボタンで操作を切り替える 4/4

第10回 [OK]ボタンで操作を切り替える| 1/4  2/4  3/4  4/4 

確認メッセージを表示する

[クリア]ボタンをクリックしたとき、「データをクリアしますか?」という確認メッセージを表示させてみましょう。 マクロ記録だけでは不可能なので、VBエディタを使用してコードを修正します。

  1. [ツール]メニューの[マクロ]から[マクロ]を選択し、[マクロ]ダイアログボックスを表示する。
    ▼ 図04-01 [マクロ]ダイアログボックスの表示
    図04-01 [マクロ]ダイアログボックスの表示

    【Excel2007の場合】

    Excel2007ではメニューバーではなく、リボンを使用します。[開発]タブが表示されている場合には、[マクロ]ボタンをクリックすると表示できます。

    ▼ 図04-02 Excel2007での[マクロ]ダイアログボックスの表示
    図04-02 Excel2007での[マクロ]ダイアログボックスの表示
  2. [マクロ名]ボックスから編集したいマクロ[ClearData]を選択する。
  3. [編集]ボタンをクリックし、VBエディタを起動する。
    ▼ 図04-03 [マクロ]ダイアログボックス
    図04-03 [マクロ]ダイアログボックス

VBエディタが起動しました。Subの後ろに続く記述がマクロ名です。

▼ 図04-04 Visual Basic Editor
図04-04 Visual Basic Editor
A 入力したマクロ名が表示される
B [マクロの記録]ダイアログボックスの[説明]ボックスに入力した内容が表示される
C 指定したセルを選択し、セルの内容をクリアする

今回は、処理の実行前に確認メッセージを表示するので、Cの前に処理を追加します。

確認メッセージにより処理を分岐する

「もし〜ならば〜する」という意味の「If 構文」を使用し、確認メッセージの中身がOKだったら、「指定した処理を実行しなさい」というコードを追加します。

  1. Cのコードの前に、「If MsgBox("データをクリアしますか?", vbOKCancel, "確認") = vbOK Then」と入力する。
  2. Cのコードの後に、「End If」と入力する。
    ▼ 図04-05 処理を分岐するコードを追加
    図04-05 処理を分岐するコードを追加

これでマクロの修正が終了しました。Excelの画面に戻り、実際に社名や品名、数量などを入力し、[クリア]ボタンをクリックしてみましょう。

▼ 図04-06 確認メッセージ
図04-06 確認メッセージ

上図のような確認メッセージが表示されましたか。表示されなかったり、エラーが出てしまった場合はコードをもう一度よく見直してください。 また、[OK]ボタンをクリックしたときと[キャンセル]ボタンをクリックしたときの動作の違いについても確認してみましょう。

いかがでしたか?今回はMsgbox関数とIf構文を使用し、よりアプリケーションの形に近いマクロを作ることに挑戦しました。前回のVBAビギナーズ講座(第9回)の4ページ目MsgBox関数の使用例 を参考に、今回のコードと組み合わせていろいろなメッセージボックスを表示してみましょう。

第10回 [OK]ボタンで操作を切り替える| 1/4  2/4  3/4  4/4