- ベストアンサー
エクセルのコマンドボタンの文字を
エクセルに貼り付けたコマンドボタンの文字を、visual basicでの変更でなく、気軽に変更できる方法ってないんでしょうか。 希望としては、指定しているセルの文字をそのままコマンドボタンの文字として変換できる方法があればbestなんですが。 我流なので、詳しく説明していただければうれしいです。 つたない文で分かりにくいかと思いますが、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 UserForm ならこう言った処理は Initialize でやるのが一般的かと思います。 Private Sub UserForm_Initialize() Dim ctr As Control, i As Integer i = 1 For Each ctr In Me.Controls If TypeName(ctr) = "CommandButton" Then ctr.Object.Caption = Worksheets(1).Cells(i, 1).Text i = i + 1 End If Next ctr End Sub
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >希望としては、指定しているセルの文字をそのままコマンドボタンの文字として変換できる方法があればbestなんですが。 このようにすれば出来ます。 まず、A1 に文字を入れておきます。 すでにあるフォームツールのボタンや、オートシェイプ(四角形)は、選択しておして、 そのまま、数式バーで、「=A1 」と入力します。 そうすれば、A1の文字が反映します。 ただし、「XL2000以下」では出来ません。 なお、オートシェイプも、マクロを登録することが出来ます。コマンドボタンと同様の働きを持ちます。
お礼
返信ありがとうございます。 数式バーで試してみましたが、コマンドボタンがなぜか消えてしまいました。せっかく教えていただきましたが、残念な事に使用するPCも古いものが多いので、簡単ではありますが、うまくいかない可能性が高いです。 説明不足で申し訳ありませんでした。 今後もよろしくお願いします。
- papayuka
- ベストアンサー率45% (1388/3066)
ワークシートに置いたコントロールツールボックスの CommandButton の事でしょうか? であれば設定用の CommandButton を作ってVBAで変更するとか、、、 例えばシートに CommandButton を4つ置き、CommandButton1 の Clickイベントを 下記のようにして セルA1~A3に適当な文字を打ちます。 CommandButton1をクリックすると他のボタンのキャプションが変わります。 Private Sub CommandButton1_Click() Dim ob As OLEObject i = 1 For Each ob In Me.OLEObjects If ob.ProgId = "Forms.CommandButton.1" Then If ob.Name <> "CommandButton1" Then ob.Object.Caption = Me.Cells(i, 1).Text i = i + 1 End If End If Next End Sub
補足
返答をどうもありがとうございます。 実際、コードを理解する事が難しいのですが、iの変数を入れ、試してみたらうまくいきました。どうもありがとうございました。 ご解答ついでに、失礼ながらさらに質問をしたいのですが、ユーザーフォームで作ったコマンドボタンの場合には、どのようにすればよいのでしょうか。解答いただいたコードを変えて、自分なりにやってみようとしたんですが、どうもうまくいきません。 申し訳ありませんが、ご解答いただければ大変ありがたいです。 どうか、よろしくお願いします。
お礼
解答をありがとうございます。 早速試してみました。 非常に簡単に変更して、正直、驚いております。 コードの内容を分析できるほどではないので、結果的にそのまま使わせていただきました。 大変助かりました。 ありがとうございました。 今後もどうか、よろしくお願いします。