=================================================
Option Explicit
Sub Test()
Dim strDate As String
strDate = Format(Date, "yymmdd")
MsgBox strDate
End Sub
=================================================
<エラーメッセージ>
「コンパイルエラー
引数の数が一致していません。または不正なプロパティを指定しています。」
Format() 関数の引数は間違っていません。
別のブックで標準モジュールを作成し、全く同じコードを実行させたところ、正常に動作しました。
あるブックでのみこの現象が発生します。
ということは、このコード自体には問題はないと思うのですが…。
同Project内でFormat() というSub, Function, 変数 等は定義していません。
どのような状況下でこの現象が発生するのか、ご教授いただければと思います。
WinXP
Excel2000
です。よろしくお願い致します。
特定のブックでエラーが発生するということですと、VBAの中間ファイルが破損している可能性があります。
1.ソースコードをエクスポート
2.ブックからソースを解放(削除)
3.ブックを保存
4.エクスポートしたソースをインポート
上記の手順で、中間ファイルが再生成されますので、修正されるかもしれません。
はずしていたらすみません。
VBAのエディタを起動します。
メニューから[ツール]-[参照設定]を開きます。
「参照不可」になっている項目があり、チェックオンされていたら、オフにしてください。
確認しましたが、違うようです。
ありがとうございました。
外してるかも知れませんが、昔のEXCELでは分をm、月をMとして区別してたんではなかったでしょうか?
strDate = Format(Date, "yymmdd")
↓
strDate = Format(Date, "yyMMdd")
上記のように、mをMに変更してみたら、どうでしょう?
質問文にも書きましたがコード自体は間違っていないように思うのです。
また、それですとエラーその種類も違います。
念のため確認しましたが、やはり同じエラーが発生しました。
ご回答ありがとうございました。
質問にあるものだけで実行してみたところ、何のエラーも出ませんでした。
質問内容以外に記述している何か 別のものは ありませんか?
それが 原因かもしれません。
ソースを分解し、少しずつテストしてみてください。
そうすれば、他のソースとの因果関係が判明するかもしれません。
時間がかかったためレスが遅くなってしまいました。すみません。
他ソースとの因果関係は発見できませんでした。
ありがとうございました~。
Format関数を、どこかで自分で定義していませんか。
例えば、以下のコードは同様のエラーを返します。
Sub Test() Dim strDate As String strDate = Format(Date, "yymmdd") MsgBox strDate End Sub Sub Format() End Sub
どこで定義しているかは、VBE内でコードを表示した状態で、
"Format"の文字の上で右クリック=>[定義]
で表示出来ます。
正常ならば、オブジェクトブラウザが開いて、VBA.StringsのメンバとしてFormat関数が表示されます。
確認してみてください。
質問文にも書きましたがFormat() というSub, Function, 変数 等は定義していません。
ただF2以外のチェック方法を知らなかったので勉強になりました。
コードつきで説明くださりありがとうございます。
特定のブックでエラーが発生するということですと、VBAの中間ファイルが破損している可能性があります。
1.ソースコードをエクスポート
2.ブックからソースを解放(削除)
3.ブックを保存
4.エクスポートしたソースをインポート
上記の手順で、中間ファイルが再生成されますので、修正されるかもしれません。
解決出来ました!
どうもありがとうございました。
原因は中間ファイルが壊れていた、ということで間違いない…のですよね?
今後は気をつけるように致します。
これで質問を終了します。
お答えくださった皆様、ありがとうございました。
解決出来ました!
どうもありがとうございました。
原因は中間ファイルが壊れていた、ということで間違いない…のですよね?
今後は気をつけるように致します。
これで質問を終了します。
お答えくださった皆様、ありがとうございました。