構文
構文は以下の通りです。
コマンドボタン名.Default = True
解説
コマンドボタンを既定ボタンにするには、DefaultプロパティをTrueに設定します。コマンドボタン名には対象となるボタンの名前を指定します。既定ボタンに指定すると、フォーム上でEnterキーを押すと自動的に反応します。
使い方
具体的な使い方について紹介します。
Private Sub UserForm_Activate()
' 既定ボタンを設定
CommandButton1.Default = True
End Sub
' 既定ボタンを設定
CommandButton1.Default = True
End Sub
上記は、フォームがアクティブになった時に既定ボタンを設定します。
プログラミング例
以下にプログラミング例を幾つか紹介します。これらの例は、UserForm上にテキストボックスやコマンドボタンを配置し、既定ボタンを設定して様々なアクションを実行する方法を示しています。ユーザーがテキストを入力して、その内容を取得したり、数値を加算したり、ファイルの保存を行ったりする簡単なシナリオです
(例1)テキストボックスに入力した内容を処理する例
Private Sub UserForm_Activate()
' 既定ボタンを設定
CommandButton1.Default = True
End Sub
Private Sub CommandButton1_Click()
' テキストボックスの内容を取得して処理
Dim userInput As String
userInput = TextBox1.Value
MsgBox "入力内容: " & userInput
End Sub
' 既定ボタンを設定
CommandButton1.Default = True
End Sub
Private Sub CommandButton1_Click()
' テキストボックスの内容を取得して処理
Dim userInput As String
userInput = TextBox1.Value
MsgBox "入力内容: " & userInput
End Sub
(例2)数値の加算を行う例
Private Sub UserForm_Activate()
' 既定ボタンを設定
CommandButton1.Default = True
End Sub
Private Sub CommandButton1_Click()
' テキストボックスの内容を数値として取得して加算処理
Dim num1 As Double
Dim num2 As Double
num1 = CDbl(TextBox1.Value)
num2 = CDbl(TextBox2.Value)
MsgBox "結果: " & num1 + num2
End Sub
' 既定ボタンを設定
CommandButton1.Default = True
End Sub
Private Sub CommandButton1_Click()
' テキストボックスの内容を数値として取得して加算処理
Dim num1 As Double
Dim num2 As Double
num1 = CDbl(TextBox1.Value)
num2 = CDbl(TextBox2.Value)
MsgBox "結果: " & num1 + num2
End Sub
(例3)ファイルの保存を行う例
Private Sub UserForm_Activate()
' 既定ボタンを設定
CommandButton1.Default = True
End Sub
Private Sub CommandButton1_Click()
' ファイル名を取得して保存処理
Dim fileName As String
fileName = Application.GetSaveAsFilename(InitialFileName:="新しいファイル.xlsx", _
FileFilter:="Excelファイル, *.xlsx")
If fileName <> "False" Then
' ファイル保存処理
' 例として新しいワークブックを作成して保存
Workbooks.Add
ActiveWorkbook.SaveAs fileName
ActiveWorkbook.Close
MsgBox "ファイルが保存されました。"
End If
End Sub
' 既定ボタンを設定
CommandButton1.Default = True
End Sub
Private Sub CommandButton1_Click()
' ファイル名を取得して保存処理
Dim fileName As String
fileName = Application.GetSaveAsFilename(InitialFileName:="新しいファイル.xlsx", _
FileFilter:="Excelファイル, *.xlsx")
If fileName <> "False" Then
' ファイル保存処理
' 例として新しいワークブックを作成して保存
Workbooks.Add
ActiveWorkbook.SaveAs fileName
ActiveWorkbook.Close
MsgBox "ファイルが保存されました。"
End If
End Sub
まとめ
コマンドボタンの既定ボタン(Default)について、フォーム上でEnterキーを押すと自動的に反応する機能について解説しました。コマンドボタンを既定ボタンに設定することで、ユーザーの操作を簡略化し、より使いやすいフォームを作成することができます。是非活用してください。