アプリ版:「スタンプのみでお礼する」機能のリリースについて

再度質問で恐縮です。

各曜日と週の平均を比較して平均値以下なら数値を赤にしようとしたところ
Font.Color = RGB(255, 0, 0) にエラーが出ました。
単純な問題なのだと思いますが色々変更してみたのですが、その度に違うエラーで止まります。

比較したい値は5行目の3~9列目にあり、同様の比較を別の行でも行います。

     月  火 水 木 金 土 日 平均
...
...
販売数  25  30 50 15 20 23 40 55
...
...
販売数  


---------------------------------------------------------------------------------------------

Dim i As Double

For i = 3 To 9
If Cells(5, i).Value <= Cells(5, 10).Value Then
Font.Color = RGB(255, 0, 0)
Exit For
End If
Next i
End Sub

質問者からの補足コメント

  • 説明不足ですみません。

    各曜日の販売数と週の平均数を比較して各曜日の値が平均の値以下ならその値を赤字にしたいです。
    例)月曜日の販売数25 と週の平均販売数55 を比較して月曜日の販売数が平均以下なので25を赤字にする。 これを火曜日、水曜日・・・・と繰り返します。表の数値は適当に記入したので実際の平均値と一致していません。
    販売数は4行目ごとにあり同じ判定を繰り返していきますが、こちらのマクロはまだ組めていません。

      補足日時:2022/05/22 21:41

A 回答 (4件)

こんばんは


なさりたい事がイマイチわかりませんが
Font.Color = RGB(255, 0, 0)
この命令はどのセルにしたいのでしょうか?と機械は言っています

例えば、ループ対象のセルなら
Cells(5, i).Font.Color = RGB(255, 0, 0)

あと、Exit For
一つのセルが条件Trueならあとは処理しなくて良いのでしょうか?

また、繰り返し処理を実行するのでは無いかと思うのですが
Else
.Font.ColorIndex = xlAutomatic とかしなくても良いのかな?

>違うエラー
比較するセルは値ですか? 数式などが入っているセルでエラー表示ななっているとかないですか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
セルが指定出来ていないという初歩的なミスだったんですね。。
今回5行目だけを対象にマクロを作成しましたが、9行目、13行目、17行目、2D1行目、25行目にも同じ処理を行います。
繰り返しの処理についてはまだ対応出来ていません。

セルにはそれぞれ数式が入っています。それがエラーの原因になったりするんですね。少しずつ勉強していきます。

お礼日時:2022/05/22 22:03

こんばんは


少し気になり、投稿します
学習の為、マクロでとの事ならば、良いのですが
先のご質問を含め、一連のご質問に回答をさせて頂きましたが、なぜマクロで実行したいのでしょうか?
各処理は、関数式と条件付き書式で作成可能と思います。

それの方が、簡単で且つマクロを繰り返し実行する必要が無いのではと思います。
表組み変更などでも比較的容易に出来るのでは無いかと・・
もし、表を複数作る予定などであれば、Copyなど手作業で十分ですし簡単かと思いました。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

関数で行えば簡単なのですが、マクロを学習したいと思い
基礎的なところから少しずつ勉強しているところです。

お礼日時:2022/05/24 06:51

#1 を回答した者です



>表の数値は適当に記入したので実際の平均値と一致していません。
販売数は4行目ごとにあり同じ判定を繰り返していきますが、こちらのマクロはまだ組めていません。

>その度に違うエラーで止まります。
このご質問と違う部分ではありますがエラーと言う意味で
https://oshiete.goo.ne.jp/qa/12960370.html
で掲示されているプロシージャも ご質問のコードも
プログラムで計算されている部分があります
Cells(j, i) / Cells(j + 1, i)
Cells(5, i).Value <= Cells(5, 10).Value

上記は 空白セルで実行するとエラー6など
0で除算するとエラー11、文字列で実行するとエラー13
などで処理が止まります。
また、#1にも触れましたが、対象セルにエラーが入っている場合も
型エラー13で止まります。

今後、問題になるかも知れませんのでキーワードと情報です

>表の数値は適当に記入した
言い換えるとあらかじめ参照先セルに正しく数値がすべて入力されていないと
エラーが返り、実行出来ないと言う事ですのでエラー対策を入れる必要があります

エラーを出さないと言う考え方だと
対象セルが文字でなく0でなく空白でなく、エラー表示されていない事を条件にする必要があります
実行場所により違うとは思いますが・・

エラーが出たらと言う考え方だと
On Error Resume Next や On Error GoTo ラベル などでしょうか
    • good
    • 0
この回答へのお礼

丁寧なご説明ありがとうございます。
マクロの勉強を数か月前から少しずつ始めたところで
まだまだ基本的なことが分かっていないと実感しました。
もう一度、1つずつ理解を深めて進めていきたいと思います。

お礼日時:2022/05/24 06:54

こんばんは



どのセルに色を付けたいのかはっきりしませんけれど・・・

>Font.Color = RGB(255, 0, 0)
  ↓  ↓  ↓
 Cells(5, i).Font.Color = RGB(255, 0, 0)

とかでは?
    • good
    • 0
この回答へのお礼

ありがとうございます!
セルを指定することで希望通りに平均以下の値の場合、そのセルを赤字にすることが出来ました。

お礼日時:2022/05/22 22:04

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