• 締切済み

チェックボックスの数をセルの数と連動させる方法

VBA初心者です。 特定のセルに表示される数を読み取り、表示するチェックボックスの数と連動させたいのですが、 どうしたらよいか分かりません。 ※現状は。。 チェックボックスは必ず1つは表示させるため、 チェックボックスを増やす方法はFor ~ NEXTを使い、コピー&ペーストで、できるのでは?と思っているのですが。。。 セルに表示される数だけ繰り返しをさせる方法が分かりません。。。。 もしアイディアがありましたら、何卒よろしくお願いいたします。

みんなの回答

  • ap_2
  • ベストアンサー率64% (70/109)
回答No.1

かなり初歩でひっかかっていますね・・・。フォーム制御は「記録」できない部分も多く、難しいですよ。。。 まずは、セルの値の使い方。  'セルの値分だけループするなら、  For i = 1 to Range("A1").Value  '変数つかうなら  imax = Range("A1") 'Valueは省略可  For i = 1 to imax で、問題はチェックボックス・・・ 動的に追加することも可能ですが、配置や名前の指定、また削除も必要なので、かなり大変かと。できれば、あらかじめ複数用意しておいて、表示/非表示の操作をオススメしたいです。 また、チェックボックスは、コントロールツール(ActiveX)じゃなく、フォームの方をオススメします。セルと関連付ければ、セルにTrue/Falseが入るので、扱いやすいはず。 一応、チェックボックスの表示/非表示するサンプル  'まずは全部非表示に  for i = 1 to 10   ActiveSheet.Shapes("CheckBox" & i).Visible = False   ActiveSheet.Shapes("CheckBox" & i).OLEObject.Object.Value = xlOff 'かxlOn  next  'セルの値分を表示  For i = 1 to Range("A1")   ActiveSheet.Shapes("CheckBox" & i).Visible = True  next たぶんチェックボックスのOn/Offを処理する方もまだだと思うので、ソチラを先に作ってみてほしいです。 色々悩むと思うので、必要に応じて補足つけてください。

mayumimayumi
質問者

お礼

ap2様 返答ありがとうございます。 チャレンジしてみます。

関連するQ&A