
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
6月の共テ模試が6割しか取れな...
-
私大共通テスト利用でB判定って...
-
埼玉大学経済学部のオススメの...
-
第一志望の国公立大学がC判定で...
-
大学出願を信州大の物質科学か...
-
7月に受けた模試でC判定だった...
-
予備校にも通わず模試判定も受...
-
共通テストで大失敗しました。
-
何故ランキング等でAの次がS...
-
河合塾で浪人してる者ですが、...
-
前期落ちてしまいました
-
高3
-
明治大学の全学部は英検利用で...
-
静岡大学について
-
進研模試の判定について
-
模試の判定はあてになる?
-
偏差値52.5の私立大学に落ちて...
-
Excelによる土日と祝祭日の算出...
-
受験今のシーズンbよりのc判定...
-
高2で結構難易度高めの国公立志...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
6月の共テ模試が6割しか取れな...
-
ある病原菌を検出する検査法に...
-
模試で科目不足の判定になって...
-
模試の結果が返って来て教科の...
-
模擬試験で、志望校が学部内で5...
-
九大機械系の前期と九工大後期...
-
高3
-
VBA マウスクリックとキーボー...
-
河合模試である大学がB判定でし...
-
中身がFALSEなのにTRUEになる
-
11月の時点でC判定での合格はむ...
-
私大共通テスト利用でB判定って...
-
明治大学の全学部は英検利用で...
-
奈良女子大か大阪教育大か
-
北海道大学から弘前大学に落と...
-
7月に受けた模試でC判定だった...
-
大学出願を信州大の物質科学か...
-
高3の進研模試について質問です...
-
模試をすっぽかした
-
埼玉大学経済学部のオススメの...
おすすめ情報