No.6
- 回答日時:
間違っていました
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C3")) Is Nothing Then Exit Sub
Dim r As Long: r = 0
Dim c As Long: c = 0
With Selection
If .Rows.Count <> Rows.Count Then r = .Rows.Count
If .Columns.Count <> Columns.Count Then c = .Columns.Count
End With
Dim rng As Range
With Range("C3")
For Each rng In Union(Range("A3:B3", "C1:C2"), .Offset(r, 0), .Offset(0, c))
If rng.Interior.ColorIndex = 6 Then rng.Interior.ColorIndex = xlNone
Next
.Interior.ColorIndex = 6
End With
End Sub
No.5
- 回答日時:
#1様#4様に同意です
VBAで行う場合、条件などを絞る必要があるように思いますが
ざっくりコードにすると
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C3")) Is Nothing Then Exit Sub
Dim r As Long: r = 0
Dim c As Long: c = 0
With Selection
If .Rows.Count <> Rows.Count Then r = .Rows.Count
If .Columns.Count <> Columns.Count Then c = .Columns.Count
End With
With Range("C3")
If .Offset(r, c).Interior.ColorIndex = 6 Then .Offset(r, c).Interior.ColorIndex = xlNone
If .Offset(r, 0).Interior.ColorIndex = 6 Then .Offset(r, 0).Interior.ColorIndex = xlNone
If .Offset(0, c).Interior.ColorIndex = 6 Then .Offset(0, c).Interior.ColorIndex = xlNone
If r <= 2 And c <= 2 Then
If .Offset(-r, -c).Interior.ColorIndex = 6 Then .Offset(-r, -c).Interior.ColorIndex = xlNone
If .Offset(-r, c).Interior.ColorIndex = 6 Then .Offset(-r, c).Interior.ColorIndex = xlNone
If .Offset(r, -c).Interior.ColorIndex = 6 Then .Offset(r, -c).Interior.ColorIndex = xlNone
End If
End With
Range("C3").Interior.ColorIndex = 6
End Sub
纏められそうですが・・
条件はC3セル以外周辺に黄色のセルが無い事?
If Intersect(Target, Range("A1:C3")) Is Nothing Then Exit Sub
なので初めに色は手動もしくはA1:C3セル変更で実行してください
No.4ベストアンサー
- 回答日時:
No.1さんのご指摘のとおり、私もマクロで対応すべき課題でもないように思います。
添付画像をご覧ください。条件付き書式で
「常にC3セルに背景色をつけておく」
を実現したものです。
手順は以下のとおりです。
(1)まず、添付画像の左上の○印のように、行番号と列名の交叉位置にある「右下三角」をクリックする
(2)シート全体のセルが選択された状態になる
(3)メインメニュのホームタブから「条件付き書式」をクリックし、「新しいルール」を選択
(4)「新しいルール」のダイアログが開くので、「数式を使用して。書式を設定するセルを決定」を選択
(5)「次の数式を満たす場合に値を書式設定」と表示された数式記入欄に以下の数式を入力する
=CELL("address",A1)="$C$3"
(6)書式ボタンを押し、表示された「セルの書式設定」ダイアログの「塗りつぶし」タブで好みの色を選択してOKを押す
(7)「新しいルール」のダイアログに戻るので、OKを押す
上記手順で「常にC3セルに背景色をつけておく」という状態になります。
条件付き書式の数式記入欄に記述した
=CELL("address",A1)="$C$3"
という数式を解説すると、
(a)予め全てのセルを選択しているので、選択範囲の左上隅のセルがA1セルになっている
(b)仮に、左上隅に記述するとした場合の数式を関数内で相対参照形式で記述すると、条件付き書式では、その数式が全ての選択したセルにコピーした状態で適用される
(c)従って、C3セルには「=CELL("address",C3)="$C$3"」とい条件付き書式の「数式条件」が設定されたことになる
※ただし、C3セルを選択してメニューの条件付き書式の「ルールの管理」から設定されている数式を確認しても「=CELL("address",A1)="$C$3"」と表示されているだけなので注意
(d)この条件を満たすのはC3セルのみで、行や列を削除しても必ず存在するので、常にC3セルのみが指定の背景色に塗られることになる
という訳です。
No.2
- 回答日時:
以下は、常にC3セルに背景色をつけるためのVBAマクロです。
行や列を削除しても、常にC3セルに背景色が付いたままになります。vbnet
Copy code
Private Sub Worksheet_Change(ByVal Target As Range)
'C3セルの範囲内で何らかの変更があった場合
If Not Intersect(Target, Range("C3")) Is Nothing Then
'C3セルに背景色を設定する
Range("C3").Interior.ColorIndex = 6 '例えば、黄色に設定する場合
End If
End Sub
このコードをワークシートのVBAコンソールに貼り付けてください。C3セルに何らかの変更があった場合(例えば、値が変更された場合)、C3セルに背景色が設定されます。行や列を削除しても、このマクロによってC3セルに背景色が付いたままになるため、常にC3セルに背景色を設定したい場合には適しています。ただし、C3セル以外の範囲に変更があった場合には、背景色が設定されない点に注意してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロを教えてください シート内の背景色が赤のセルだけを残して 他のセルは削除したいです。 3 2023/07/12 12:26
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- その他(Microsoft Office) エクセル 表の移動 2 2023/04/05 20:29
- Visual Basic(VBA) セルの変更で処理するマクロについて 1 2022/12/20 18:09
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一行おきにコピーするマクロが...
-
エクセル マクロ 行や列を削除...
-
Excelの非表示列も含めてコピー
-
EXCELにて複数列を同条件(色)...
-
シート保護の状態で行の追加を...
-
Excel VBAで日にちを入力して線...
-
エクセルで空白以外のセルの値...
-
2つのセルを交互に切り替え表示...
-
エクセルで反転コピー
-
エクセル マクロ 貼り付け先が...
-
エクセルで行挿入した際、自動...
-
エクセルの関数について(日付で...
-
特定の桁数を抽出
-
エクセルで表示された値だけ行...
-
マクロ ScrollColumn について
-
VBAで同じブック内の別シー...
-
[Excel VBA]空白セル以外に連番...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
A1セルに入力したら、入力時間...
-
ある倍数だけを塗りつぶす方法 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
一行おきにコピーするマクロが...
-
エクセルで行挿入した際、自動...
-
行数が不規則な一週間ごとの合...
-
Excelの非表示列も含めてコピー
-
エクセル マクロ 貼り付け先が...
-
シート保護の状態で行の追加を...
-
エクセルで表示された値だけ行...
-
エクセルで空白以外のセルの値...
-
エクセル VBA 指定の範囲内をコ...
-
エクセルの関数について(日付で...
-
[Excel VBA]空白セル以外に連番...
-
エクセルで反転コピー
-
【初歩】エクセルでのマクロ(...
-
エクセルで縦に長い表を印刷
-
エクセルVBA 複数列をコピーす...
-
マクロで値がある列までコピー
-
Excel VBAで日にちを入力して線...
-
《エクセル2000》A列・B列の和...
-
マクロ ScrollColumn について
おすすめ情報