教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA フォーム&コントロール】コマンドボタンの表示/非表示を切り替える方法を教えて!

構文

構文は以下の通りです。

コマンドボタン名.Visible = True / False

コマンドボタンの表示/非表示を切り替えるためには、Visibleプロパティを使用します。表示する場合はTrueを、非表示とする場合はFalseを設定します。

使い方

具体的な使い方を紹介します。

Private Sub ToggleButton_Click()
    If UserForm1.CommandButton1.Visible = True Then
        UserForm1.CommandButton1.Visible = False ' 非表示にする
    Else
        UserForm1.CommandButton1.Visible = True ' 表示する
    End If
End Sub

この例では、別のコマンドボタンをクリックすると、対象となるコマンドボタンの表示/非表示が切り替わります。

プログラミング例

以下に、プログラミング例を紹介します。

Private Sub ShowTopStudentsButton_Click()
    ' 生徒の成績データが格納されているセル範囲を指定
    Dim gradeRange As Range
    Set gradeRange = Worksheets("成績データ").Range("B2:B20")
    ' 成績が90点以上の生徒がいるかどうかを確認
    Dim topStudentsExist As Boolean
    topStudentsExist = Application.WorksheetFunction.CountIf(gradeRange, ">=90") > 0
    ' 成績が90点以上の生徒がいる場合、コマンドボタンを表示する
    If topStudentsExist Then
        UserForm1.CommandButton1.Visible = True ' 表示する
    Else
        UserForm1.CommandButton1.Visible = False ' 非表示にする
    End If
End Sub

上記は、生徒の成績データを扱うフォーム上で、特定の条件を満たす生徒の成績を表示するコマンドボタンの表示/非表示を切り替えるケースの例です。この例では、ShowTopStudentsButtonがクリックされると、成績データが90点以上の生徒がいるかどうかを確認し、条件を満たす場合に特定のコマンドボタンを表示するようになっています。このように、実際の業務に即した条件を考え、それに基づいてコマンドボタンを制御することができます。

まとめ

業務や教育活動等において、具体的なニーズに合わせてコマンドボタンの表示/非表示を切り替えるプログラミングすることが重要です。是非活用してください。