
マクロ実行時、自動で背景色を変えたい。
C列にあるチェックボックスをチェックするとB列に「TRUE」が入り、下記コードで背景色が変わります。
これをD列の背景色が変わるように変更したいができません。条件付き書式ではなくマクロでの変更方法を教えてください。
Sub セルがTrueならグレー()
Dim i As Integer, j As Integer
For i = 4 To 12
For j = 2 To 6
If Cells(i, j).Value >= "True" Then 'TRUEの場合
Cells(i, j).Interior.ColorIndex = 15 'グレー
Else
Cells(i, j).Interior.ColorIndex = 0 '色なし
End If
Next j
Next i
End Sub

No.2ベストアンサー
- 回答日時:
こんにちは
説明文に無いのではっきりしませんけれど、B列の値はチェックボックスのリンクセルに設定されているものと推測しました。
ご提示のコードが2重ループになっている理由がさっぱりわかりませんけれど、質問文の内容だけなら2重にする必要はまったくないはず。
>条件付き書式ではなくマクロでの変更方法を教えてください。
条件付き書式を利用すればチェックを変更したら即反映されますけれど、マクロだといちいち実行しないと反映されません。
それでもよいのなら・・
※ B列の色は変更せずに、D列の色を変更するものと解釈しました。
Sub セルがTrueならグレー()
Dim i As Long, c As Long
For i = 4 To 12
If Cells(i, 2).Value = True Then c = 15 Else c = xlNone
Cells(i, 4).Interior.ColorIndex = c
Next i
End Sub
No.4
- 回答日時:
#3訂正します
フォームコントロール
コピペで済ましてしまいました・・
With ActiveSheet.CheckBoxes(Application.Caller).TopLeftCell
If CheckBox1 Then ×
With ActiveSheet.CheckBoxes(Application.Caller).TopLeftCell
If CheckBoxes(Application.Caller).Value = xlOn Then
Withの使い方がなんかな・・と思ったら 書き換えてください
No.3
- 回答日時:
こんにちは
マクロで・・ならば、チェックボックスのClickイベントに書く方が良くないですか?
ActiveXコントロールのチェックボックス1の場合
Private Sub CheckBox1_Click()
With CheckBox1.TopLeftCell
If CheckBox1 Then
.Offset(, -1) = "True"
.Offset(, 1).Interior.ColorIndex = 15
Else
.Offset(, -1) = "False"
.Offset(, 1).Interior.ColorIndex = 0
End If
End With
End Sub
ActiveXではなさそうね
ActiveXコントロールでないのなら(フォームコントロールなら)
フォームコントロールのチェックボックスで(マクロの登録)
Sub セルがTrueならグレー()
With ActiveSheet.CheckBoxes(Application.Caller).TopLeftCell
If CheckBox1 Then
.Offset(, -1) = "True"
.Offset(, 1).Interior.ColorIndex = 15
Else
.Offset(, -1) = "False"
.Offset(, 1).Interior.ColorIndex = 0
End If
End With
End Sub
チェックする度にチェックしたコントロールの左右のセルを変更します
注意
A列に設置すると.Offset(, -1)なので1004エラーが返ります
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
電子書籍プレゼントキャンペーン!
最大2万円超分当たる!マンガや小説が読める電子書籍サービス『Renta!』で利用できるギフトコードプレゼント実施中!
-
vbaの計算 if elseと範囲について
Visual Basic(VBA)
-
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日
Visual Basic(VBA)
-
4
VBA This Workbookモジュールを別ファイルにコピーする方法
Visual Basic(VBA)
-
5
ExcelのVBAでシフト表を作っていますが、バグが出て困っています
Visual Basic(VBA)
-
6
VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく
Visual Basic(VBA)
-
7
初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。
Visual Basic(VBA)
-
8
VBAリストボックスで選択した後
Visual Basic(VBA)
-
9
Excel VBAでAA(BBB) → BBB.AA に置換したい
Visual Basic(VBA)
-
10
VBAの計算について
Visual Basic(VBA)
-
11
【VBAエラー】Nextに対するForがありません 対策について
Visual Basic(VBA)
-
12
Excel VBAのデバッグ
Visual Basic(VBA)
-
13
ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています
Visual Basic(VBA)
-
14
このマクロの説明文を教えてほしいです。
Visual Basic(VBA)
-
15
【VBA】印刷マクロのループ処理が反映されません
Visual Basic(VBA)
-
16
マクロのコードを、少しでも削って短くしたい
Excel(エクセル)
-
17
稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何
Visual Basic(VBA)
-
18
複数セルに〇印をつけるマクロ
Visual Basic(VBA)
-
19
VBAでのフルパスの取得
Visual Basic(VBA)
-
20
VBAで重複データを確認したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
ExcelのVBA。public変数の値が...
-
5
特定のPCだけ動作しないVBAマク...
-
6
一つのTeratermのマクロで複数...
-
7
Excel・Word リサーチ機能を無...
-
8
TeraTermマクロの文字列結合
-
9
EXCELのVBAでRange("A1:C4")を...
-
10
VBAのIF分で時間指定の条件式の...
-
11
エクセルで別のセルにあるふり...
-
12
Excel マクロ 画像をリン...
-
13
ExcelVBAでPDFを閉じるソース
-
14
エクセルでマクロの実行回数を...
-
15
EXCELマクロでのThisisWor...
-
16
_T("abcdef") の_Tってなんです...
-
17
マクロ実行時、ユーザーフォー...
-
18
Excel 改ページのVBAうまくい...
-
19
PowerPointにおける「コメント...
-
20
マクロの連続実行
おすすめ情報
公式facebook
公式twitter