dポイントプレゼントキャンペーン実施中!

たびたびお世話になっています。
今回はVBAでの基本的な関数であろうFormat関数について質問させて頂きます。

現在 WindowsME / EXCEL2002 でマクロ・VBAを使用した日報を製作しています。
その中で、設定欄で入力した日付をソース内でFormat関数で形式を変えて表示させようとしているのですが、EXCEL97の環境に持っていくとエラーが出て使用できません。
EXCEL97で使えないのかと思いましたが、同じ環境(同じPC・同じEXCEL)で新規ファイルを作成し、同じ表記をすると普通にFormat関数が使用できます。
これはいったい何がまずくてエラーが出てしまうのでしょうか。

一応ソースは以下の通りです。

Private Sub cmd_run_Click()

Dim strMonth As String
Dim intOkCancel As Integer

'' 処理実行確認
strMonth = Worksheets("設定").Range("C12").Value
strMonth = Format(strMonth, "yyyy年m月")

intOkCancel = MsgBox(strMonth & "の日報集計を開始します。よろしいですか?", vbOKCancel, "集計開始")

If intOkCancel = vbCancel Then
MsgBox "集計を中止します", vbOKOnly, "集計中止"
Exit Do
End If

''集計
Call S_Run

End Sub

出るエラーは「コンパイルエラー:プロジェクトまたはライブラリが見つかりません」です。

簡単なことなのかも知れませんが、これでは他の方に使って頂けなくて困っています。
お知恵をお貸し下さい。

A 回答 (5件)

「参照設定」の問題です。


97側のエクセルでVBEを起動しツール->参照設定で参照不可を探して、まずはチェックを外してみて実行してみてください。
    • good
    • 0
この回答へのお礼

ご返答有難うございます。
他の方もお教え下さった通り、参照設定がおかしくなっていたようです。
現在なぜか使っていないはずなのにチェックがはずせませんが、原因がわかればなんとかなると思います。
お答え有難うございました。

お礼日時:2004/12/10 16:45

ライブラリー名はわかりますか?

    • good
    • 0
この回答へのお礼

お気にかけていただきありがとうございました。
お礼が遅くなって申し訳ありませんでした。
ライブラリ名なども解らずじまいで、結局、データなどを新しいワークブックにコピーして作業を続けてしまいました。
せっかくお答えいただいたのに恩を仇で返すことになってしまい申し訳ございません。
今後はこのようなことがないように努めたいと思います。
また何かございましたらよろしくお願い致します。

お礼日時:2005/04/19 17:32

AloneAgain さんが回答されたとおり、参照設定が原因でしょう。



>同じ環境(同じPC・同じEXCEL)で新規ファイルを作成し、同じ表記をすると
>普通にFormat関数が使用できます

ここまでされているのだから、あとは、「OKなファイル」と「NGのファイル」の参照設定を比較してみれば、解決できるかと思います。
    • good
    • 0
この回答へのお礼

ご返答有難うございます。
確かにお教えいただいた通り、「参照不可」の参照設定ライブラリが2つもありました!
特別使用した記憶がなかったため、こんなところで引っかかるとは思いもせず・・・。
まだ削除には時間がかかるようですが、手がかりも頂きましたしこれからなんとかしていこうと思います。
的確なご返答ありがとうございました。

お礼日時:2004/12/10 16:44

こんにちは。



「ライブラリが見つかりません」というエラーなら参照設定の問題かと思うのですが・・

VisualBasicEditorを開いて、メニュー「ツール」-「参照設定」を見てください。

"参照不可" と表示されているものがありませんか?
あれば、そのチェックをはずして確認してください。


↓の参考URLはOFFICE2000のものですが、同じエラーに関する記述です。

参考URL:http://support.microsoft.com/default.aspx?scid=k …
    • good
    • 0
この回答へのお礼

早速のご返答有難うございます。
参照設定確認して見ました。
相しましたら、確かに「参照不可」のものが2つも表示されていました。
いったいいつからこんなものが・・・とびっくりしています。
原因はこれだとはわかったのですが、特別なコントロールを使用しているわけでもないのに(使用しているのはチェックボックスとコマンドボタンのみです)「使用中のため削除できません」とメッセージが出て削除できませんでした。

ですが、原因さえわかれば何とかなると思います。
参考のURLまで探してくださいまして、丁寧な説明本当に有難うございました。
助かりました!

お礼日時:2004/12/10 16:41

Dim strMonth As String → Dim strMonth As Date


に変更されてはいかがでしょうか?

この回答への補足

早速のご返答ありがとうございます。
データ型はStringからDateに変えてみましたが、エラー内容に変わりはありませんでした。
実際新規ブックを作成した場合はString型でも問題無く動きます。
エラーはこのプロシージャに入る前(その行にたどり着く前)に出るのでどうやら実際のデータ型などは関係ないようです…。
せっかくお答え頂きましたのに申し訳ありません。


あと、うっかりしてましたが、
If intOkCancel = vbCancel Then
MsgBox "集計を中止します", vbOKOnly, "集計中止"
Exit Do
End If
は Exit Sub が正しいですね.ここに移すときのミスです;これによるエラーではないですので改めてここで書かせていただきます。

補足日時:2004/12/10 16:02
    • good
    • 0
この回答へのお礼

今回はちょっと教えていただいたこととは違うことが原因でしたが、なんとか解決できそうです。
すぐのご返答うれしかったです。お心砕いていただきましてありがとうございました!

お礼日時:2004/12/10 16:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A