ここから本文です

Excel マクロ Do While~Loopの構文に関する質問です。

pur********さん

2015/5/2115:12:28

Excel マクロ Do While~Loopの構文に関する質問です。

Sub Test()
Dim s_row As Long, col As Long
Dim total As Long, v As Long

s_row = Selection.Item(1).Row - 11
col = Selection.Item(1).Column
v = Selection.Value

total = 0
Do While (s_row >= 6)
If (Cells(s_row, col).Interior.ColorIndex = 4) And _
(Cells(s_row, col).Value = v) Then total = total + 1
s_row = s_row - 11
Loop

Range("B2").Value = total
End Sub
このマクロは作って頂いたものですが、動作を説明しますと、アクティブにしたセルと同じ数字が入力されていて、尚且つ、4で着色されたセルを検索して個数をカウントする内容です。
検索範囲は、任意で選んだアクティブにしたセルの直ぐ上のセルから、同列上で、上方向の最終行である、行6(データが入力されている最終行です)までです。
検索対象セルは、アクティブにしたセルの上から11個刻みの個所に存在するセルです。
質問なんですが、上記マクロは、Do While~Loopを使って、アクティブセルの上セルから11個刻みで最終行(行6)まで数百回以上検索しますが、Loopを最終行までではなく、11個刻みの検索を56回繰り返す、とマクロ構文を書き変えて頂けませんか。
それ以外の条件部分は何も変えなくても良いです。
半日以上費やしても、全く解りません。
よろしくお願い致します。
2010です。

Selection.Item,do while,Selection.Value,col As Long,セル,i As Long,v As Long

閲覧数:
118
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2015/5/2116:03:03

こんな感じですか?

Sub Test()
Dim s_row As Long, col As Long
Dim total As Long, v As Long, i As Long

s_row = Selection.Item(1).Row - 11
col = Selection.Item(1).Column
v = Selection.Value

total = 0
Do While (i < 56)
If (Cells(s_row, col).Interior.ColorIndex = 4) And _
(Cells(s_row, col).Value = v) Then total = total + 1
s_row = s_row - 11
i = i + 1
Loop

Range("B2").Value = total
End Sub

未実行のため、不具合ご容赦。

  • tra********さん

    2015/5/2116:14:40

    >最終行(行6)まで
    と言うのも残すのなら、

    Sub Test()
    Dim s_row As Long, col As Long
    Dim total As Long, v As Long, i As Long

    s_row = Selection.Item(1).Row - 11
    col = Selection.Item(1).Column
    v = Selection.Value

    total = 0
    Do While i < 56 And s_row >= 6
    If (Cells(s_row, col).Interior.ColorIndex = 4) And _
    (Cells(s_row, col).Value = v) Then total = total + 1
    s_row = s_row - 11
    i = i + 1
    Loop

    Range("B2").Value = total
    End Sub

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2015/5/21 16:54:40

自分が思った様に動く、完璧な回答を、いつも有難う御座います。
何回も回答頂いていますが、本当に感謝しています。
自分でも少しはなんとかしてみようと検索して、色々試してはみるんですが、殆どいつも無駄に時間を費やすだけで、どうしようもありません。
本当に有難う御座います。
いつか又宜しくお願い致します。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる