マクロ実行時、自動で背景色を変えたい。
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ランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
EXCELマクロでのThisisWor...
-
Excel マクロ VBA プロシー...
-
【マクロ】1つのマクロの中に...
-
10人を2人づつ5組にランダ...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
アクセスで作成したマクロの印...
-
エクセルで別のセルにあるふり...
-
エクセル マクロで奇数行の非表示
-
エクセル マクロ 指定日の指定...
-
Excel VBAからAccessマクロを実...
-
特定文字のある行の前に空白行...
-
2つのマクロでチェックボックス...
-
エクセルに張り付けた写真のフ...
-
EXCELのVBAでRange("A1:C4")を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報