• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでオプションボタンの設定)

VBAでオプションボタンの設定

このQ&Aのポイント
  • ワークシート上にOLEオブジェクトのオプションボタンを配置し、LinkedCellやGroupName、Captionを設定する方法について教えてください。
  • 上記のコードでは、GroupNameとCaptionの設定でエラーが発生します。どのように修正すれば良いですか?
  • エクセル2003でオプションボタンの設定を行いたい場合、どのような方法がありますか?

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

opt.GroupName = "OptG" & i で、何がいけないのかわたしにはわかりませんが確かにエラーになりますね。 見よう見まねで以下のようにしてみました。 これでいかがでしょう? Sub test01()   Dim n As Long, i As Long   With ActiveSheet     For n = 1 To 2       For i = 1 To 3         Set opt = .OLEObjects.Add(ClassType:="Forms.OptionButton.1", _         Left:=.Cells(i, n).Left, Top:=.Cells(i, n).Top, Width:=50, Height:=18)         opt.LinkedCell = .Cells(i, n).Offset(, 4).Address         opt.Object.GroupName = "OptG" & i         opt.Object.Caption = IIf(n = 1, "Yes", "No")       Next i     Next n   End With End Sub

emaxemax
質問者

お礼

ありがとうございます。 以下のようにためしたら上手くいきました。 Sub test02() Dim n As Long, i As Long With ActiveSheet For n = 3 To 5 For i = 3 To 10 Set myRng = .Cells(i, n) Set opt = .OLEObjects.Add(ClassType:="Forms.OptionButton.1", _ Left:=myRng.Left + 2, Top:=myRng.Top + 2, Width:=myRng.Width * 0.8, Height:=myRng.Height * 0.9) opt.LinkedCell = myRng.Offset(, 4).Address opt.Object.Value = False opt.Object.GroupName = "OptG" & i opt.Object.Caption = Choose(n - 2, "Yes", "No", "N/A") Next i Next n End With End Sub

その他の回答 (1)

回答No.2

optはOLEObjectオブジェクトです。 ところが、CaptionもGroupNameもOLEObjectオブジェクトのプロパティになっていないので 当然エラーになります。 ではどうすればよいかというと、Excelのヘルプによると >OLEObject オブジェクトのプロパティとして表されない、コントロールのプロパティは >Object プロパティを使用して実際のコントロール オブジェクトを取得して設定する >ことができます。 だそうです。 以上

emaxemax
質問者

お礼

ありがとうございます。 >OLEObject オブジェクトのプロパティとして表されない、コントロールのプロパティは >Object プロパティを使用して実際のコントロール オブジェクトを取得して設定する そういう理屈なんですか・・・・。 難しいですねえ。

関連するQ&A