複数一括処理でコマンドボタンのキャプションをセルの値に書き換える方法

エクセル検索
HOMEUserForm印刷画面ファイル図形
日付・時刻データセル関数VBA関数

ユーザーフォームに複数配置したコマンドボタンの名前を1個ずつ書くのは意外と面倒なので、セルの値から自動的に取得して書き換えができたら便利だと思いませんか?

エクセルVBAの繰り返し処理For~Nextを使うと簡単に書き換え処理ができるので時短にもつながるのでご紹介します。

セルA1~A40の値➡コマンドボタン1~40に表示

ここでご紹介する例としては、ユーザーフォーム配置した40個のコマンドボタンは、クリックすると指定したシートのセル番地へジャンプするようにしています。

コマンドボタン40個
コマンドボタン40個

上の図のようにコマンドボタンを配置しただけなので、当然ながら表示名(キャプション)はCommandButton1~40になっていますので、どのボタンを押したらどこへジャンプするか分からない状態になっています。

この表示名を1個ずつ書くのは面倒なので、セルの値を自動的に取得してからユーザーフォームを表示するようにVBAコードを書くと、常にセルの値に連動するので便利ですよ。

ここではセルA1~A40に記載されている値を、コマンドボタン1~40に記載してからユーザーフォームを開くVBAコードをご紹介します。

VBAコード

Private Sub UserForm_Initialize()
For i = 1 To 40
With UserForm1.Controls(“CommandButton” & i)
.Caption = Cells(i, 1)
End With
Next i
End Sub

解説
  1. ユーザーフォームが表示する直前に実行する
  2. 繰り返し処理の変数「i」を宣言し、1~40まで行う
  3. ユーザーフォーム1のコマンドボタン「i」の
  4. キャプション名をセルi,1(セルA1)から順に取得する
  5. Withステートメント終了
  6. 繰り返し処理する
  7. マクロ記録終了

これでコマンドボタン40個の名前がフォームが開くと同時に自動的に取得して表示されるようになります。

波乗りアヒル

参考までに、セルA2からセルA41にしたい場合は(i+1,1)とするだけでなので、開始行数を変えることもできますよ。

関連記事

どこかにビューーン
ちょっとの工夫で往復無料の時代が来た!!

新着ページ

よく見られているページ

大容量無料ファイル転送サービス【ACデータ】 無料イラスト【イラストAC】

紅葉スポット

2024年5月11日からマイルと楽天ポイントとの相互交換提携開始!

交換レート0.5:1なので半分になってしまいますが、使い方次第で実質3倍の価値まで引き上げられる方法です。