複数のセルの色付けについて教えてください。
ダブルクリックでの色付けで下記のコードがあります。
加えて、D列のセルをダブルクリックしてブルーに色付けしたいのですがうまくいきません。
D列に色付けする方法を教えていただきたく、お願いいたします。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("T:T,U:U")) Is Nothing Then Exit Sub
With Target
If .Row < 2 Or .Row > 1671 Then Exit Sub
Cancel = True
If .Column = Range("T1").Column Then
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 3
.Value = "減免"
Cells(.Row, "B") = "a"
Else
.Interior.ColorIndex = xlNone
.ClearContents
Cells(.Row, "B").ClearContents
End If
Else
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 6
.Value = "期間限定"
Cells(.Row, "I") = Worksheets("設定").Range("F30")
Else
.Interior.ColorIndex = xlNone
.ClearContents
Cells(.Row, "I").ClearContents
End If
End If
End With
End Sub
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.1の者です。
Ifの中で、Elseが使えるのは1回だけですね。
End Ifの間違えでは?
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 5
Else
.Interior.ColorIndex = xlNone
.ClearContents
Else
No.3
- 回答日時:
No.1の者です。
>'処理~ についていろいろと書いて試してみますが、エラーが出て動きません。具体的なコードをお願いします。
どの様なコードを書かかれて、どの様なエラーが出てとかの説明がないと
何とも回答も難しいですが。
あと、どの様な処理をしたいという説明が必要だと思うのですが。。。
取り合えず下記の、’ブルーに色付けの処理のところに追記すれば、D列を
ダブルクリックしたときの処理になるかと思います。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("D:D,T:T,U:U")) Is Nothing Then Exit Sub
With Target
If .Row < 2 Or .Row > 1671 Then Exit Sub
Cancel = True
If .Column = Range("T1").Column Then
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 3
.Value = "減免"
Cells(.Row, "B") = "a"
Else
.Interior.ColorIndex = xlNone
.ClearContents
Cells(.Row, "B").ClearContents
End If
ElseIf .Column = Range("D1").Column Then
’ブルーに色付けの処理
Else
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 6
.Value = "期間限定"
Cells(.Row, "I") = Worksheets("設定").Range("F30")
Else
.Interior.ColorIndex = xlNone
.ClearContents
Cells(.Row, "I").ClearContents
End If
End If
End With
End Sub
回答ありがとうございます。
ご教示の通りElseIf .Column = Range("D1").Column Then
以下に
If .Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 5
Else
.Interior.ColorIndex = xlNone
.ClearContents
Else
を書き込んで実行すると下から2番目のElseのところで「Else」に対応するIfがありません、と出ます。
No.2
- 回答日時:
No.1の者です。
列毎の処理が、どれ位の種類があるかにもよりますが、幾つもあるなら、
Select Caseで処理を分けた方が楽かと思います。
Ifなら、ElseIfで、列毎に下記を追加も可能ですが。
With Target
If .Column = 4 Then
'処理~
ElseIf .Column = 21 Then
'処理~
ElseIf .Column = 22 Then
'処理~
End If
End With
回答ありがとうございます。
'処理~ についていろいろと書いて試してみますが、エラーが出て動きません。
具体的なコードをお願いします。
No.1
- 回答日時:
こんにちは
最初のコードで、D:Dを追加が必要ですね。
これがないと、Exit Subで処理を抜けてしまいますね。
If Intersect(Target, Range("D:D,T:T,U:U")) Is Nothing Then Exit Sub
もし、列毎に処理を分けるなら、Select Caseで列毎に処理を分けるのが
良いのでは?と思います。
(例)
Select Case Target.Column
Case 4 'D列
’処理~
Case 20 ’T列
’処理~
Case 21 ’U列
’処理~
End Select
回答ありがとうございます。
最初の処理にD:Dを加えるだけでは、最後の「期間限定」黄色の処理が適用されます。
Elseでいろいろ処理を書いてみましたがうまくいきませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) ワークシートチェンジ 1 2022/02/01 11:19
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) サブフォルダ含むすべてのフォルダの Excel 検索 4 2021/12/13 09:33
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Visual Basic(VBA) Excel VABについて 1.xlsm、VBA.xlsm2つのファイルがあり、1.xlsmにてVB 6 2021/12/13 17:46
- Visual Basic(VBA) Worksheet_Change 4 2023/03/12 21:54
- Visual Basic(VBA) シート名でファイル検索する 2 2021/11/30 17:05
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
VBAでCOPYを繰り返すと、処理が...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
DoEventsがやはり分からない
-
EXCEL VBA マクロ 実行する度に...
-
VBの質問#if 0 then ってどう...
-
メルカリのメルカードで買い物...
-
セルの値が0はクリアするマクロ
-
FFTの結果ついて
-
Loadイベント中にほかのイベン...
-
再帰処理を途中で抜けるには
-
VB6のMSFlexGridでセルをマージ...
-
2重のDo~Loopは?
-
TextBoxに日付を自動的に入れる
-
50代の男性の方に
-
_tfopen について教えてください
-
リョウ・・・量?料?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
EXCEL VBA マクロ 実行する度に...
-
VBの質問#if 0 then ってどう...
-
Do~Loopした回数をカウントしたい
-
もしかして
-
UMLでの例外処理
-
findは動くがfindnextがマクロ...
-
インタラクティブの反対語は?
-
VBA SaveChanges 上書きされない
-
リョウ・・・量?料?
-
Loadイベント中にほかのイベン...
-
セルの値が0はクリアするマクロ
-
FFTの結果ついて
-
Select Case文でこのようなこと...
おすすめ情報