たびたびお世話になっています。
今回は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
出るエラーは「コンパイルエラー:プロジェクトまたはライブラリが見つかりません」です。
簡単なことなのかも知れませんが、これでは他の方に使って頂けなくて困っています。
お知恵をお貸し下さい。
No.3
- 回答日時:
AloneAgain さんが回答されたとおり、参照設定が原因でしょう。
>同じ環境(同じPC・同じEXCEL)で新規ファイルを作成し、同じ表記をすると
>普通にFormat関数が使用できます
ここまでされているのだから、あとは、「OKなファイル」と「NGのファイル」の参照設定を比較してみれば、解決できるかと思います。
ご返答有難うございます。
確かにお教えいただいた通り、「参照不可」の参照設定ライブラリが2つもありました!
特別使用した記憶がなかったため、こんなところで引っかかるとは思いもせず・・・。
まだ削除には時間がかかるようですが、手がかりも頂きましたしこれからなんとかしていこうと思います。
的確なご返答ありがとうございました。
No.2
- 回答日時:
こんにちは。
「ライブラリが見つかりません」というエラーなら参照設定の問題かと思うのですが・・
VisualBasicEditorを開いて、メニュー「ツール」-「参照設定」を見てください。
"参照不可" と表示されているものがありませんか?
あれば、そのチェックをはずして確認してください。
↓の参考URLはOFFICE2000のものですが、同じエラーに関する記述です。
参考URL:http://support.microsoft.com/default.aspx?scid=k …
早速のご返答有難うございます。
参照設定確認して見ました。
相しましたら、確かに「参照不可」のものが2つも表示されていました。
いったいいつからこんなものが・・・とびっくりしています。
原因はこれだとはわかったのですが、特別なコントロールを使用しているわけでもないのに(使用しているのはチェックボックスとコマンドボタンのみです)「使用中のため削除できません」とメッセージが出て削除できませんでした。
ですが、原因さえわかれば何とかなると思います。
参考のURLまで探してくださいまして、丁寧な説明本当に有難うございました。
助かりました!
No.1
- 回答日時:
Dim strMonth As String → Dim strMonth As Date
に変更されてはいかがでしょうか?
この回答への補足
早速のご返答ありがとうございます。
データ型はStringからDateに変えてみましたが、エラー内容に変わりはありませんでした。
実際新規ブックを作成した場合はString型でも問題無く動きます。
エラーはこのプロシージャに入る前(その行にたどり着く前)に出るのでどうやら実際のデータ型などは関係ないようです…。
せっかくお答え頂きましたのに申し訳ありません。
あと、うっかりしてましたが、
If intOkCancel = vbCancel Then
MsgBox "集計を中止します", vbOKOnly, "集計中止"
Exit Do
End If
は Exit Sub が正しいですね.ここに移すときのミスです;これによるエラーではないですので改めてここで書かせていただきます。
今回はちょっと教えていただいたこととは違うことが原因でしたが、なんとか解決できそうです。
すぐのご返答うれしかったです。お心砕いていただきましてありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
【Excel VBA】先頭の「0」飛びを埋める方法
Visual Basic(VBA)
-
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
-
4
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
5
Format 関数のバグ?
Visual Basic(VBA)
-
6
vb ver6 でformat文やTrim文の関数が使用できなくなりました。
Visual Basic(VBA)
-
7
VBAで文字列を数値に変換したい
Excel(エクセル)
-
8
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
アクセスのクエリでコンパイルエラーが出ます。
Access(アクセス)
-
11
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
12
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
13
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
14
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
15
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
16
VBA Formatについて 何度入力しなおしても構文エラー"になってしまう"
Visual Basic(VBA)
-
17
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
18
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
19
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
20
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel ファイルに保存すると実...
-
vbaでファイルを開くパス名に変...
-
Access ADOで文字列を日付型へi...
-
シェルスクリプトの実行エラー...
-
VBAでFormat がうまく使えない
-
Debug Assertion Failed?
-
エクセルのワークシートに、文...
-
ASPでoo4o接続ができません。
-
複数フォルダに格納されたファ...
-
POV-Ray についての質問です!
-
NET USE コマンドでエ...
-
VBAで印刷するとエラーになって...
-
WNetAddConnection*()の使い方
-
ホームページビルダーの”全体の...
-
LTspiceのTime Stepエラーについて
-
不明なソフトウェア例外(0xe06...
-
Web.Config 構成ファイルのエラー
-
VBAでon error goto文がきかない
-
jw cadの名前をつけて保存・・...
-
ショートカットファイルが開け...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでFormat がうまく使えない
-
Debug Assertion Failed?
-
NET USE コマンドでエ...
-
Web.Config 構成ファイルのエラー
-
vbaでファイルを開くパス名に変...
-
エラーコード 70 「書き込み...
-
Excel ファイルに保存すると実...
-
POV-Ray についての質問です!
-
シェルスクリプトの実行エラー...
-
Access ADOで文字列を日付型へi...
-
不明なソフトウェア例外(0xe06...
-
ホームページビルダーの”全体の...
-
C# HttpWebRequestのエラーにつ...
-
ASP.NETでのランタイムエラー?...
-
EXCELを開くとエラーがでます。
-
LTspiceのTime Stepエラーについて
-
【ASP】500エラーが発生する【A...
-
VBAで印刷するとエラーになって...
-
ACCESS VBAのOpenForm書き方
-
Eclipseでのエラー検出の機能に...
おすすめ情報