いつもお世話になっております。
早速ですが、EoMonthを使って今月末日を取得したいのですが
実行するとコンパイルエラーになります。
エラーメッセージは
SubまたはFunctionが定義されていません。
です。
タイトルにも記述したようにアドインの
「分析ツール」にチェックを入れても同様の
エラーが出ます。
何かほかに設定しなくてはいけないのでしょうか?
また現在は以下の方法で取得しようとしていますが、他に
取得方法がございましたら教えてください。
Dim iLastDay As Integer
iLastDay = Day(EoMonth(textBox1.Text, 0))
Excel2007を使用しています。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
既に回答は出てますが。
。。一行で書くと
'------------------------------------------
iLastDay = Day(DateSerial(Year(TextBox1.Text), Month(TextBox1.Text) + 1, 0))
'-------------------------------------------
TextBox1の値は単なる文字列であるにも拘わらず上記コードが上手くいくのは
それをVBA側で日付として処理してくれるからです。
当方なら確実を期すためにVBA任せにせずこちら側でそれらを処理させます。
'-------------------------------------------
Dim myDate As Date
Dim myLastDate As Date
Dim iLastDay As Integer
myDate = DateValue(TextBox1.Text)
myLastDate = DateSerial(Year(myDate), Month(myDate) + 1, 0)
iLastDay = Day(myLastDate)
MsgBox myDate & vbLf & myLastDate & vbLf & iLastDay
'----------------------------------------------
実際にはエラー処理が必要であることは言うまでもありません。
No.2
- 回答日時:
ほんとに少し勉強して使っているのかな。
(1)エクセルのワークシートの関数とVBAでそれを使うのとは別。
VBAでは使えない関数もある。
関数の解説本によると、VBAで使えるかどうか、注記した本も見たことが有る。WEBでも全一覧はないかも。
(2)つかえる場合でも Application.WorksheetFunction.を関数名の前につける。
ーー
Sub test01()
MsgBox Date
MsgBox DateSerial(Year(Date), Month(Date) + 1, 0)
MsgBox Application.WorksheetFunction.eomonth(Date, 0)
End Sub
でやると、最後の行でエラーになる。EoMonthは使えない部類では。
今月末などでは、上記第2行目の方法が定石的に使われると思う。
ーーー
GOOGLEで「VBA eomonth」で照会すると、記事が出るじゃない。見てから質問してますか。
第1記事で
http://oshiete1.goo.ne.jp/qa3164570.html?ans_cou …
など
「EOMONTHはVBAでは使えないので別な方法でやります」と出ています。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Visual Basic(VBA) VBAで列を削除 3 2023/02/01 11:00
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
On ErrorでエラーNoが0
-
文字列内で括弧を使うには
-
VBAでfunctionを利用しようとし...
-
お助けください!VBAのファイル...
-
実行時エラー 438 の解決策をお...
-
オブジェクト型の変数にフォー...
-
String""から型'Double'への変...
-
フランスの生年月日(jj/mm/aaaa)
-
マクロで"#N/A"のエラー行を削...
-
Filter関数を用いた結果、何も...
-
ACCESS2007 VBA 「INSERT INTO...
-
VBでSQL文のUPDATE構文を使った...
-
VBA GoTo Error 処理が上手くい...
-
VB.net 重複チェックがしたいです
-
エクセル 足し算引き算で 空...
-
【VB.NET】 パワポ操作を非表示で
-
コンボボックスの特定項目だけ...
-
実行時エラー'-2147467259(8000...
-
Excel ピボットテーブル平均・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
On ErrorでエラーNoが0
-
VBAでfunctionを利用しようとし...
-
マクロで"#N/A"のエラー行を削...
-
VBA データ(特定値)のある最...
-
実行時エラー 438 の解決策をお...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
エクセルVBA 「On Error GoTo...
-
【VBA】ワークブックを開く時に...
-
マクロの「SaveAs」でエラーが...
-
ACCESSで値を代入できないとは?
-
実行時エラー'-2147467259(8000...
-
インポート時のエラー「データ...
-
【VB.NET】 パワポ操作を非表示で
-
Filter関数を用いた結果、何も...
-
UBoundに配列がありませんとエ...
-
Excel vbaについての質問
-
メールの件名のセットでエラー...
おすすめ情報