
No.7ベストアンサー
- 回答日時:
No.2・4・5です!
>2~79行間は連続してデータが入っているわけではないのです。
>「2~79行間のランダムにデータが入力されたものに対して」
>という事なんです
ということなので・・・
ある行には全くデータがない場合もあるということだとしての一例です。
A~D列にデータがない行は無視しています。
Sub test()
Columns("A:C").Interior.ColorIndex = xlNone
Dim i As Long
For i = 2 To 79
If WorksheetFunction.CountA(Range(Cells(i, 1), Cells(i, 4))) Then
If Cells(i, 2) <> "" And Cells(i, 4) <> "" Then
Range(Cells(i, 1), Cells(i, 3)).Interior.ColorIndex = 6
ElseIf Cells(i, 4) <> "" Then
Cells(i, 3).Interior.ColorIndex = 6
End If
End If
Next i
End Sub
今度は希望通りになれば良いのですが・・・m(_ _)m
本当にありがとうございます!!
やりたい事がちゃんと出来ました!
何度も何度も聞いてしまい、
その度にご親切に教えて下さって、心より感謝しております。
これを機に、しっかり勉強して行きたいと思います。
No.6
- 回答日時:
NO3です。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 5 Then
Range("A:C").Interior.ColorIndex = xlNone
For i = 2 To UsedRange.Rows.Count
Range("A" & i & ":C" & i).Interior.ColorIndex = xlNone
If Range("D" & i).Value = "" Then Range("C" & i).Interior.ColorIndex = 8
If Range("B" & i).Value = "" And Range("D" & i).Value = "" Then Range("A" & i & ":C" & i).Interior.ColorIndex = 6
Next
End If
End Sub
では如何でしょうか。
但し、データの量が増えてくるとパソコンへの負担も増えますよ。
ありがとうございます。
教えて下さったコードでも出来たのですが、
見やすさの面(私以外にも使うファイルの為)から、他の方をベストアンサーとさせて頂きましたが、
ご親切に教えて下さり、ありがとうございました。
No.5
- 回答日時:
No.2・3です!
たびたびごめんなさい。
前回の投稿で間違いがありました。
2行目~79行目であれば
For i = 2 To 79
でした。
尚、この場合は列は全く関係なくてデータがあるなしにかかわらず、マクロは2~79行目まで走ります。
何度も失礼しました。m(_ _)m
お返事をどうもありがとうございます。
2~79行間は連続してデータが入っているわけではないのです。
「2~79行間のランダムにデータが入力されたものに対して」
という事なんです。
本当に、こちらこそ何度もすみませんっ!!!
No.4
- 回答日時:
No.2です。
>A列の2行目から79行目の範囲にデータが入っているものに対して・・・
とありますので、2行目から79行目と行数が決まっているのであれば
>For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
の行を
For i = 1 To 79
とすれば大丈夫です。
尚、データ数がこれから増えるのであれば
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
としておけばA列の2行目から最終行までの操作が可能になります。
この程度でよろしいでしょうかね?m(_ _)m
No.3
- 回答日時:
これからデータを入力や編集した行に有効です。
シート名のタブをクリック
コードの表示をクリックして VBエディターを起動
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 5 Then
Range("A" & Target.Row & ":C" & Target.Row).Interior.ColorIndex = xlNone
If Range("D" & Target.Row).Value = "" Then Range("C" & Target.Row).Interior.ColorIndex = 8
If Range("B" & Target.Row).Value = "" And Range("D" & Target.Row).Value = "" Then Range("A" & Target.Row & ":C" & Target.Row).Interior.ColorIndex = 6
End If
End Sub
貼り付けて、Vbエディターを閉じます
A~Dデータを入れていく、あるいは入力済みのデータを変更してみてください。
既に入力済みのデータに対して実行するものではありません。
どうもありがとうございます。
入力済みのデータに色を付けたかったのです。
私の説明不足ですみません。
お力を貸して頂いた事はとても感謝しております。
No.2
- 回答日時:
こんばんは!
無限に最終行まで色付という訳にはいかないと思いますので
とりあえずA列には必ずデータがあるという前提です。
D列にデータがある場合はその行は色を付けなくて良いわけですよね?
一例です。
↓のコードをコピー&ペーストしてデータが増えるたびにマクロを実行してみてください。
(本来であればコマンドボタンをSheet上に配置し、ボタンをクリックするとマクロが実行されるようにする方が良いかもしれませんね。)
Sub test()
Columns("A:C").Interior.ColorIndex = xlNone
Dim i As Long
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 2) = "" And Cells(i, 4) = "" Then
Range(Cells(i, 1), Cells(i, 3)).Interior.ColorIndex = 6
ElseIf Cells(i, 4) = "" Then
Cells(i, 3).Interior.ColorIndex = 6
End If
Next i
End Sub
こんな感じではどうでしょうか?m(_ _)m
ありがとうございます!
A列にデータが入っているという事前提で作って頂き、
何とも機転の利いた配慮をありがとうございました。
私が最初の質問の時に、説明が不足していて申し訳なかったのですが、
「A列の2行目から79行目の範囲にデータが入っているものに対して」
という場合でしたら、
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
の部分を修正したら良いんですよね?
変数があまり分かってないのですが、その場合はどうなりますか?
No.1
- 回答日時:
VBAに取り組みたいのでしたら
・基本構文を身に着けてください。
・「マクロの記録」を参考にすると、どの操作にはどんな命令(メソッド)を使えばいいのかわかります。
・何をどうしたいのか、手順を詳細に書き出して、それに合わせてコードを書いてください。
・エラーがあれば、自動でそこで停止しエラーメッセージが出ますから、どうすればいいのか考えて修正していってください。
下記は、「マクロの記録」例です。
*このような記録を参考にして書き換えていきます。
Range("D1").Select
ActiveCell.FormulaR1C1 = ""
Range("C1").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
MsgBox "next"
Range("D1").Select
ActiveCell.FormulaR1C1 = ""
Range("B1").Select
ActiveCell.FormulaR1C1 = ""
Range("A1:C1").Select
With Selection.Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ありがとうございます。
おっしゃる通り、基本操作を学ばなければいけないのですが、
コードをよく分かっていない上に、時間がありません。
申し訳ないのですが、質問のコードを書いて頂けませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルで教えて下さい。 2 2022/05/18 13:00
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Visual Basic(VBA) VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカウントできる、VB 2 2022/04/06 21:33
- Excel(エクセル) エクセルで隣(右or左)のセルと同じ文字色にしたい 2 2022/12/13 11:33
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 条件付き書式の色付きセルのカウント方法について 2 2022/10/21 14:51
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
- Excel(エクセル) エクセルの関数について教えてください。 A1=B1*C1*D1の時 C1D1のセルのどちらかがが空白 1 2022/05/07 23:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
値の入っているセルのうち、一...
-
更新前と更新後の差分をVBAを使...
-
SUMPRODUCT関数 行が増えても...
-
エクセルで何種類のデータがあ...
-
エクセルの並べ替え
-
エクセルで・・・
-
複数の候補列から、検索値と一...
-
エクセル 担当者ごとにブラン...
-
エクセル 正解率
-
Excel関数:「0」を除いた標準...
-
エクセルVBA AdvancedFilterの...
-
空白セルと行に色をつけるVBA E...
-
エクセルでデータ照合の仕方
-
エクセル、正数のみの集計[(負...
-
ピボットで複数の区切りでグル...
-
VLOOKUP関数で検索範囲を2つの...
-
【エクセル】区切り位置で分割...
-
エクセルVBAを使ってセルに日付...
-
エクセル関数countifの初歩的な...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
【エクセル】区切り位置で分割...
-
更新前と更新後の差分をVBAを使...
-
Excel関数:「0」を除いた標準...
-
SUMIFで数値が入力されているセ...
-
値の入っているセルのうち、一...
-
Excel関数で、範囲内の最後のセ...
-
ピボットテーブル 0個の行を...
-
エクセル、正数のみの集計[(負...
-
エクセルに入力された日付「S40...
-
入力するとかってにセルの色が...
-
《エクセル2000》重複している...
-
エクセル 8ケタの数字から日数...
-
エクセルで何種類のデータがあ...
-
SUMPRODUCT関数 行が増えても...
-
Excelのマクロで行を間引きたい
-
複数の候補列から、検索値と一...
-
エクセルVBAを使ってセルに日付...
-
エクセルで電話番号を - で分...
-
Excelで複数列かつ複数行分の一...
おすすめ情報