
マクロ降順のコードですが、その下「連続データの生成」のように まとめたいと思いますが、どうしてもできなくて、教え頂けませんか。
ActiveSheet.Range("A3:N28").Sort Key1:=Range("K3"), Order1:=xlDescending 'A
ActiveSheet.Range("A29:N68").Sort Key1:=Range("K3"), Order1:=xlDescending 'B
ActiveSheet.Range("A69:N108").Sort Key1:=Range("K3"), Order1:=xlDescending 'C
ActiveSheet.Range("A109:N148").Sort Key1:=Range("K3"), Order1:=xlDescending 'D
ActiveSheet.Range("A149:N188").Sort Key1:=Range("K3"), Order1:=xlDescending 'E
ActiveSheet.Range("A189:N228").Sort Key1:=Range("K3"), Order1:=xlDescending 'F
ActiveSheet.Range("A229:N268").Sort Key1:=Range("K3"), Order1:=xlDescending 'G
With ActiveSheet
'連続データの生成
With .Range("A3")
.Value = 1
.AutoFill Destination:=.Resize(26), Type:=xlFillSeries
End With
For i = 29 To 229 Step 40
With .Cells(i, "A")
.Value = 1
.AutoFill Destination:=.Resize(40), Type:=xlFillSeries
End With
No.2ベストアンサー
- 回答日時:
こんな感じ?
Sub test()
Dim iSize As Long
Dim iStart As Long
iSize = 26
iStart = 3
Do While iStart <= 229
With ActiveSheet.Cells(iStart, "A")
.Resize(iSize, 14).Sort Key1:=Range("K:K"), Order1:=xlDescending
.Value = 1
.AutoFill Destination:=.Resize(iSize), Type:=xlFillSeries
End With
iStart = iStart + iSize
iSize = 40
Loop
End Sub
できました。私の知識では、とても理解できない。コードです、もっと勉強しないといけないと感じています。誠に、ありがとうございました、助かりました。
No.1
- 回答日時:
こんにちは
他に規則があるのかないのかわかりませんが、ご提示の内容の行の間隔だけから判断すると、29行目以降の処理は40行分を単位とした処理を繰り返しているので、ご質問のような
For i = 29 To 229 Step 40
のループにそのまままとめることができるのではないでしょうか。
最初のグループはそのまま処理するか、無理やりまとめるなら、ちょっとトリッキーですが
For i = -11 To 229 Step 40
のようにしておいて、r<0の時だけスタートを3にするようにして、ループの中に入れてしまうか。
(後で、可読性が悪くなると思います。)
あるいは、対象とする行数を 26、40、40・・・となるように制御しておいて、3行目をスタート行として、次の処理対象は行数を加算しながら決めるようにする方法にしておくことでも可能だと思います。
(こちらの方がまだ、わかりやすいかと)
見た目の行数だけから勝手に規則性を想像していますが、何らかの規則の元となるルールがあるのなら、それを利用するのが一番良い方法だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでCOPYを繰り返すと、処理が...
-
EXCEL VBA マクロ 実行する度に...
-
月度は何て読みますか?
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
VBの質問#if 0 then ってどう...
-
メルカリのメルカードで買い物...
-
UMLでの例外処理
-
2重のDo~Loopは?
-
DoEventsがやはり分からない
-
【Excel】特定の文字を含むセル...
-
RPGプログラムの*HIVALについて
-
Loadイベント中にほかのイベン...
-
VB.NET Excelを読み込んでDataT...
-
インタラクティブの反対語は?
-
お家デートをしててハグを長い...
-
【ExcelVBA】外部データの更新...
-
Do~Loopした回数をカウントしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでCOPYを繰り返すと、処理が...
-
UMLでの例外処理
-
【Excel】特定の文字を含むセル...
-
VBAでループ内で使う変数名を可...
-
EXCEL VBA マクロ 実行する度に...
-
月度は何て読みますか?
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
お家デートをしててハグを長い...
-
インタラクティブの反対語は?
-
RPGプログラムの*HIVALについて
-
DoEventsがやはり分からない
-
銀行の窓口処理の件で知ってる...
-
VBの質問#if 0 then ってどう...
-
セックスレスの既婚女性は自慰...
-
VB.NET Excelを読み込んでDataT...
-
ボタンクリックイベント 重複...
-
FFTの結果ついて
おすすめ情報