こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

セルの色によって条件文をつけることはできますか?2

以前質問させていただいた内容なのですが、
質問用にフォーマットを作って質問させていただきました。
質問の通りであれば、問題なく解決できたのですが、
本物のデータで少し違うだけで動作ができません。

お力頂けますでしょうか。よろしくお願いします。

Excelでの質問です。vista利用。

セルの色によって条件文(IF)をつけることはできますか?

やりたいのは、下図で説明しますと、
A15のセルに色付データが入ったらC15とE15のセルを掛け算し、
G15のセルに表示。
A16のように色無なら、Gは計算しない(表示しない)。



     A            C     E   G
15  色付セル        3     2   6
16  白セル(色無し)    5     4   
17  色付セル        2     6   12

A列には、別のデータシートからデータをコピーし貼り付けます。
全て数字が入っているのですが、数字は無視し、背景の色で判断します。

---------------------------------
以前は下記のフォーマットで質問しました。

A1のセルに色付が入ったらB1とC1のセルを掛け算し、
D1のセルに表示。(Dセルにif文)
A2のように色無なら、Dは計算しない(表示しない)。


     A           B     C   D
1  色付セル        3     2   6
2  白セル(色無し)    5     4   
3  色付セル        2     6   12

ここで、下記のVBAを教えていただきました。

Sub test() 'この行から
Dim i As Long
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1).Interior.ColorIndex <> xlNone Then
Cells(i, 4) = Cells(i, 2) * Cells(i, 3)
End If
Next i
End Sub 'この行まで
---------------------------------

これならできたのですが、今回のようにセルの行が途中だとどこを修正すれば
よいのか分かりません。
「1」の表示がある3か所をいじったのですがダメでした。
計算部分については
Cells(i, 4) = Cells(i, 2) * Cells(i, 3)
↓↓↓
Cells(i, 7) = Cells(i, 3) * Cells(i, 5)

前回の質問URL
http://oshiete1.watch.impress.co.jp/qa6855834.html

よろしくお願いします。

投稿日時 - 2011-07-25 18:06:47

QNo.6898821

困ってます

質問者が選んだベストアンサー

修正するのは『、For i = 1』の1の部分のみです。
1を15にすれば、15行目からはじめます。

各行にコメント入れます。
----------------------------
Sub test() ' 関数の定義
Dim i As Long ' 行数の変数(ここに条件を判断する行番号が入ります)
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row ' 1行目から、最終行(65536から上方向(xlUp)に空白でない行の位置)
If Cells(i, 1).Interior.ColorIndex <> xlNone Then ' X行のA列の色が無職以外の場合次の行を処理
Cells(i, 4) = Cells(i, 2) * Cells(i, 3) ' D列にB列×C列の結果を入れる
End If ' if の終り
Next i ' 次の行
End Sub ' 関数の終り
----------------------------
Cells(i, 1)はCells(行番号, 列番号)となります。
行はExcelに表示されているままの行番号
列はAを1、Bを2として指定します。

以上です。

投稿日時 - 2011-07-25 18:17:41

お礼

早々のご回答有難うございました。

そして一つ一つに丁寧に説明文をつけていただき感謝です。
できました!!(感動♪)
どうもありがとうございました。

投稿日時 - 2011-07-25 18:35:24

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問