いつも大変お世話になっています。
お知恵を貸していただければと思い質問させていただきます。
なお、マクロ作成についてはほぼ初心者です。
マクロ上で変数にもたせた日付が、
エクセルシート上にある「祝日マスタ」シートの中に
含まれているかをチェックするマクロを組んだところ、
変数には「2018/1/23」と代入されたとき、
2018年1月23日は祝日ではないため、「祝日マスタ」シートには
存在しないのですが、実際には祝日と見なされてしまいます。
不思議に思いいろいろ調査したところ、
同じ「祝日マスタ」シートに存在する「2018/11/23(勤労感謝の日)」が入力された、
セルを消したところ、マクロを動かすと祝日とみなされなくなりました。
さらに、「2018/2/23」についても「祝日マスタ」には存在しないものの
祝日とみなされてしまいましたが、
同様に「2018/12/23(天皇誕生日)」が入力されたセルを消すと、
祝日とみなされなくなりました。
どうしてこのような現象が起きてしまうのでしょうか。
また、回避策についてご教授願えればと思います。
どうぞよろしくお願いいたします。
<参考>下記のような記述をしてます(抜粋)
Dim Hiduke As Date
Dim FoundCell As Range
Dim flg as integer
Set FoundCell = ThisWorkbook.Worksheets("祝日マスタ").Range("A:A").Find(What:=Hiduke, LookIn:=xlValues)
If FoundCell Is Nothing Then
flg = 0 '祝日ではない
Else
flg = 1 '祝日である
End If
※「祝日マスタ」シートにはA列に祝日が並べられています。(日付型)
<環境等>
Windows7 Home Edition
Microsoft Excel 2010
No.1ベストアンサー
- 回答日時:
重要な所を抜粋されているので検証は出来ませんが。
Dim Hiduke As Date
の後に変数:Hiduke にどのように値をセットしているのか解りませんが、
仮に文字列を日付型に変換しているとしたら、
Hiduke = CDate("2018/11/10")
~ .Find(What:=Hiduke, LookIn:=xlFormulas, LookAt:=xlWhole)
こんな感じになるかもですね。
セルの値を変数に代入しているのなら、上の代入式は無視して下さい。
あとFind関数ではなくFindメソッドですね。
日付検索は結構昔から悩まれているみたいで、その時のメモを見て回答しました。
今の物に使えなかったらごめんなさい。
迅速なご回答ありがとうございました。
教えていただきました方法を試したところ、
無事に正しく動作するようになりました。
また、関数ではなくメソッドという呼び方
なのは知りませんでした。覚えておきます。
重ね重ね本当にありがとうございました。
No.2
- 回答日時:
こんにちは!
VBAでシリアル値を検索する場合は注意が必要です。
セルの表示形式等によって検索できない場合があります。
お使いのバージョンがExcel2010というコトなので、
>・・・Find(What:=DateValue(Hiduke), LookIn:=xlFormulas, lookat:=xlWhole)
としてみてはどうでしょうか?
表示形式等に左右されず判断できると思います。
※ 余計なお世話かもしれませんが、
「flg」 の宣言の型は Boolean型がいいかもしれません。
(TRUEかFALSEのどちらかが返ります)m(_ _)m
迅速なご対応ありがとうございました。
教えていただきました方法で無事に動作できました。
フラグについては今後Boolean型を使っていこうと思います。
重ね重ね本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) 『シフト表自動化の作成について』 1 2022/06/02 00:45
- Excel(エクセル) エクセル 全自動シフト表の祝日シフト表示を消すには? 3 2022/04/23 16:43
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
金土祝前って、日曜は入るんで...
-
本日(5/6)は祝日の振替休日です...
-
土日祝日がお仕事の方教えて下...
-
父母の日はただの日曜
-
エクセル 祝日の関数を教えて...
-
Outlook2002の予定表に2007年度...
-
九月のカレンダーの祭日を黒く...
-
ゴールドジムのウィークエンド...
-
2019年11月2日、3日、4日三日間...
-
土日祝以外1で表す
-
国旗掲揚日を教えてください
-
祝日にゆうちょ銀行の貯金窓口...
-
土曜は平日?
-
祝日はどうやって決まる?
-
ゴールデンウィークに、スパワ...
-
また今度の機会にお願いします...
-
中々治療が上手くいかずいつ ど...
-
ディズニーについて質問です。 ...
-
今週からゴールデンウィークに...
-
ペーパードライバーで、友達の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
案内状に記載する日付の書き方
-
金土祝前って、日曜は入るんで...
-
土曜は平日?
-
ゴールドジムのウィークエンド...
-
2024年のGoogleカレンダーについて
-
Excel 2ヶ月後の日付(土日祝...
-
GW以降と6月に祝日がないことを...
-
祝日って、ごみ収集もお休みな...
-
父母の日はただの日曜
-
GWって、祝日になりますか? 会...
-
土日祝日以外の万年カレンダー...
-
EXCEL関数(土日祝日自動色分け)
-
電子カレンダーで日本の祝日に...
-
国旗掲揚日を教えてください
-
5/6日は振替休日になっています...
-
11月23日木曜・勤労感謝の日(...
-
Excel2016 特定の曜日のみ表示...
-
いいかげん
-
DELLのデスクトップPC (Optiple...
-
Find関数で日付を検索した時に...
おすすめ情報