• ベストアンサー

ExcelVBAでフォームへのチェックボックス作成方法

OS:Windows XP Home 2002 App:Excel2003 同じブックの別シートから値(数値)を取得してその数だけフォームにチェックボックスを作る方法を教えてください。 フォームを表示(.show)する前に必要な数だけのチェックボックスを配置したいのです。 初めての投稿なので、 失礼があるかもしれませんが、よろしくお願いいたします。

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

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

Excel2000で試したので2003で出来るかわかりませんが、チェックボックスを動的に追加するサンプルです。 この例は、UserForm1にチェックボックス(MyCheckBox1~5)を追加します。 Dim chkbox As MSForms.CheckBox For i = 1 To 5 Set chkbox = UserForm1.Controls.Add("Forms.CheckBox.1", "MyCheckBox" & i) ' 追加されたチェックボックスが返ってきます chkbox.Caption = "Check Box " & i ' チェックボックスのキャプションを設定 chkbox.Top = i * 20 ' 適当に位置をずらします Next i 追加したチェックボックスがチェックされているかどうかは以下の様に調べられます。(MyCheckBox1を調べます) UserForm1.Controls("MyCheckBox1").Value

miekko67
質問者

お礼

エクセル2003でも出来ました♪ 大変お世話になり、ありがとうございました。m(__)m

その他の回答 (1)

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

>同じブックの別シートから値(数値)を取得してその数だけフォームにチェックボックスを作る方法を教えてください 回答: ユーザーフォームにコントロールを追加するには、[ツールボックス] の [コントロール] タブから追加するコントロールをフォームにドラッグして配置し、次にコントロールの輪郭が目的のサイズになるまで調整ハンドルをドラッグして調整します。となっていますので、  質問の内容は、出来ません。 但し、事前にコントロール(チェックボックス)を沢山作っておいて あるセルの値を読み込んで、その値に応じた数だけ チェックボックスを見えるようにすることは、出来ます。 例: CheckBox1.Visible = True 'CheckBox1は、見える CheckBox2.Visible = True CheckBox3.Visible = False 'CheckBox3は、見えない 実際のコードは、ご自分で考えてください。

関連するQ&A