• ベストアンサー

VBA Date が実行できない。

Sub test() MsgBox Date End Sub を実行すると 「コンパイルエラー: プロジェクトまたはライブラリが見つかりません。」 というエラーが出てしまいます。 何が間違っているのでしょうか? 先日まで実行できたのにいきなりできなくなってしまいました。 どうすればいいのでしょうか? よろしくお願いします。

noname#150256
noname#150256

質問者が選んだベストアンサー

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

diashunさんのレスのとおり、参照不可の可能性が強いですね。 昨日、他のサイトのQ&Aで回答者がブックを添付していたものを DLし実行したら同じエラーになったものがありました。 参照設定を確認したら、 CalenderControl に参照不可が付いてました。 自分で作ったものではなくもらったブックでしたら参照不可 でエラーになっている可能性が強いです。

noname#150256
質問者

お礼

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

その他の回答 (1)

  • diashun
  • ベストアンサー率38% (94/244)
回答No.1

diashunです。 あるマシンでは正常に動くマクロでも別の環境(マシン)実行しようとすると、コンパイルエラーが発生することがありますが、この場合「参照設定」が関わっていることがあります。 Visual Basic Editor を起動し、メニュー「ツール」]→「参照設定」で参照不可になっている項目がないか確認し、不要な参照設定があれば設定を解除する。必要なライブラリが参照不可になっている場合は、そのライブラリのソフトウェアが正しくインストールされているか確認して下さい。

noname#150256
質問者

お礼

確認してみます。ご回答ありがとうございます。

関連するQ&A

  • VBA エクセル 2003作成→2007実行について

    コマンドボタンを押すとソルバーが実行されるものを2003で作成したのですが、2007で実行しようとすると、 コンパイルエラー プロジェクトまたはライブラリが見つかりません。 と表示されて実行できません。 ご教授お願いします。 Private Sub CommandButton5_Click() SolverOk SetCell:="$E$176", MaxMinVal:=2, ValueOf:="0", ByChange:= _ "$D$173:$I$173,$H$167,$F$129:$J$129,$G$130:$J$130,$H$131:$J$131,$I$132:$J$132,$J$133" SolverSolve End Sub

  • プロシージャをそのまま実行する方法

    DatabaseB.accdbから、DatabaseA.accdbにあるプロシージャをそのまま実行する方法をググってたら http://bekkoame.okwave.jp/qa8618183.html にたどり着いたのですがうまくできません。 DatabaseB.accdb に Sub test() test1 test2 "Hello World" MsgBox test3(123, 456) End Sub DatabaseA.accdb に Sub test1() MsgBox "Hello World!" End Sub Sub test2(arg As String) MsgBox arg End Sub Function test3(arg1 As Double, arg2 As Double) As Double test3 = arg1 + arg2 End Function を張り付けて、 DatabaseB.accdbのtestを実行したところ、 test1の部分でコンパイルエラーになります。 mitarashiさんのご回答の 「ちなみに参照設定先は動的に変更できる様ですね(試してありませんが) ReferenceオブジェクトのAddFromFileで参照設定先のフルパスを変更。更新の場合は予めRemove後実行。」 の意味がさっぱり分からず、そのため実行できないのだと思いますが 何が間違ってますか? リンク先のaccessclubの話もよくわかりませんでした。

  • ただ、今日の日付を求めたいときはどちらのVBAコー

    VBA初心者のため教えてほしいのですが ただ、今日の日付を求めたいときはどちらのVBAコードを使えばいいですか? Sub test1() MsgBox DateValue(Date) End Sub Sub test2() MsgBox Date End Sub です。 ご教授よろしくお願いします。

  • エクセルのVBAのエラー

    早速ですが、よろしくお願い致します。 単純なマクロですが、下記の記述は実行すると、ただメッセージボックスが表示される…つもりです。 タイトルが「確認メッセージ」、文字は「完了しました」、ボタンは「OK」のみです。 しかし、エラーになってしまいます。(コンパイルエラー 構文エラー) Sub test()   MsgBox ("完了しました",vbOKOnly,"確認メッセージ") End Sub どこが間違っているのでしょうか?? ご教授をお願い致します。

  • (VBA)フィルタがかかっているかどうかの判断方法

    フィルタがかかっているかどうかを取得したいのですが フィルタがかかっているシートにて Sub test1() If ActiveSheet.FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test1の1() If ActiveSheet.FilterMode = True Then MsgBox "フィルタがかかってます" End If End Sub を実行しても"フィルタがかかってます"は表示されません。 Sub test2() If Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test3() If ActiveSheet.Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub こちらは オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) になってしまいます。 フィルタがかかっているか調べる方法はありますか? よろしくお願いします。

  • access vbaで、変数を含んだプロシージャ

    access vbaで、変数を含んだプロシージャを実行したい。 【やりたい事】 下記の矢印の部分で「msg1」「msg2」「msg3」を実行したい。 Public Sub test() For i = 1 To 3 msg & i ←ここを、どのように記述すればいいのでしょうか? Next End Sub Public Sub msg1() MsgBox "ok1" End Sub Public Sub msg2() MsgBox "ok2" End Sub PublicSub msg3() MsgBox "ok3" End Sub よろしくお願いします。

  • VBAの実行時エラー'2522'について

    前任者がAccess2003により作成したデータベースがあります。 CSVデータを取り込む仕組みがあるのですが、下記のエラーが出て困っています。 実行時エラー '2522': このアクションまたはメソッドを実行するには[File Name/ファイル名]引数が必要です。 どうやらVBAによるエラーだと判明しましたが、それ以上はよくわかりません。 以下のような構文になっています。 Option Compare Database ---------- Private Sub CSV取込_Click() TextConv strFileName, "マスター定義", "T_マスター" End Sub ---------- Sub TextConv(strFle, strInp, strTbl) Dim strSQL As String strSQL = "DELETE * FROM " & strTbl If MsgBox("テーブルデータを更新しますか?", 4, "テーブル更新") = vbYes Then CurrentProject.Connection.Execute strSQL DoCmd.TransferText acImportDelim, strInp, strTbl, strFle, True MsgBox "テーブルデータを更新しました" End If End Sub ---------- Private Sub 参照_Click() Dim strFileName As String strFileName = GetFileName() If Len(strFileName) > 0 Then Me.filepath = strFileName Else MsgBox "取込対象ファイルを選択してください! " End If End Sub 以上のようになっています。 デバッグを実行すると「strFle」の値がEmptyになっているのでここだとは思うのですが、どうしたらよいかわかりません。 どなたかお知恵をお貸し願えませんでしょうか。 宜しくお願いします。

  • 【1】と【2】のvbaは同じ意味ですか?

    【1】 Option Explicit Sub test1() Call test2("aaa") End Sub Sub test2(MyStr As String) MsgBox MyStr End Sub 【2】 Option Explicit Dim MyStr As String Sub test1() MyStr = "aaa" Call test2 End Sub Sub test2() MsgBox MyStr End Sub 結果は同じですが、中身が違います。 今後コードを作っていく上で どちらの方式の方が良いのでしょうか?

  • VBAコード実行を中止する方法は?(1プロシージャだけでなく)

    Exit Subは子だけしか中止できないのですね。 子でエラー起きたら、親もその他もまとめて中止することはできないのでしょうか? Sub 子()   Dim i As Integer   For i = 0 To 5     If 3 < i Then       '' ここで親も終了したい     End If     MsgBox i   Next End Sub Sub 親()   子   MsgBox "エラーならここまで来ないで" End Sub

  • プロシージャが実行されたかの有無の判断

    Sub test() ・・・・・ IF ・・・・ then Call マクロ1 End If ・・・・・ ・・・・・ If testと言う名のプロシージャーの中でマクロ1と言うプロシージャーが実行されたなら Then MsgBox "マクロ1は実行されました" End If End Sub ということを実行したいのですがどうすればいいのでしょうか? マクロ1の実行条件自体が複雑でIf ~Thenの中に書ききれないので 実行の有無を値で返したりすることは不可能でしょうか? よろしくお願い致します。

専門家に質問してみよう