名前が表示させているコマンドボタンを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ステートメント終了
- マクロ記録終了
これで、コマンドボタンをクリックするたびにキャプション名が順番に表示されます。
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
これで問題なく動作するのですが、メンバーが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に名前が書いてあるシート上でユーザーフォームが開くことを前提にしています。
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
応用として、Captionの次の行に文字色や背景色を指定するVBAコードを書き足せば、文字と同時に色も変更できますよ。
関連記事
-
コマンドボタンの色をクリックするたびに黒色と赤色を入れ替える方法
ユーザーフォームに配置したコマンドボタンの文字色を条件に応じて変更したいと思いませんか? Excel-VBAのForeColorプロパティとStaticステートメントを使うことで、コ… -
VBAコマンドボタンにホームページURLを開く設定をする方法
ホームページのURLアドレスをユーザーフォームのコマンドボタンに登録して、クリックすると指定したホームページが別ウィンドウで開くようにしたいと思ったことありませ… -
コマンドボタンの文字を名前・出席・欠席と繰り返し変更する方法
名前が表示させているコマンドボタンを1回押すと「出席」、もう1回押すと「欠席」、さらに1回押すと再び名前表示するようにコマンドボタンのキャプションを変更させたい… -
複数一括処理でコマンドボタンのキャプションをセルの値に書き換える方法
ユーザーフォームに複数配置したコマンドボタンの名前を1個ずつ書くのは意外と面倒なので、セルの値から自動的に取得して書き換えができたら便利だと思いませんか? エ… -
コマンドボタンのキャプションを文字ではなく画像にする2つの方法
ユーザーフォームに配置したコマンドボタンに表示されるキャプションは「文字」なのですが、複数のボタンが並んでいる時は「文字」ではなく「画像」で表示させたいと思… -
コマンドボタンの表示文字(キャプション)を2行に改行表示する方法
エクセルで作業効率化の為に作ったオリジナルの入力フォーム(ユーザーフォーム)に配置したコマンドボタンの表示名を1行表示ではなく、改行して2行表示にしたいと思っ… -
エクセルVBAコマンドボタンでON/OFF切替スイッチを作る方法
ワークシート上にある罫線やリボンなど7つの項目を表示したり非表示することができる切替ボタンがあったら便利だと思いませんか? 不要な項目をワンクリックで切り替え…
紅葉スポット
-
日光東照宮へバスで日光駅から世界遺産の紅葉へ滞在時間5時間
【紅葉見頃】10月下旬~11月上旬 2017年に約半世紀ぶりの大修理を終え、1999年に世界遺産に登録されている、日光東照宮・日光山輪王寺・日光二荒山神社等の建造物群と… -
日光穴場!中禅寺湖展望台へ紅葉の中禅寺湖からバスで滞在時間30分
【紅葉見頃】10月中旬~11月上旬 紅葉の見頃となる10月中旬~11月上旬になると、いろは坂から延々華厳の滝や竜頭の滝までとにかく大渋滞して混雑が当たり前ですが、い… -
千葉県の本土寺で五重塔と真っ赤に染まったもみじのコラボが見られる
6月にはあじさいが綺麗に見られ、あじさい寺として千葉県以外の観光客が多く訪れる本土寺に行かれたことがあれば気づいたかもしれませんが、あじさいの頭上にはもみじの… -
日光自然博物館へバスで日光駅から紅葉景色へ滞在時間50分
【紅葉見頃】10月中旬~11月下旬 中禅寺湖から竜頭の滝や戦場ヶ原方面と反対方向に行くと、中禅寺湖を一望できる半月山展望台と中禅寺湖展望台があり、その途中の中禅… -
土合駅から谷川岳ロープウェイで天神平スキー場からの天空紅葉絶景へ
谷川岳ロープウェイに乗って谷川岳天神平スキー場として冬は多くのスキーヤーに楽しまれていますが、夏は避暑地スポットとして気温22℃の涼しさを体感でき、さらに秋は一… -
榛名山からの景色や榛名湖の湖面に反射する紅葉したもみじへ
榛名山の麓の榛名湖は火山の噴火でできたカルデラ湖で周囲の榛名公園には、もみじが植えられていて秋になると真っ赤に染まります。 そして榛名山も夏の緑から紅葉の時期…