重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Sub 上のセルの値のコピーを繰り返す()

一行上の値をコピーして背景色をつける
If Cells(i, j).Row Mod 2 = 1 Then
Cells(i, j).Interior.ColorIndex = 5 左の部分が動作いたしません。
記述は間違っているのでしょうか
本をみながら考えてやっていますが

Dim i As Long
For i = 2 To 235
For j = 8 To 10
If Cells(i, j).Value = "" Then
Cells(i, j).Value = Cells(i - 1, j).Value

If Cells(i, j).Row Mod 2 = 1 Then

Cells(i, j).Interior.ColorIndex = 5 左の部分が動作いたしません。
End If
End If
Next
Next
End Sub

A 回答 (2件)

書かれているとおりに動作しますよ。


①の部分でセルが空白でないと問題の文は実行されないようになっていますが
セルに何かデータが入っているということはありませんか?


  For i = 2 To 7
    For j = 8 To 10
      If Cells(i, j).Value = "" Then ' ①
        Cells(i, j).Value = Cells(i - 1, j).Value
        If i Mod 2 = 1 Then ' ②
          Cells(i, j).Interior.ColorIndex = 5
        End If
      End If
    Next
  Next

※②の場所、Cells(i, j).Row は i と同義なので書き換えました
※テスト用に範囲を狭めました
    • good
    • 0

こんばんは。



>記述は間違っているのでしょうか
マクロのコーディングの問題ではないので、後はどのような文脈で動かそうとしているのか、それが分からない限りは、こちらでは分かりません。

ご自身で調べるためには、別途、デバッグ方法を書きましたが、ステップイン(F8)で、1行ずつ確認しながら進めて調べてみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!