- ベストアンサー
エクセルのマクロで繰り返し処理
当方マクロ初心者ですが下記のマクロをCheckBox0~CheckBox23についてコピーするセルを変化させながら繰り返し処理を行いたいのですが、簡単なループ処理で行えますか? 教えていただければ幸いです。 If CheckBox0.Value = True Then Worksheets("sheets1").Activate 行 = Worksheets("sheets1").Range("e7") 行 = 行 Worksheets("sheets1").Range("g7:t7").Copy Windows("Books1.xls").Activate Sheets("sheets1").Select Range(Cells(行, 15), Cells(行, 15)).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End If
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
23とおりの中の1つ、ないしは複数を選ばせる場合、こういう風に オブジェクトを選ばすのでなく、1つのオブジェクト(コントロール、リストボックスのような)でMultiSelectさせて、その選択された中身で処理選択が分かれるようにすべきではないですか。コントロールの配列化ができないVBAの場合はなおさら。 そして選択肢と処理のパターンや(要素、この場合、シート、行、列、セルなど。)処理は出来るだけ、テーブル化できないか工夫する) ーー 質問にはコメントもつけないコードを挙げて、読者・回答者に読み解かせるのではなく、処理したい内容の文章も添えるとか、質問者の心配りがほしい。 もっと質問の内容を抽象化できないのかな。 下記が、質問の主旨と離れておれば無視してください。 ーー コントロールの場合 ChekBox○○の○○(=数字)ガ連続していることをいいことに Private Sub UserForm_Click() For i = 1 To 3 Controls("CheckBox" & i).Value = False Next i End Sub のようなことが行われる。 UserFormのチェックボックスはよいが、WorkSheetのチェックボックスはうまく行かないようだ。 Googleで「VBA コントロール配列」で照会してみてください。
その他の回答 (1)
- n-jun
- ベストアンサー率33% (959/2873)
>CheckBox0~CheckBox23 において >コピーするセルを変化させながら繰り返し処理を行いたい とはどうゆうこと? CheckBox0~CheckBox23毎に範囲が違うのかなど、提示されたコードからは予測不可能に近いように感じますが。
お礼
質問が的を得ていなくてすいませんでした。 ご指摘ありがとうございました。
お礼
ありがとうございます。 早速、Googleで「VBA コントロール配列」を 見ました、参考になりました。