名前が表示させているコマンドボタンを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コードを書き足せば、文字と同時に色も変更できますよ。
関連記事
-
コマンドボタン
複数一括処理でコマンドボタンのキャプションをセルの値に書き換える方法
ユーザーフォームに複数配置したコマンドボタンの名前を1個ずつ書くのは意外と面倒なので、セルの値から自動的に取得して書き換えができたら便利だと思いませんか? エ… -
コマンドボタン
エクセルVBAコマンドボタンでON/OFF切替スイッチを作る方法
ワークシート上にある罫線やリボンなど7つの項目を表示したり非表示することができる切替ボタンがあったら便利だと思いませんか? 不要な項目をワンクリックで切り替え… -
コマンドボタン
コマンドボタンの表示文字(キャプション)を2行に改行表示する方法
エクセルで作業効率化の為に作ったオリジナルの入力フォーム(ユーザーフォーム)に配置したコマンドボタンの表示名を1行表示ではなく、改行して2行表示にしたいと思っ… -
コマンドボタン
VBAコマンドボタンにホームページURLを開く設定をする方法
ホームページのURLアドレスをユーザーフォームのコマンドボタンに登録して、クリックすると指定したホームページが別ウィンドウで開くようにしたいと思ったことありませ… -
コマンドボタン
コマンドボタンの色をクリックするたびに黒色と赤色を入れ替える方法
ユーザーフォームに配置したコマンドボタンの文字色を条件に応じて変更したいと思いませんか? Excel-VBAのForeColorプロパティとStaticステートメントを使うことで、コ… -
コマンドボタン
コマンドボタンの文字を名前・出席・欠席と繰り返し変更する方法
名前が表示させているコマンドボタンを1回押すと「出席」、もう1回押すと「欠席」、さらに1回押すと再び名前表示するようにコマンドボタンのキャプションを変更させたい… -
コマンドボタン
コマンドボタンのキャプションを文字ではなく画像にする2つの方法
ユーザーフォームに配置したコマンドボタンに表示されるキャプションは「文字」なのですが、複数のボタンが並んでいる時は「文字」ではなく「画像」で表示させたいと思…
紅葉スポット
-
竜神大吊橋の紅葉まつりへ常陸太田駅から路線バスで紅葉絶景へ
竜神大吊橋バンジーや5月の1000匹の鯉のぼりでテレビで取り上げられることが多い竜神大吊橋ですが、実はこの周辺は竜神峡にはもみじなども多く紅葉も年々認知されてきて… -
埼玉県第1号のダム「有間ダム」によりできた名栗湖畔の鏡面紅葉へ
初!と付くものはやっぱり宣伝したい、そして四季折々の景色が見られる自然絶景スポットならばなおさらですよね。 埼玉県飯能市にある名栗湖へ飯能駅からバスで行くこと… -
フリーきっぷで行く12月が見頃の関東近郊の紅葉スポット
渋滞避けて電車とバスでお得なフリーパスや1日乗車券を使って、のんびり紅葉を見に行きませんか? 温暖化の影響で12月上旬でも関東南部では紅葉を見られる場所がまだま… -
中禅寺湖を上から見られる絶景ポイント半月山展望台へ滞在時間50分
【紅葉見頃】10月中旬~11月上旬 最近インターネットや雑誌などで日光を紹介する時によく見る機会がある、中禅寺湖を上から撮った写真の場所ってどこだろうって思いま… -
フリーパスで12月の茨城紅葉スポットへ
【茨城県内の人気紅葉スポット】 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺… -
白馬岩岳の絶景「三段紅葉」へ長野駅からバスで滞在時間140分
10月下旬ごろ~11月上旬になるとテレビなどでよく話題になる絶景のビューポイントで、北アルプスの山頂が雪化粧をして赤く色づいた山麓、そして山のふもとはまだ緑色が…