
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.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.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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
CSVファイルでVBAを動かす方法
Excel(エクセル)
-
Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに
Excel(エクセル)
-
エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式
Excel(エクセル)
-
-
4
エクセル/列追加時、合計行の計算式
Excel(エクセル)
-
5
【Excel】複数列ごとに取得するセルを変更したい
Excel(エクセル)
-
6
VBAで、シート間の転記するコードを教えてください。
Excel(エクセル)
-
7
「入力した数値」と「その数値プラス2の数値」をセル番地にする方法を教えて下さい。
Excel(エクセル)
-
8
エクセルの日報作成について
Excel(エクセル)
-
9
エクセル 住所間の通勤時間
Excel(エクセル)
-
10
エクセルで月をアルファベットに変換したい。
Excel(エクセル)
-
11
Excelについて質問です。 シート1の検索値例えば *ABC* をシート2.3.4から検索して、シ
Excel(エクセル)
-
12
Excelマクロの作成方法・コーディングをご教授ください。
Excel(エクセル)
-
13
EXCEL 和暦を西暦に変換する方法について
Excel(エクセル)
-
14
Excelについて
Excel(エクセル)
-
15
エクセルでセルの値分の個数の数字列を自動で入れたい
Excel(エクセル)
-
16
VBA オリジナル関数で選択セルの合計を作成したい
Excel(エクセル)
-
17
Excel処理について、教えて下さい。 下記表は、サンプルです。(実際には千件以上あります) A列に
Excel(エクセル)
-
18
Excelのプルダウンメニューの内容を人によって可変する方法
Excel(エクセル)
-
19
エクセルで沢山のレコードの最後に追記するには?
Excel(エクセル)
-
20
VLOOKUP 構造化参照について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一行おきにコピーするマクロが...
-
EXCELにて複数列を同条件(色)...
-
シート保護の状態で行の追加を...
-
エクセルで反転コピー
-
エクセル マクロ 貼り付け先が...
-
《エクセル2000》A列・B列の和...
-
Excelの非表示列も含めてコピー
-
エクセルの関数について(日付で...
-
特定の桁数を抽出
-
エクセルで行挿入した際、自動...
-
エクセルで空白以外のセルの値...
-
Excel 条件に従いセル移動するには
-
"=LEFT(RC[-13],5)"を書き換えたい
-
VBAで同じブック内の別シー...
-
【初歩】エクセルでのマクロ(...
-
エクセル VBA 指定の範囲内をコ...
-
2つのセルの入力忘れ防止の警告...
-
Excel関数のことで教えてくださ...
-
エクセルで表示された値だけ行...
-
エクセルVBA 複数列をコピーす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel関数のことで教えてくださ...
-
EXCELにて複数列を同条件(色)...
-
一行おきにコピーするマクロが...
-
エクセルで表示された値だけ行...
-
Excelの非表示列も含めてコピー
-
シート保護の状態で行の追加を...
-
エクセル マクロ 貼り付け先が...
-
エクセル VBA 指定の範囲内をコ...
-
エクセルの関数について(日付で...
-
エクセルで行挿入した際、自動...
-
[Excel VBA]空白セル以外に連番...
-
エクセルで空白以外のセルの値...
-
《エクセル2000》A列・B列の和...
-
エクセルのマクロ、AVERAGEIFを...
-
エクセルで反転コピー
-
特定の桁数を抽出
-
エクセルで縦に長い表を印刷
-
Excel 条件に従いセル移動するには
-
VBAで同じブック内の別シー...
-
【初歩】エクセルでのマクロ(...
おすすめ情報