業務でExcelVBAを使う際、ユーザーからの確認や数値入力が必要な場面があります。
VBAのMsgBox関数はメッセージ表示と選択肢提示に、InputBox関数はユーザーからのデータ入力に利用できます。
この記事では、これら二つの機能の基本的な使い方から応用までを解説します。
ユーザーとの対話をスムーズにするVBAコードの書き方が理解できます。
【要点】VBAでユーザーと対話する基本
- MsgBox関数: メッセージを表示しユーザーからの選択肢を取得します。
- InputBox関数: ユーザーから文字列や数値の入力を促します。
- セキュリティ警告対処: マクロ有効ブックで保存しトラストセンター設定で安全に実行します。
ADVERTISEMENT
目次
VBAでユーザーと対話する基本機能の概要
VBAのMsgBox関数とInputBox関数は、プログラムの実行中にユーザーからの情報取得や確認を求めるための重要な機能です。
MsgBox関数はメッセージを表示し、OKやキャンセルなどのボタン選択を促します。これにより、処理の続行や中止をユーザーに判断してもらえます。
InputBox関数は小さな入力ボックスを表示し、ユーザーが文字や数値を入力できるようになります。この入力値を変数に格納し、後続の処理に利用できます。
これらの機能を使うには、開発タブからVBAエディターを開く必要があります。また、マクロを含むブックはファイル形式を「Excelマクロ有効ブック」として保存する点が前提です。
MsgBox関数でメッセージ表示と選択肢取得を行う手順
MsgBox関数はVBAでメッセージを表示し、ユーザーに情報や選択肢を提示するために使います。戻り値を利用してユーザーの選択を判定できます。
- VBAエディターを開く
AltキーとF11キーを同時に押してVBAエディターを起動します。 - 標準モジュールを挿入する
メニューバーの「挿入」から「標準モジュール」を選択します。新しいモジュールがプロジェクトエクスプローラーに表示されます。 - MsgBoxのコードを入力する
モジュールウィンドウに以下のコードを入力します。Sub SampleMsgBox()
Dim result As VbMsgBoxResult
result = MsgBox("処理を続行しますか?", vbYesNo + vbQuestion, "確認")
If result = vbYes Then
MsgBox "はいが選択されました。", vbInformation, "結果"
Else
MsgBox "いいえが選択されました。", vbInformation, "結果"
End If
End Sub - コードを実行する
VBAエディターのツールバーにある「実行」ボタン、またはF5キーを押してコードを実行します。メッセージボックスが表示されます。 - 結果を確認する
表示されたメッセージボックスで「はい」または「いいえ」を選択すると、その選択に応じた次のメッセージが表示されます。
InputBox関数でユーザーからデータ入力を受け付ける手順
InputBox関数はユーザーからの文字列や数値入力を受け付け、その値を変数に格納して後続の処理に活用します。
- VBAエディターを開く
AltキーとF11キーを同時に押してVBAエディターを起動します。 - 新しい標準モジュールを挿入する
既存のモジュールでも構いませんが、別の例として「挿入」から「標準モジュール」を選びます。 - InputBoxのコードを入力する
モジュールウィンドウに以下のコードを入力します。Sub SampleInputBox()
Dim userName As String
Dim userAge As Variant
userName = InputBox("お名前を入力してください。", "氏名入力", "名無し")
If userName <> "" Then
MsgBox "こんにちは、" & userName & "さん!", vbInformation, "挨拶"
Else
MsgBox "名前が入力されませんでした。", vbExclamation, "警告"
End If
userAge = InputBox("年齢を入力してください。", "年齢入力", 30)
If IsNumeric(userAge) And userAge <> "" Then
MsgBox "あなたの年齢は" & userAge & "歳ですね。", vbInformation, "年齢確認"
Else
MsgBox "有効な年齢が入力されませんでした。", vbExclamation, "警告"
End If
End Sub - コードを実行する
VBAエディターのツールバーにある「実行」ボタン、またはF5キーを押してコードを実行します。入力ボックスが表示されます。 - データ入力と確認
表示された入力ボックスに名前と年齢を入力し、OKボタンを押します。入力した値に応じたメッセージが表示されます。
ADVERTISEMENT
VBAのセキュリティ警告と対処方法
VBAを含むファイルを開く際、セキュリティ警告が表示されることがあります。これは悪意のあるマクロからPCを保護するためのExcelの機能です。
マクロが無効になる場合の対処
マクロを含むExcelブックは、ファイル形式を「Excelマクロ有効ブック (.xlsm)」として保存してください。通常の「Excelブック (.xlsx)」ではマクロが削除されます。
ブックを開く際に「セキュリティの警告 マクロが無効にされました。」と表示された場合、メッセージバーの「コンテンツの有効化」ボタンをクリックします。これにより、そのセッション中はマクロが実行可能になります。
常にマクロを有効にする設定
信頼できるソースからのマクロを頻繁に利用する場合、信頼できる場所を設定できます。
- オプションを開く
Excelの「ファイル」タブから「オプション」を選択します。 - トラストセンター設定へ進む
左側のメニューで「トラストセンター」を選び、「トラストセンターの設定」ボタンをクリックします。 - 信頼できる場所を追加する
左側のメニューで「信頼できる場所」を選び、「新しい場所の追加」ボタンをクリックします。 - パスを設定する
マクロを含むファイルを保存するフォルダのパスを入力し、「この場所のサブフォルダーも信頼する」にチェックを入れて「OK」をクリックします。 - 設定を保存する
すべてのダイアログで「OK」をクリックして設定を保存します。これにより、指定したフォルダ内のマクロは警告なしで実行されます。
この設定はセキュリティリスクを伴うため、信頼できるフォルダのみ指定してください。
VBA Projectがロックされる場合
まれにVBAプロジェクトがパスワード保護され、編集できない場合があります。これは意図的に保護されているか、ファイルが破損している可能性が考えられます。
保護されている場合は作成者に確認してください。ファイル破損の場合はバックアップからの復元を検討します。
MsgBox関数とInputBox関数の機能比較
| 項目 | MsgBox関数 | InputBox関数 |
|---|---|---|
| 主な用途 | メッセージ表示、処理の確認、選択肢の提示 | ユーザーからの値の入力 |
| ユーザーからの入力形式 | ボタン選択(OK、キャンセル、はい、いいえなど) | テキスト、数値、日付など、自由なテキスト入力 |
| 戻り値 | 選択されたボタンの値(定数) | 入力された文字列(キャンセル時は空文字) |
| カスタマイズ性 | 表示アイコン、ボタンの種類をVBA定数で指定可能 | 初期値の指定のみ可能 |
MsgBox関数とInputBox関数を使うことで、VBAコードにユーザーとの対話機能を組み込めます。
これにより、処理の確認や必要なデータの入力をユーザーに求める柔軟な自動化が可能になります。
マクロ有効ブックの適切な保存と、必要に応じたトラストセンター設定を行うことで、安全にこれらの機能を活用できます。
今日学んだMsgBoxとInputBoxを活用し、よりインタラクティブなExcel業務自動化を進めてください。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Outlook】「メール送信を5分遅らせる」設定!誤送信を防ぐ最強のディレイ機能
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
