質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

356閲覧

VBAでfor文によるセルの指定についてなかなかうまくいかないのでご教授願いたい。

退会済みユーザー

退会済みユーザー

総合スコア0

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/04/22 07:20

IT業界1週間目の初心者です。わからないことがあるのでご質問します。
現在for文でセルを指定し、指定された範囲のみに処理をしたいのですがうまくいきません。

具体的にはセル範囲H3;J32に存在している値で偶数のみを赤色にしたい。

該当のソースコード

Sub As()
'変数の定義
Dim row as Integer, col as Integer 'ループで使う 行と列のIndexの変数

for row=3 to 32'3行目から32行目まで
for col=8 to 10 'H列からJ列まで
If (Range("H3:J32").cells(row,col).value Mod 2) = 0 Then
Range("H3:J32").cells(row,col).Font.ColorIndex = 3
End If
next col
next row
End Sub

疑問

上記のコードは昨日質問し、回答いただいたものです。for文でセルの範囲を指定していると解釈しているのですが、間違っているでしょうか。余裕があれば教えていただけるとうれしいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Range("H3:J32").cells(row,col) というのが間違ってますね。
これだと、H3:J32の範囲の左上を基準としてセルを指定することになります。
例えば、Range("H3:J32").cells(1,1) はH3セルになります。

単純に、cells(row,col) だけでいいです。

vba

1Sub Sample1() 2'変数の定義 3 Dim row As Integer, col As Integer 'ループで使う 行と列のIndexの変数 4 5 For row = 3 To 32 '3行目から32行目まで 6 For col = 8 To 10 'H列からJ列まで 7 If (Cells(row, col).Value Mod 2) = 0 Then 8 Cells(row, col).Font.ColorIndex = 3 9 End If 10 Next col 11 Next row 12End Sub

おまけ
For Each を使うと下記のようにシンプルに記述できます。

vba

1Sub Sample2() 2 Dim cl As Range 3 4 For Each cl In Range("H3:J32") 5 If (cl.Value Mod 2) = 0 Then 6 cl.Font.ColorIndex = 3 7 End If 8 Next 9End Sub

投稿2018/04/22 07:50

編集2018/04/22 08:00
hatena19

総合スコア33610

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/22 08:42

ありがとうございます。無事解決できました。 まだ分からないことを多々聞くことになると思いますが、いつか困っている人に回答できるレベルを目指して精進しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問