ID非公開さん
2022/5/11 19:29
2回答
お世話になっております。 VBAについてご質問させてください。 B列6行目以降に日付(2022/5/11のような)が入力されています。 基本的には毎日(平日のみ)が並んでいますが、たまに日付の記
お世話になっております。 VBAについてご質問させてください。 B列6行目以降に日付(2022/5/11のような)が入力されています。 基本的には毎日(平日のみ)が並んでいますが、たまに日付の記 入漏れがあります。 この記入漏れしている日をメッセージで表示する処理をマクロでしたいですが、コードの検討が付かなかった為、ご教授頂けないでしょうか? ・マクロ実行後、ユーザーフォームを表示 ・ユーザーフォームにユーザーが任意で日付を入力 ・入力された日付の期間で土日を除いて平日のみ、記入漏れしていないかチェックする ・記入漏れしていた場合、メッセージで表示する ※マクロ実行し、日付入力するユーザーフォームを出すことはできたのですが、そこから条件を設定することができなかったです。。。
Visual Basic | Excel・72閲覧
ベストアンサー
Excel内に祝日情報が無いので平日のみという判断が難しいです。 どうしてもがんばるなら以下を参考にして情報を入手するとか・・・ 参考資料:https://excel-vba.work/2021/06/13/%E3%80%90vba%E3%80%91%E5%86%85%E9%96%A3%E5%BA%9C%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%88%E3%81%8B%E3%82%89%E7%A5%9D%E6%97%A5%E3%81%AE%E4%B8%80%E8%A6%A7%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/
1人がナイス!しています
平日が祝日を考慮しなくて良いという事であれば以下のようなプログラムの仕方が良いかなと Dim 調査対象セル As Range Set 調査対象セル = Range("B6") For 調査日 = 調査開始日 To 調査終了日 If Not (Weekday(調査日) = 1 Or Weekday(調査日) = 7) Then If 調査対象セル.Value <> 調査日 Then MsgBox 調査日 & "が入力されていません" Else Set 調査対象セル = 調査対象セル.Offset(1, 0) End If End If Next 調査日
質問者からのお礼コメント
思い通りの動作をさせることができました。 ありがとうございました。
お礼日時:5/17 22:46