重要なお知らせ

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

【GOLF me!】初月無料お試し

エクセル VBAで操作出来たらと思い質問させていただきます。

D列の該当する条件「未納」の行に色塗りさせることは出来ました。

色を塗ったあと、色が塗られている行末の値を、その右隣のセルにもコピーすることはできますか?

D列に、「未納」と入力されている場合、「未納」行は全て色塗りします。
「未納」行の一番右端AI列(合計値)を、AJ列に取り出したいのです。(色はAJまでぬっています)

数字をAJ列に取り出すことで見やすくするため。

Worksheets(j).Activate
myCount = 0
myCount = Range("A1").CurrentRegion.Rows.Count
For i = 3 To myCount
myName = Cells(i, 4)
myDate = Left(myName, 3)

If myDate = "未納" Then
Range(Cells(i, 1), Cells(i, 37)).Interior.Color = RGB(217, 225, 242) ''薄いグレー色に設定する

色塗りは、なんとか出来ました。。
あとは、数値をコピーしたいので、記述を添削をしていただけないでしょうか。

よろしくお願いいたします。

A 回答 (2件)

こんにちは。


なんとなく、読めるようで読めませんね。
>色はAJまでぬっています
色はAK 列まで塗っているようですね。
一応、分かっている範囲で行うなら、このようなコードになりますね。

With ステートメントをしている限りは、Activate は不要なのですが。
それから、色付けというのは、逆に、色消しも備えなくてはならないことがおおいです。
D列の判定は、Like演算子で可能だと思います。

'//
Sub TestMacro1()
Dim myCount As Long
Dim i As Long, j As Long
j = 1 'シートの番号
myCOLOR1 = RGB(217, 225, 242) '色
 Worksheets(j).Activate
 With ActiveSheet
 For i = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
  If .Cells(i, 4).Value Like "未納*" Then
   .Range(.Cells(i, 1), .Cells(i, 37)).Interior.Color = myCOLOR1
   .Cells(i, 36).Value = .Cells(i, 35).Value
  End If
 Next
 End With
End Sub
    • good
    • 0

Cells(i,"AJ").value = Cells(i,"AI").value


を追加してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。質問の際に抜けておりました。。。月によって、AIやAJ、AHなど最後尾が異なるのです。。。

お礼日時:2017/07/05 09:21

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