- ベストアンサー
繰り返しマクロの書き方
例えば、D列4行目から30行目に先週の商品売り上げ個数を入力し、E列4行目から30行目に今週の商品売り上げ個数を入力します。D列とE列を比較しE列の売り上げが多ければ、N列4行目から30行目に上矢印マークを表示させ、売り上げが少なければ下矢印マークを表示させたいのです。これを毎月毎週繰り返したいのですが、マクロで出来るのでしょうか? どなたかお教えいただければ幸いです。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 横からお邪魔します。 No.3さんの補足を読ませていただいて・・・ Sub test() Dim i, j, k As Long Dim vl1, vl2 As Variant For i = 4 To 30 If WorksheetFunction.Count(Range(Cells(i, 4), Cells(i, 13))) > 1 Then j = 4 Do Until Cells(i, j) <> "" j = j + 1 Loop vl1 = Cells(i, j) For k = 4 To 13 If Cells(i, k) <> "" Then vl2 = Cells(i, k) End If Next k If vl1 > vl2 Then Cells(i, 14) = "↓" ElseIf vl1 = vl2 Then Cells(i, 14) = "→" Else Cells(i, 14) = "↑" End If Else Cells(i, 14) = "" End If Next i End Sub こんな感じをお望みだったのでしょうか? 的外れならごめんなさいね。m(_ _)m
その他の回答 (3)
- mt2008
- ベストアンサー率52% (885/1701)
もう少しやりたい事を整理してください。 矢印を表示したいのはN列だけですか?常に一番右の値とその左の値を比較して矢印を表示すれば良いのでしょうか? それとも、売り上げがD:F列に 1 4 3 と値が入ったら、N列は1と4の比較で「↑」、O列は4と3の比較で「↓」と表示するのですか? また売り上げが入るのはD列から何列までですか?
お礼
ありがとうございました。解決しましたが また質問させていただいたときは、よろしくお願いします。
補足
すいません。 おっしゃるとおり常に一番右の列の値とその左の列の値を比較して、N列に矢印を表示させたいのです。 売り上げが入るのはD列からM列までです。 よろしくお願いします。
- bin-chan
- ベストアンサー率33% (1403/4213)
> データは毎週の売り上げをE~F~Gと増えていきますので、ただのIF関数だけでは無理だと思います。 > D列とE列の比較が終わったら、次はE列とF列の比較に移りますので E~F~Gと増えていき、M列を使用した次の回はどうするんですか? E列とF列の比はどの列に表示するのですか?
補足
ありがとうございます。説明不足で申し訳ありません。 データ入力はM列で終わりです。また、すべての列の比はN列に表示させたいのです。 よろしくご教授お願いいたします。
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは。 >D列とE列を比較しE列の売り上げが多ければ、N列4行目から30行目に上矢印マークを表示させ、売り上げが少なければ下矢印マークを表示させたいのです。 これだけなら、 N列にif関数を入れればすぐ出来ますよ。マクロは不要です。 では。
お礼
ありがとうございました。解決しました。 また 質問させていただいたときはよろしくお願いします。
補足
回答ありがとうございます。 D列とE列だけの比較ならマクロはいらないと思いますけど、データは毎週の売り上げをE~F~Gと増えていきますので、ただのIF関数だけでは無理だと思います。 D列とE列の比較が終わったら、次はE列とF列の比較に移りますので、LOOPかNEXTを使ったマクロが必要なのです。 よろしくお願いします。
お礼
出来ました~~~~~^^ 本当にありがとうございました。 マクロは超初心者なので、これから内容をじっくり読みながら マニュアル本と首っ引きで勉強したいと思います。 本当にありがとうございました。