いつも大変お世話になっております。
今、試したら
If .Row Mod 2 = 0 And IsDate(.Value) Then
Cells(.Row, 5).Font.ColorIndex = 5
Else
Cells(.Row, 5).Font.ColorIndex = xlAutomatic
End If
行が 偶数 で 日付 なら 例えば8/8と
入力したらCells(.Row, 5).Font.ColorIndex = 5
になるはずが、
行 奇数 で Delete したときにはじめて、
Cells(.Row, 5).Font.ColorIndex = 5
になります。
おしえてくれませんでしょうか
Private Sub Worksheet_Change(ByVal Target As Range)
Dim st As String
Dim cnt As Long
With Target
st = .Address(False, False)
cnt = 1
Do While Mid(st, cnt, 1) Like "[A-Z]"
cnt = cnt + 1
Loop
st = Left(st, cnt - 1)
Select Case st
Case "E"
If .Row Mod 2 = 0 And IsDate(.Value) Then
Cells(.Row, 5).Font.ColorIndex = 5
Else
Cells(.Row, 5).Font.ColorIndex = xlAutomatic
End If
If .Row Mod 2 = 1 And IsDate(.Value) Then
Cells(.Row, 5).Font.ColorIndex = 3
Cells(.Row - 1, 5).Font.ColorIndex = 3
Cells(.Row, 5).Interior.ColorIndex = 6
Cells(.Row - 1, 5).Interior.ColorIndex = 6
Cells(.Row, 3).Interior.ColorIndex = 6
Cells(.Row - 1, 3).Interior.ColorIndex = 6
Else
Cells(.Row, 5).Font.ColorIndex = xlAutomatic '?????xlNone???_?????????B?A???????B
Cells(.Row - 1, 5).Font.ColorIndex = 5
Cells(.Row, 5).Interior.ColorIndex = xlColorIndexNone
Cells(.Row - 1, 5).Interior.ColorIndex = xlColorIndexNone
Cells(.Row, 3).Interior.ColorIndex = xlColorIndexNone
Cells(.Row - 1, 3).Interior.ColorIndex = xlColorIndexNone
End If
End Select
End With
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは
全体で何をどうしたいのかがわからないので、修正方法はわかりませんが・・・
>行が 偶数 で 日付 なら 例えば8/8と
>入力したらCells(.Row, 5).Font.ColorIndex = 5
>になるはずが、
Changeしたセルが、「偶数業で値が日付」の場合にどのように処理されるかを追ってみれば、
前半部分にご指摘のような記述があるので、そのように実行されます。
(コードの途中に Stop などを入れてみれば、目視確認できます)
一方で、同じ条件に対しては、後半の記述で
>Cells(.Row, 5).Font.ColorIndex = xlAutomatic
としているので、最終的に xlAutomatic が設定されることになっています。
Cells(.Row, 5).Font.ColorIndex = xlAutomatic
xlNone にしたらOKでした。
最初のコードばかり修正していました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Worksheet_Change 4 2023/03/12 21:54
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DataGridViewでyyyy/MM/dd
-
VisualBasic6.0のFormat関数で...
-
「eclipseで作るカレンダー(ス...
-
VBAで日付入力しているのですが
-
今日より前の書き方 マクロ
-
ユーザーフォームのラベルに日...
-
VB 日付範囲チェック
-
C++で日付判定を行いたい!!
-
システム日付とは?
-
【Excel VBA】条件に合った行の...
-
<Access>2つの抽出条件が合致...
-
【VBA】土日をスキップして日付...
-
エクセルのユーザーフォームに...
-
ExcelVBAでSQLサーバの日付時刻...
-
g08のロック画面の日付表示の変更
-
エクセルVBAで機械の稼働時間を...
-
VB6で時刻の範囲に入っているか...
-
VBA 日付・時刻の判別 時刻を認...
-
C#で日付をdateTimePickerに読...
-
Google Feed APIの将来記事の取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseの対応する括弧の強調表...
-
ユーザーフォームのラベルに日...
-
VBAの質問になります 行の非表示
-
エクセルのVBAで日付を検索し転...
-
VisualBasic6.0のFormat関数で...
-
DataGridViewでyyyy/MM/dd
-
3人のじゃんけんのプログラム
-
システム日付とは?
-
コンボボックスに日付を表示する
-
今日より前の書き方 マクロ
-
【VBA】土日をスキップして日付...
-
エクセルVBAで機械の稼働時間を...
-
VBA 日付、未来の日付はエラー...
-
DataGridViewの和暦表示について
-
VBAで当月の1日を表示するには...
-
「eclipseで作るカレンダー(ス...
-
テキストボックスにカレンダー...
-
ExcelVBAでSQLサーバの日付時刻...
-
【Excel VBA】条件に合った行の...
-
VBAのapplication.ontime メソ...
おすすめ情報