excel-vba-basic-function-inout

目次

8-5)ダイアログボックスを表示する関数

8-5-1)メッセージボックス

基本構文

 [戻り値] = MsgBox(メッセージ, , [タイトル], _ 
[ヘルプ], [ヘルプコンテキスト])

基本構文

戻り値】= MsgBox(prompt, [buttons], [title], [helpfile], [context])

パラメータ

prompt: 表示するメッセージを指定します。これは必須のパラメータです。
buttons: メッセージボックスに表示するボタンとアイコンを指定します。       省略可能で、デフォルトは vbOKOnly です。
title: メッセージボックスのタイトルバーに表示するタイトルを指定します。省略可能です。
helpfile: ヘルプファイルの名前を指定します。省略可能です。
context: ヘルプコンテキスト番号を指定します。省略可能です。

ボタンオプション(buttons の値)

  • •vbOKOnly (0): OK ボタン
  • •vbOKCancel (1): OK と キャンセル ボタン
  • •vbAbortRetryIgnore (2): 中止、再試行、無視 ボタン
  • •vbYesNoCancel (3): はい、いいえ、キャンセル ボタン
  • •vbYesNo (4): はい、いいえ ボタン
  • •vbRetryCancel (5): 再試行、キャンセル ボタン

アイコンオプション

  • •vbCritical (16): エラーメッセージアイコン
  • •vbQuestion (32): 質問アイコン
  • •vbExclamation (48): 警告アイコン
  • •vbInformation (64): 情報アイコン

戻り値(ユーザーの選択に基づく)

  • •vbOK (1): OK が選択された
  • •vbCancel (2): キャンセル が選択された
  • •vbAbort (3): 中止 が選択された
  • •vbRetry (4): 再試行 が選択された
  • •vbIgnore (5): 無視 が選択された
  • •vbYes (6): はい が選択された vbNo (7): いいえ が選択された
Sub ShowMessageBox()
    MsgBox "Hello, World!"
End Sub

戻り値の処理

Sub ShowMessageBoxWithReturnValue()
 'ボタンを検出する戻り値
    Dim result As Integer
    
    result = MsgBox("続行しますか?", vbYesNo + vbQuestion, "確認")
    
    If result = vbYes Then
        Range("D12").Value = "「はい」 を選択しました。"
    Else
        Range("D12").Value = "「いいえ」 を選択しました。"
    End If
End Sub

8-5-2)インプットボックス

入力ボックスは、ユーザーかInputBox: 入力ボックスを表示します。らテキスト入力を受け取るためのダイアログボックスです。

基本構文

InputBox(prompt, [title], [default], [xpos], [ypos], [helpfile], [context])

prompt (必須):ダイアログボックスに表示されるメッセージ文字列を指定します。
title (省略可能):ダイアログボックスのタイトルバーに表示される文字列を指定します。 省略すると、アプリケーション名が使用されます。
default (省略可能):テキストボックスに表示されるデフォルトの文字列を指定します。 省略すると、空の文字列になります。
xpos (省略可能):ダイアログボックスの左端からの水平位置を指定します。
省略すると、画面中央に表示されます。
ypos (省略可能):ダイアログボックスの上端からの垂直位置を指定します。
省略すると、画面中央に表示されます。
helpfile (省略可能):ヘルプファイルのパスを指定します。
省略すると、ヘルプボタンは表示されません。
context (省略可能):ヘルプコンテキスト番号を指定します。
helpfile が指定されている場合にのみ有効です。

基本的な使い方

Sub ExampleInputBox()
 Dim userInput As String

    userInput = InputBox("名前を入力してください:", "ユーザー入力")
    
    If userInput <> "" Then
        Range("H4").Value = userInput
    Else
        Range("H4").Value = "名前が入力されませんでした。"
    End If
End Sub
よかったらシェアしてね!
目次