• ベストアンサー

オプションボタンの名前を変更したい

Excel2007を使用しています。VBAでの質問です。 ユーザーフォームに、タブストリップを作成し、その中にラベルとオプションボタンを配置しました。 タブは4ページありますが、切り替わるごとにラベルとオプションボタンの表示が下の様に変わるようにしたいのです。 (1) Label1 の value → ワークシート"緑"のA列に入力されている文字 (2) OptionButton1 の caption → ワークシート"緑"のB列に入力されている文字 (1)のラベルは、ネットで調べわかりました。  Private Sub TabStrip1_Change()    Dim myindex As Integer    myindex = TabStrip1.Value    Label1.ControlSource = "緑!A" & myindex  end sub (2)でも、(1)と同じように ControlSource で変わると思いましたが、valueでしかできないようです。 オプションボタンでも同じように表示を変えたいのですが、どのようにすればいいでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hotosys
  • ベストアンサー率67% (97/143)
回答No.1

OptionButton1.Caption = Range("緑!B" & myindex) または OptionButton1.Caption = Sheets("緑").Range("B" & myindex) ではどうでしょうか? ところでTabStrip1.Valueは0から始まるので myindex = TabStrip1.Value + 1 にしないとTab1を選ぶとエラーになりませんか?

hadefu
質問者

お礼

回答ありがとうございます。 OptionButton1.Caption = Range("緑!B" & myindex) OptionButton1.Caption = Sheets("緑").Range("B" & myindex) こちら両方ともB列のセルが表示されました。 OptionButton1.Caption = Range("緑!B" & myindex) こちらの方を使わされていただきます。 大変助かりました。ありがとうございます。

hadefu
質問者

補足

> ところでTabStrip1.Valueは0から始まるので  myindex = TabStrip1.Value + 1  にしないとTab1を選ぶとエラーになりませんか? ご指摘どうり、 + 1 がないとエラーになりました。 参照させたいセルは、三行目からなので、+ 3を取り除けばいいと確認せずに質問してしまいました。 自分の確認不足と勉強不足でした。申し訳ありません。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

> ワークシート"緑"のB列に入力されている文字 B列には沢山のセルがあり、せる1つ1つが値をもっている。 オプションボタンは1つなのか複数なのわからない。 オプションボタンは複数のボタンを設け、その中から選ぶのだが 複数設けるのも質問者、それの各々のをCaptionを瀬とするのも1つ1つ質問者の責任です。一括して一発で複数のオプションボタンのCaptionを複数のセル(の順序を保ち)からセットは出来ないと思う。 コントロールごとに繰り回しをしないとならないと思う。 ーー オプションボタンのControlSourceは、TRUE,FALSEを反映するセルといった意味で、明細列挙型の(コンボなど)Rowsourceとは違う性格のもののようだ。

hadefu
質問者

お礼

回答ありがとうございます。 オプションボタンは3つ作り、タブを変えるごとにそれぞれ変わればいいなと思い質問いたしました。 > オプションボタンのControlSourceは、TRUE,FALSEを反映するセルといった意味 参照したいのになぜTRUE,FALSEが反映してしまうのかがわかりました。そうゆう意味なのですね。勉強になります。 ありがとうございました。