以下のような表があります。
(sheet1)
A列
不規則な数列(←一行目にタイトルが書き込まれています)
13 (←二行目から数字がランダムに書き込まれています)
18
44
36
22
14
27
21
32
35
44
12
(以下続く)
Case1[i行の値よりi+1行の値が大きく、i+1行の値よりi+2行目の値が大きい件数]
Case2[i行の値よりi+1行の値が大きく、i+1行の値よりi+2行目の値が大きく、i+2行の値よりi+3行目の値が大きい件数]
などの件数を、新たなシートに書き出したいのです。
上の例からすると、
(sheet2)
A列 B列(←B列に件数を書き込む)
Case1 3
Case2 1
のような感じです。
if文で作ってみたのですが、うまく処理してくれません。
どのようなVBAを書けばいいのでしょうか。
分かる方、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんばんは。
こんな感じです。
Sub count()
Dim st1 As Worksheet
Dim st2 As Worksheet
Set st1 = ActiveWorkbook.Sheets("Sheet1")
Set st2 = ActiveWorkbook.Sheets("Sheet2")
Dim maxRow As Long
maxRow = st1.Range("A65536").End(xlUp) '格納最大行数
Dim case1Cnt As Long
Dim Case2Cnt As Long
'先頭行から格納最大までチェックする
case1Cnt = 0
Case2Cnt = 0
Dim row As Long
For row = 1 To maxRow
'i行の値よりi+1行の値が大きく、i+1行の値よりi+2行目の値が大きい件数
If (row + 2) <= maxRow Then
If st1.Cells(row, 1) < st1.Cells(row + 1, 1) And _
st1.Cells(row + 1, 1) < st1.Cells(row + 2, 1) Then
case1Cnt = case1Cnt + 1
End If
End If
'i行の値よりi+1行の値が大きく、i+1行の値よりi+2行目の値が大きく、i+2行の値よりi+3行目の値が大きい件数
If (row + 3) <= maxRow Then
If st1.Cells(row, 1) < st1.Cells(row + 1, 1) And _
st1.Cells(row + 1, 1) < st1.Cells(row + 2, 1) And _
st1.Cells(row + 2, 1) < st1.Cells(row + 3, 1) Then
Case2Cnt = Case2Cnt + 1
End If
End If
Next row
'結果表示
st2.Cells(1, 1) = "CASE 1"
st2.Cells(1, 2) = case1Cnt
st2.Cells(2, 1) = "CASE 2"
st2.Cells(2, 2) = Case2Cnt
Set st1 = Nothing
Set st2 = Nothing
End Sub
一行目がタイトルになっているので、rowは2から始めると良いみたいです。
深夜にもかかわらず、素晴らしいプログラム、ありがとうございます!
助かります!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Java Java 南京錠 2 2023/02/04 11:46
- Visual Basic(VBA) VBA エクセル 条件の設定 1 2022/03/28 10:24
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
エクセルでエラーが出て困って...
-
納豆食べた後の尿の納豆臭は何故?
-
中出しをするとお腹が痛い・・・。
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
尿検査の前日は自慰控えたほう...
-
勃起する時って痛いんですか? ...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
小数点以下を繰り上げたものを...
-
これって喉仏ですか? 私は女性...
-
風俗店へ行く前のご飯
-
EXCELで条件付き書式で空白セル...
-
テスターで断線を調べる方法教...
-
精子が黄色?
-
麻疹風疹の抗体検査結果につい...
-
EXCELの条件付き書式で数式を空...
-
エクセルのラベルの値(文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
エクセルでエラーが出て困って...
-
中出しをするとお腹が痛い・・・。
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
EXCELで条件付き書式で空白セル...
-
勃起する時って痛いんですか? ...
-
納豆食べた後の尿の納豆臭は何故?
-
精子が黄色?
-
至急!尿検査前日にオナニーし...
-
小数点以下を繰り上げたものを...
-
これって喉仏ですか? 私は女性...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
舌の裏の痛みのないプツプツの...
-
甲状腺が腫れているが血液検査...
-
Excelで""で囲む方法
-
健否~書類の書き方~
-
リンク先のファイルを開かなく...
おすすめ情報