
マクロ実行時、自動で背景色を変えたい。
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
このQ&Aを見た人はこんなQ&Aも見ています
-
選択したセル範囲に入っているチェックボックスを全てOFFにしたい
Excel(エクセル)
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
-
4
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
5
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
6
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
-
7
エクセル ボタンを押すとセルの色が変わるようにしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
マクロの連続印刷が突然不可能...
-
特定のPCだけ動作しないVBAマク...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
TERA TERMを隠す方法
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
Excel・Word リサーチ機能を無...
-
非表示の列をすべて削除するマクロ
-
Excelのセル値に基づいて図形の...
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
エクセル VBA実行中のApplicati...
-
特定文字のある行の前に空白行...
-
エクセルマクロでワードの一ペ...
-
【EXCEL VBA】オートシェイプを...
-
マクロ実行時エラー
-
wordを起動した際に特定のペー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
エクセルで別のセルにあるふり...
-
エクセルに張り付けた写真のフ...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
Excelのセル値に基づいて図形の...
-
Excel VBAからAccessマクロを実...
-
ExcelVBAでPDFを閉じるソース
-
マクロ実行時、ユーザーフォー...
-
オートフィルターとExcelマクロ...
-
wordを起動した際に特定のペー...
-
特定文字のある行の前に空白行...
-
エクセルで縦に並んだデータを...
おすすめ情報