名前が表示させているコマンドボタンを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個ずつ書くのは意外と面倒なので、セルの値から自動的に取得して書き換えができたら便利だと思いませんか? エ… -
コマンドボタン
コマンドボタンの表示文字(キャプション)を2行に改行表示する方法
エクセルで作業効率化の為に作ったオリジナルの入力フォーム(ユーザーフォーム)に配置したコマンドボタンの表示名を1行表示ではなく、改行して2行表示にしたいと思っ… -
コマンドボタン
コマンドボタンの色をクリックするたびに黒色と赤色を入れ替える方法
ユーザーフォームに配置したコマンドボタンの文字色を条件に応じて変更したいと思いませんか? Excel-VBAのForeColorプロパティとStaticステートメントを使うことで、コ… -
コマンドボタン
コマンドボタンの文字を名前・出席・欠席と繰り返し変更する方法
名前が表示させているコマンドボタンを1回押すと「出席」、もう1回押すと「欠席」、さらに1回押すと再び名前表示するようにコマンドボタンのキャプションを変更させたい… -
コマンドボタン
エクセルVBAコマンドボタンでON/OFF切替スイッチを作る方法
ワークシート上にある罫線やリボンなど7つの項目を表示したり非表示することができる切替ボタンがあったら便利だと思いませんか? 不要な項目をワンクリックで切り替え… -
コマンドボタン
VBAコマンドボタンにホームページURLを開く設定をする方法
ホームページのURLアドレスをユーザーフォームのコマンドボタンに登録して、クリックすると指定したホームページが別ウィンドウで開くようにしたいと思ったことありませ… -
コマンドボタン
コマンドボタンのキャプションを文字ではなく画像にする2つの方法
ユーザーフォームに配置したコマンドボタンに表示されるキャプションは「文字」なのですが、複数のボタンが並んでいる時は「文字」ではなく「画像」で表示させたいと思…
紅葉スポット
-
開業90年を超えても現役の日光いろは坂にある明智平ロープウェイ
日光駅や日光東照宮がある市街地と奥日光を結ぶいろは坂の終盤にある位置する「明智平」は、トイレや売店があるドライブインと呼んだ方がいい所なのですが、日光エリア… -
成田山公園の紅葉へ新勝寺隣接の日本庭園を楽めて駅から徒歩圏内
成田と言えば成田空港と成田山新勝寺が有名で、旅行や初詣で訪れたことがあると思いますが、紅葉スポットになっていることは、地元の方以外はあまり知られていませんね… -
城峯公園で十月桜ともみじの紅葉のピンクと赤のコラボの絶景へ
群馬県との県境で標高500mにある高台に位置し、下久保ダム(神流湖)を眺めることができる城峯公園には、なんと晩秋から初冬にかけて開花し、別名十月桜とも呼ばれてい… -
栃木駅から大平山展望台へバスで陸の松島と言われる紅葉スポットへ
【紅葉見頃】11月中旬~11月下旬 太平山は蔵の街で有名な栃木市中心部にある県立自然公園で、山頂付近にある太平山展望台からの眺望は、関東平野が一望でき眼下の峰々… -
フリーきっぷで行く12月が見頃の関東近郊の紅葉スポット
渋滞避けて電車とバスでお得なフリーパスや1日乗車券を使って、のんびり紅葉を見に行きませんか? 温暖化の影響で12月上旬でも関東南部では紅葉を見られる場所がまだま… -
那須高原・温泉神社へバスで那須塩原駅からパワースポットへ
栃木県内はもちろん関東エリアでも人気紅葉スポットとして取り上げられている那須岳の紅葉が終わりを迎える頃に、麓の那須温泉街で紅葉が始まります。 日帰り温泉も古く…