[[20171011134146]] 『指示してないのに反応します』(でん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『指示してないのに反応します』(でん)

こんにちは。
初心者です。
よろしくお願いします。
Excel 2010を使っています。

集計表を作っているのですが、31日までない月は不要な曜日と日付をclearcontentsしたいと思っています。
A2セルに月を、行6に日付、行7に曜日を入れています。

    If Range("A2").Value = "2" Then
            Range("AJ6:AL7").ClearContents
        ElseIf Range("A2").Value = "4" Or "6" Or "9" Or "11" Then
            Range("AL6:AL7").ClearContents
    End If

こんなコードを書きましたが、A2セルが「3」でも「10」でもAL6とAL7が消えてしまいます。

ちなみにA2が「2」のときは、ちゃんと29日以降の3日間が消えます。

何が悪いのかわかりません。
ご指導下さい。
よろしくお願いします。

でん

< 使用 Excel:Excel2010、使用 OS:Windows10 >


[[20170928111255]]

カレンダーならこんな感じ
でもいいと思う

(ドラえもん) 2017/10/11(水) 14:42


ご提示のコードの中には、3や10の場合に消す処理はありませんね。 31日まである月かどうかの判定等もあるでしょうし、どう見てもこれが全てではないのですが、コード全部貼ってもらわないと、さっぱりです。(どこがおかしいか判らない、という方の多くは、肝心の間違っている箇所のコードを書いてくれなかったりします…)

また、ステップ実行してみて、思っていない箇所で消去していないか、デバッグしてみてください。
(???) 2017/10/11(水) 14:55


 >        ElseIf Range("A2").Value = "4" Or "6" Or "9" Or "11" Then

          ElseIf Range("A2").Value = "4" Or Range("A2").Value = "6" Or Range("A2").Value = ....
 というように変える必要があります。
(seiya) 2017/10/11(水) 15:01

あー、なるほど! 数字だけORしているせいですね。私は納得。
(???) 2017/10/11(水) 15:35

 質問と直接関係無いんですが、
 これ閏年は問題なんじゃ無いですか?

(sy) 2017/10/12(木) 07:53


皆様ありがとうございます。

???様、色々を省いてこのコードだけをテストしてもダメだったので相談させて頂きました。

saiya様、ありがとうございます!
そうです、そのとおりです。
以前も一度やって相当悩んだものですが、久しぶりで忘れておりました。
助かりました。
本当にありがとうございました。

sy様、閏年は手作業で直せばいいかな、と。
使う人がそんなにいないので、我慢してもらいます。

またよろしくお願い致します。
(でん) 2017/10/12(木) 13:15


seiya様、申し訳ありません。
お名前を間違えてしまいました!
(でん) 2017/10/12(木) 13:17

 もう見てないだろうけど

 Select Case Range("A2").Value
     Case 2: Range("AJ6:AL7").ClearContents
     Case 4, 6, 9, 11: Range("AL6:AL7").ClearContents
 End Select

 なんて方法も。
(bi) 2017/10/12(木) 13:29

bi様
ありがとうございます!
とてもシンプルで素敵なコードです。
私は覚えたものしか使わない、進歩のない人なのでダメですねー。
カッコいいので使わせて頂きます。
ありがとうございました。
(でん) 2017/10/12(木) 15:27

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.