- 締切済み
チェックボックスの数をセルの数と連動させる方法
VBA初心者です。 特定のセルに表示される数を読み取り、表示するチェックボックスの数と連動させたいのですが、 どうしたらよいか分かりません。 ※現状は。。 チェックボックスは必ず1つは表示させるため、 チェックボックスを増やす方法はFor ~ NEXTを使い、コピー&ペーストで、できるのでは?と思っているのですが。。。 セルに表示される数だけ繰り返しをさせる方法が分かりません。。。。 もしアイディアがありましたら、何卒よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ap_2
- ベストアンサー率64% (70/109)
かなり初歩でひっかかっていますね・・・。フォーム制御は「記録」できない部分も多く、難しいですよ。。。 まずは、セルの値の使い方。 'セルの値分だけループするなら、 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を処理する方もまだだと思うので、ソチラを先に作ってみてほしいです。 色々悩むと思うので、必要に応じて補足つけてください。
お礼
ap2様 返答ありがとうございます。 チャレンジしてみます。