- ベストアンサー
エクセルVBAで、ボタンの文字を変えたい
フォームツールバーから作ったボタン(コントロールツールバーのコマンドボタンではない)の文字列を変えるマクロはどのように書けば良いでしょうか? ActiveSheet.Shapes("古い名前").Caption = "新しい名前" など、いろいろやりましたがエラーになってしまいます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エクセルのバージョンによるかもしれないのでよろしく。 下記は、参考にしてください。 VBなどと、またコントロールツールボックスのそれと、フォームのコントロールは不統一で難しいところと思う。 ーー 私はいつも確かめながら手探りで Sub test02() MsgBox Worksheets("Sheet3").Shapes(1).Name End Sub を実行する。Nameは強力で、エラーはまず出ない。 Button 1(半角スペースに半角1と思うが)が判る。 ーー これを直接使わないで(半角やスペースの問題で) n = Worksheets("Sheet3").Shapes(1).Name のように文字列nに入れて ーー Sub test03() n = Worksheets("Sheet3").Shapes(1).Name Worksheets("Sheet3").Shapes(n).Select MsgBox Selection.Caption End Sub を実行して、現在のCaptionが出ることを確かめかめて (Captionも最近のVBなどで、Textなんかに変わったりしているので怖い) ーー Sub test04() n = Worksheets("Sheet3").Shapes(1).Name Worksheets("Sheet3").Shapes(n).Select Selection.Caption = "実行ボタン" End Sub で実行ボタンに変わったことを確かめた。 ただマクロの記録と違ったカタチでできた。 ーー 色を設定(質問には無いが) Sub test04() n = Worksheets("Sheet3").Shapes(1).Name Worksheets("Sheet3").Shapes(n).Select Selection.Caption = "実行ボタン" Selection.Font.ColorIndex = 5 End Sub これもマクロの記録と違うができた。 エクセルのフォームのコントロールのプロパティは、手に負えない。
その他の回答 (2)
- zap35
- ベストアンサー率44% (1383/3079)
新しいマクロの記録を用いて、シート上のボタンのテキストを変更すると下記のようなマクロが生成されます Sub Macro2() ActiveSheet.Shapes("Button 1").Select Selection.Characters.Text = "ボタン 3" End Sub 実際のシート上に何個のボタンがあって、どのようにされたいのか分かりませんが参考にはなると思います。 ボタンが複数あるなら例えば以下のようなマクロでもできます Sub Macro3() Dim idx As Integer For idx = 1 To ActiveSheet.Shapes.Count If Left(ActiveSheet.Shapes(idx).Name, 6) = "Button" Then ActiveSheet.Shapes(idx).Select Selection.Characters.Text = "Button " & idx End If Next End Sub
お礼
ありがとうございました。shapes()のインデックスが分からなかったのと、.Select Selection.を省きたかったのですが、そうは行かないようですね。
- venzou
- ベストアンサー率71% (311/435)
マクロの記録で調べられると思います。 ActiveSheet.Shapes("Shapeの名前").Select Selection.Characters.Text = "新しいテキスト" ↑文字だけ変えるならこんな感じ。
お礼
早速ありがとうございます。私もマクロの記録で作ってみましたが、 ActiveSheet.Shapes("Shapeの名前").Characters.Text = "新しいテキスト" というようにしたかったのですが、うまく行きませんでした。 選択した後で、選択を解除するしかないようですね。シートに保護をかけると、ボタンの選択もできなくなります。
お礼
詳しい説明ありがとうございました。マクロの記録などで確かめながらマクロを組んでいますが、同じように研究されている方が多いようで、安心しました。今回は、select selectionを省きたかったのですが、そうは行かなかったようです。