ここから本文です

ifの分がうまくいかないのです。教えていただけますか?

bub********さん

2010/10/2610:59:52

ifの分がうまくいかないのです。教えていただけますか?

こんな工程表を作っています。
E5からAH5までは日付、E6からAH6までは曜日が表示されてあります。土曜日の日と曜日は青、日曜日の日と曜日は赤で表示しています。
入力範囲はE7からAH21までです。
セルに「A」を入力したら、土、日曜日の列を飛んで、一行一列づつ斜め自動的に入力される仕組みです。
例え、E7に入力したら、F8、G9、H10、I11、L12という順で表示されます。
E16に入力したら、F17、G18、H19、I20、L21という順で表示されます。
21行まで自動にデータが反映されます。

次のようなマクロをつくりました。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim j As Long

If Target.Count <> 1 Then Exit Sub

If Intersect(Target, Range("E7:AH21")) Is Nothing Then Exit Sub

If Cells(5, Target.Column).Font.ColorIndex = 3 And Cells(5, Target.Column).Font.ColorIndex = 5 Then
Target.ClearContents

Exit Sub
End If

Application.EnableEvents = False
For i = 1 To 21 - Target.Row
If Cells(5, Target.Column).Offset(, i).Font.ColorIndex = 3 And Cells(5, Target.Column).Offset(, i).Font.ColorIndex = 5 Then j = j + 1
Target.Offset(i, i + j).Value = Target.Value

Next
Application.EnableEvents = True
End Sub

なぜか土、日の列が飛ばしていないです。
どこがまちがっているか教えていただけますでしょうか?よろしくお願いいたします。

閲覧数:
296
回答数:
1

違反報告

ベストアンサーに選ばれた回答

nap********さん

2010/10/2611:53:48

Cells(5, Target.Column).Font.ColorIndex = 3 And _
Cells(5, Target.Column).Font.ColorIndex = 5
この条件式が真になることは絶対にありません。

Cells(5, Target.Column).Offset(, i).Font.ColorIndex = 3 And _
Cells(5, Target.Column).Offset(, i).Font.ColorIndex = 5
これも同じです。

同じプロパティの値が 3 かつ 5 であることはないので。
きっと、3 または、 5 ですね。

And じゃなく、 Or です。

質問した人からのコメント

2010/10/28 11:14:20

抱きしめる ありがとうございました。たしかに、ANDはおかしいです。
ただし、orで試してもずれています。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる