Excel VBA 質問スレッド №2078 (解決済)
指定した行範囲をループする方法
投稿者 : るふぃ 投稿日時 : 2025/02/08(Sat) 01:12:57 OS : 未指定 EXCEL : 未指定
下記画像のように、縦に日付が続くシートがあります。
この日付列の第1週だけをループするマクロを作りたいのですが、ご教授いただけないでしょうか?
イメージは、4行目~10行目ループした後step25し、35行目~41行目ループした後step25し.....最終行まで繰り返すです。
そもそも無理なことなのかもしれませんが、よろしくお願いします。
画像:https://ibb.co/s9VZQ1CX
作成マクロ:
下記画像のように、縦に日付が続くシートがあります。
この日付列の第1週だけをループするマクロを作りたいのですが、ご教授いただけないでしょうか?
イメージは、4行目~10行目ループした後step25し、35行目~41行目ループした後step25し.....最終行まで繰り返すです。
そもそも無理なことなのかもしれませんが、よろしくお願いします。
画像:https://ibb.co/s9VZQ1CX
作成マクロ:
Sub macro() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim count As Long Dim test As String test = "大阪" Set ws = ThisWorkbook.ActiveSheet lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row count = 0 For i = 1 To lastRow If ws.Cells(i, 2).Value = test Then count = count + 1 End If Next i ws.Cells(1, 3).Value = count End Sub
スポンサーリンク
[返信 1] Re : 指定した行範囲をループする方法
投稿者 : とおりすがり 投稿日時 : 2025/02/08(Sat) 04:59:16
Forステートメントのいろんな使い方を覚えましょう
Forステートメントのいろんな使い方を覚えましょう
Sub sample() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Step 31 For j = i To i + 6 Debug.Print j; Cells(j, "B") Next Next End Sub
[返信 2] Re : 指定した行範囲をループする方法
投稿者 : ピロリ 投稿日時 : 2025/02/08(Sat) 11:33:45
■[質問] るふぃさん(2025-02-08 01:12:57)の記事
> イメージは、4行目~10行目ループした後step25し、35行目~41行目ループした後step25し.....最終行まで繰り返す
1つのループで上のような考え方なら↓下のようにも記述できますが、[返信 1] とおりすがりさんの2重ループの方が
分かり易いコードですね。
■[質問] るふぃさん(2025-02-08 01:12:57)の記事
> イメージは、4行目~10行目ループした後step25し、35行目~41行目ループした後step25し.....最終行まで繰り返す
1つのループで上のような考え方なら↓下のようにも記述できますが、[返信 1] とおりすがりさんの2重ループの方が
分かり易いコードですね。
Sub macro() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim count As Long Dim test As String Dim d As Long 'これを追加 test = "大阪" Set ws = ThisWorkbook.ActiveSheet lastRow = ws.Cells(ws.Rows.count, "A").End(xlUp).Row count = 0 d = 1 'これを追加 For i = 4 To lastRow '4行目からループさせましょう If ws.Cells(i, 2).Value = test Then count = count + 1 End If If d = 7 Then 'ここから、 i = i + 24 d = 0 End If d = d + 1 'ここまで追加 Next i ws.Cells(1, 3).Value = count End Sub
[返信 3] Re : 指定した行範囲をループする方法
投稿者 : 通行人 投稿日時 : 2025/02/09(Sun) 14:40:21
CountIf関数を使って、こんな感じでも。
CountIf関数を使って、こんな感じでも。
Sub macro2() Dim ws As Worksheet Dim i As Long Dim count As Long Dim test As String test = "大阪" Set ws = ThisWorkbook.ActiveSheet count = 0 For i = 4 To ws.Cells(Rows.count, "A").End(xlUp).Row Step 31 count = count + WorksheetFunction.CountIf(ws.Cells(i, "B").Resize(7, 1), test) Next i ws.Cells(1, "C").Value = count End Sub
[返信 4] Re : 指定した行範囲をループする方法
投稿者 : るふぃ 投稿日時 : 2025/02/12(Wed) 12:12:51
とおりすがり様
ピロリ様
通行人様
おかげさまで解決いたしました。
ありがとうございます。
とおりすがり様
ピロリ様
通行人様
おかげさまで解決いたしました。
ありがとうございます。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-05 17:32:55 )