人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excel VBA で次のようなコードを標準モジュールに記述し実行したところ Format()関数のところでエラーになりました。

=================================================
Option Explicit

Sub Test()
Dim strDate As String

strDate = Format(Date, "yymmdd")
MsgBox strDate
End Sub
=================================================

<エラーメッセージ>
「コンパイルエラー
引数の数が一致していません。または不正なプロパティを指定しています。」

Format() 関数の引数は間違っていません。
別のブックで標準モジュールを作成し、全く同じコードを実行させたところ、正常に動作しました。
あるブックでのみこの現象が発生します。

ということは、このコード自体には問題はないと思うのですが…。
同Project内でFormat() というSub, Function, 変数 等は定義していません。

どのような状況下でこの現象が発生するのか、ご教授いただければと思います。

WinXP
Excel2000
です。よろしくお願い致します。

●質問者: エラベル
●カテゴリ:コンピュータ
✍キーワード:as Excel String sub test
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● llusall
●25ポイント

はずしていたらすみません。


VBAのエディタを起動します。

メニューから[ツール]-[参照設定]を開きます。


「参照不可」になっている項目があり、チェックオンされていたら、オフにしてください。

◎質問者からの返答

確認しましたが、違うようです。

ありがとうございました。


2 ● mitou73
●25ポイント

外してるかも知れませんが、昔のEXCELでは分をm、月をMとして区別してたんではなかったでしょうか?

strDate = Format(Date, "yymmdd")

strDate = Format(Date, "yyMMdd")

上記のように、mをMに変更してみたら、どうでしょう?

◎質問者からの返答

質問文にも書きましたがコード自体は間違っていないように思うのです。

また、それですとエラーその種類も違います。

念のため確認しましたが、やはり同じエラーが発生しました。

ご回答ありがとうございました。


3 ● きゃづみぃ
●25ポイント

質問にあるものだけで実行してみたところ、何のエラーも出ませんでした。

質問内容以外に記述している何か 別のものは ありませんか?

それが 原因かもしれません。

ソースを分解し、少しずつテストしてみてください。

そうすれば、他のソースとの因果関係が判明するかもしれません。

◎質問者からの返答

時間がかかったためレスが遅くなってしまいました。すみません。

他ソースとの因果関係は発見できませんでした。

ありがとうございました?。


4 ● robbie21
●25ポイント

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以外のチェック方法を知らなかったので勉強になりました。

コードつきで説明くださりありがとうございます。


5 ● ota2244
●100ポイント ベストアンサー

特定のブックでエラーが発生するということですと、VBAの中間ファイルが破損している可能性があります。


1.ソースコードをエクスポート

2.ブックからソースを解放(削除)

3.ブックを保存

4.エクスポートしたソースをインポート


上記の手順で、中間ファイルが再生成されますので、修正されるかもしれません。

◎質問者からの返答

解決出来ました!

どうもありがとうございました。


原因は中間ファイルが壊れていた、ということで間違いない…のですよね?

今後は気をつけるように致します。


これで質問を終了します。

お答えくださった皆様、ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ