名前が表示させているコマンドボタンを1回押すと「出席」、もう1回押すと「欠席」、さらに1回押すと再び名前表示するようにコマンドボタンのキャプションを変更させたいと思ったことありませんか?
この場合、IFステートメントを3回繰り返して使用することで簡単にできるのでVBAコードをご紹介します。
クリック毎に表示名を変更する
コマンドボタンのキャプションが、もし「名前」だったらキャプションを「出席」に、そうではなく「出席」だったらキャプションを「欠席」に、さらに「欠席」だったら「名前」にするという文章になります。
これをそのままVBAコードで書くだけですが、コマンドボタンのプロパティ内のCapition名も最初に表示したい名前にする必要があります。
ここでは「とりっぷぼうる」とします。
キャプション名を直接記載する方法
コマンドボタンのキャプション名をVBAコード内に””で挟んで直接記載する方法です。
Private Sub CommandButton1_Click()
If CommandButton1.Caption = “とりっぷぼうる” Then
CommandButton1.Caption = “出席”
ElseIf CommandButton1.Caption = “出席” Then
CommandButton1.Caption = “欠席”
ElseIf CommandButton1.Caption = “欠席” Then
CommandButton1.Caption = “とりっぷぼうる”
End If
End Sub
- コマンドボタン1がクリックされたら
- もしコマンドボタン1のキャプションが「とりっぷぼうる」だったら
- キャプション名を「出席」にする
- そうではなく「出席」だったら
- キャプション名を「欠席」にする
- そうではなく「欠席」だったら
- キャプション名を「とりっぷぼうる」にする
- IFステートメント終了
- マクロ記録終了
これで、コマンドボタンをクリックするたびにキャプション名が順番に表示されます。
これで問題なく動作するのですが、メンバーが10人いたらコマンドボタンの数も10個必要なので、名前を10個用意して1個1個書くのも大変です。
さらにメンバーが変わるとVBAコードも書き直しもまた面倒なので、セルにリンクさせる方法をおススメします。
キャプション名をセルとリンクさせる方法
ここでは仮に10個のコマンドボタンが必要でも「出席」「欠席」は共通で、メンバーが変わる可能性があるという前提で、メンバーをセルの値にリンクさせます。
これにより、コマンドボタンのプロパティを最初に設定も不要になり、メンバー表のリストが変わると自動的に「メンバー名」キャプションが変更されるようにしますので、実用的ですよ。
メインバーの名前はセルA1に記載されているメンバーの名前を「とりっぷぼうる」の代わりに設定します。
Private Sub CommandButton1_Click()
If CommandButton1.Caption = Range(“A1”).Value Then
CommandButton1.Caption = “出席”
ElseIf CommandButton1.Caption = “出席” Then
CommandButton1.Caption = “欠席”
ElseIf CommandButton1.Caption = “欠席” Then
CommandButton1.Caption = Range(“A1”).Value
End If
End Sub
”とりっぷぼうる”と記載していたVBAコードの部分が、セル1A1を指定するように書き換えただけです。
もちろんシート名を指定していないので、セルA1に名前が書いてあるシート上でユーザーフォームが開くことを前提にしています。
応用として、Captionの次の行に文字色や背景色を指定するVBAコードを書き足せば、文字と同時に色も変更できますよ。
関連記事
-
コマンドボタン
VBAコマンドボタンにホームページURLを開く設定をする方法
ホームページのURLアドレスをユーザーフォームのコマンドボタンに登録して、クリックすると指定したホームページが別ウィンドウで開くようにしたいと思ったことありませ… -
コマンドボタン
コマンドボタンの表示文字(キャプション)を2行に改行表示する方法
エクセルで作業効率化の為に作ったオリジナルの入力フォーム(ユーザーフォーム)に配置したコマンドボタンの表示名を1行表示ではなく、改行して2行表示にしたいと思っ… -
コマンドボタン
コマンドボタンのキャプションを文字ではなく画像にする2つの方法
ユーザーフォームに配置したコマンドボタンに表示されるキャプションは「文字」なのですが、複数のボタンが並んでいる時は「文字」ではなく「画像」で表示させたいと思… -
コマンドボタン
コマンドボタンの色をクリックするたびに黒色と赤色を入れ替える方法
ユーザーフォームに配置したコマンドボタンの文字色を条件に応じて変更したいと思いませんか? Excel-VBAのForeColorプロパティとStaticステートメントを使うことで、コ… -
コマンドボタン
複数一括処理でコマンドボタンのキャプションをセルの値に書き換える方法
ユーザーフォームに複数配置したコマンドボタンの名前を1個ずつ書くのは意外と面倒なので、セルの値から自動的に取得して書き換えができたら便利だと思いませんか? エ… -
コマンドボタン
エクセルVBAコマンドボタンでON/OFF切替スイッチを作る方法
ワークシート上にある罫線やリボンなど7つの項目を表示したり非表示することができる切替ボタンがあったら便利だと思いませんか? 不要な項目をワンクリックで切り替え… -
コマンドボタン
コマンドボタンの文字を名前・出席・欠席と繰り返し変更する方法
名前が表示させているコマンドボタンを1回押すと「出席」、もう1回押すと「欠席」、さらに1回押すと再び名前表示するようにコマンドボタンのキャプションを変更させたい…
紅葉スポット
-
千葉県の本土寺で五重塔と真っ赤に染まったもみじのコラボが見られる
6月にはあじさいが綺麗に見られ、あじさい寺として千葉県以外の観光客が多く訪れる本土寺に行かれたことがあれば気づいたかもしれませんが、あじさいの頭上にはもみじの… -
伊香保温泉365段の石段の先に紅葉ライトアップされた河鹿橋絶景へ
石段と温泉街で古くから観光客が多く訪れる伊香保温泉には、群馬県の紅葉スポット人気1位・全国でもトップクラスの紅葉スポットがあります。 石段をゆっくりと登ってい… -
フリーパスで10月の茨城紅葉スポットへ
茨城県内の人気紅葉スポット 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺から… -
「乙女の湖」鎌北湖畔の湖面反射が美しい紅葉絶景へ東毛呂駅からバス
飯能市の北にある入間郡毛呂山町の山中にある鎌北湖は、毛呂山町ホームページによると昭和10年に完成した農業用貯水池として作られた人工湖で、周囲2㎞の小さな湖です。… -
茨城県大子町の永源寺へ常陸大子駅から徒歩圏内の紅葉スポットへ
【紅葉見頃】 茨城県の大子町に紅葉名所の「永源寺」があり、境内を埋め尽くすほどのもみじの木があることから「もみじ寺」と呼ばれています。 近くには名瀑で有名な… -
旧碓氷峠見晴台へバスで旧軽井沢駅から紅葉展望へ滞在時間20分
軽井沢と言えば長野県ですが、旧碓氷峠見晴台は長野県と群馬県の県境に位置するのですが、群馬県の観光スポットというよりは、長野県ですね。 ここ旧碓氷峠見晴台からは…