Windows 7 SP1 + Excel 2013での問題です。
ある月が4週あるのか5週あるのかで条件分岐をさせたいので、
Weeknum関数を使って、下記のような判定(実際にはNenとTukiはポップアップを表示させて入力させています)をさせることを考えました。下記の判定の前後のコードまでいちおうコーディングしたうえで、F8キーでデバッグを開始したところ、WeekNumにフォーカスがあたった状態で、
「コンパイルエラー:SubまたはFunctionが定義されていません」と表示され、エラーになります。
この判定に使っている関数(Weeknum)がExcel2013でサポートされていることは
確認済みです(*1)。
なぜこのようなことになるのでしょうか。
≪判定≫
Nen = 2020
Tuki = 1
WeekCnt = WeekNum(DateSerial(Nen, Tuki + 1, 0))
(*1)https://support.office.com/ja-jp/article/weeknum …
No.1ベストアンサー
- 回答日時:
こんにちは
VBAでは、ワークシート関数がそのまま使えるわけではありません。
とは言え、多くの関数が利用できるようにはなっています。
詳細を確認する場合はワークシート関数のリファレンスではなく、VBAのリファレンスを参考にするようにしてください。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
利用する際には、WorksheetFunctionオブジェクトのメソッドとして使うことになります。
具体的には、
WeekCnt = WorksheetFunction.WeekNum(DateSerial(Nen, Tuki + 1, 0))
といった感じです。
No.4
- 回答日時:
>ある月が4週あるのか5週あるのかで条件分岐をさせたいので、
この質問の求める起点が合っているのか分からないのですが、WeekNum関数を使っているところから、このようになるのではないかと思いました。Weekdayでしたら、両方の最初と最後の週の数の曜日の補数を補完して、その差を7で割ると考えました。間違っていたらすみません。
'//
Sub Test1()
Dim Nen As Long, Tuki As Long
Dim Fd As Date '1日
Dim Ld As Date '月末日 Latest Day of Month
Dim WeekCnt As Long First Day of Month
Nen = 2020
Tuki = 2
Fd = DateSerial(Nen, Tuki, 1)
Ld = DateSerial(Nen, Tuki + 1, 0)
With WorksheetFunction
WeekCnt = .WeekNum(Ld) - .WeekNum(Fd) + 1
End With
'' WeekCnt2 = ((Ld + 7 - Weekday(Ld, vbSunday)) - (Fd + 1 - Weekday(Fd, vbSunday)) + 1) / 7 'ワークシート関数を使わない場合
End Sub
No.3
- 回答日時:
直接質問への回答ではありません
カレンダーなどの作成のための週数を求めているのでしょうか?
もしそうならば4週~6週になります。
単純に週数を調べるなら月末の日付を7で割って端数をカットすれば良いような気がします。その場合はうるう年で無い2月のみが4週、他は全て5週です。
No.2
- 回答日時:
単に「WorksheetFunction」を付け忘れているだけでは?
Nen = 2020
Tuki = 1
WeekCnt = WorksheetFunction.WeekNum(DateSerial(Nen, Tuki + 1, 0))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) Excel複数シートから日付と文字を取り出して日付順に並べたいです 6 2022/06/06 13:23
- Windows 10 プロファイルエラーについて 2 2022/12/16 09:31
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
高2で結構難易度高めの国公立志...
-
何故ランキング等でAの次がS...
-
受信メールの件名の直前に SPAM...
-
滋賀大学の夜間主を受けました ...
-
模試で科目不足の判定になって...
-
模試の判定
-
大学受験の合格判定基準(A.B.C....
-
国公立出願について 国公立を出...
-
恒等式と方程式の見分け方が分...
-
Excel2013のVBAでWeeknum関数が...
-
Excelによる土日と祝祭日の算出...
-
ある病原菌を検出する検査法に...
-
至急です! 河合塾の共通テスト...
-
センター模試で国語は現、古、...
-
整数の倍数判定についての質問です
-
リアルガチで東大理Ⅰ:A判定≒理Ⅲ...
-
進研模試のD判定はどのくらいの...
-
私大共通テスト利用でB判定って...
-
高3理系です 横浜国立大学理工...
-
センター利用bよりのc判定でし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
共通テストで大失敗しました。
-
第一志望の国公立大学がC判定で...
-
模試で科目不足の判定になって...
-
武蔵大学の評判を教えて下さい...
-
模試の結果が酷いです
-
ある病原菌を検出する検査法に...
-
明治大学の全学部は英検利用で...
-
高3の進研模試について質問です...
-
北海道大学から弘前大学に落と...
-
恒等式と方程式の見分け方が分...
-
九大機械系の前期と九工大後期...
-
模試の結果が返って来て教科の...
-
至急です! 河合塾の共通テスト...
-
ベネッセ実力判定テストについて
-
阪大実戦、まさかのD判定でした...
-
7月に受けた模試でC判定だった...
-
河合模試である大学がB判定でし...
-
埼玉大学経済学部のオススメの...
-
中身がFALSEなのにTRUEになる
-
奈良女子大か大阪教育大か
おすすめ情報