• ベストアンサー

定数にFullNameは使えないのですか?

アクセスで、 Sub aaa() Const sPath As String = CurrentProject.FullName MsgBox sPath End Sub をすると、「定数式が必要です。」問われるのですが、上記のように定数に自身のfaiある名を入れたいのですが、無理なのでしょうか?

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

  • ベストアンサー
回答No.1

定数には固定の値しか入れられません。 CurrentProject.FullName はその都度変更される可能性がありますので定数になりません。 変数に代入して使用するようします。 Sub aaa() Dim sPath As String sPath = CurrentProject.FullName MsgBox sPath End Sub

sdf654we
質問者

お礼

その都度変更される値を定数に設定することは不可能なようですね。 FullNameを使う場合は、 変数に入れるようにします。ありがとうございました。

関連するQ&A

  • 定数と変数、どちらを使った方がいいか?

    vbaの勉強中なので教えてください。 Sub 定数を使った場合() Const moji = "あああ" MsgBox moji End Sub Sub 変数を使った場合() Dim moji As String moji = "あああ" MsgBox moji End Sub 二つのサンプルは答えは一緒なのですが プログラムを作るにおいてどちらを使った方が良いのでしょうか? このサンプルならどっちでもいいのでしょうか?

  • 定数の宣言ってdimは使えないのですか?

    VBAです。 標準モジュールに Option Explicit Public Const フォルダ名 As String = "新しいフォルダー" Sub aaaa() End Sub はできるのですが、 Option Explicit dim Const フォルダ名 As String = "新しいフォルダー" Sub aaaa() End Sub は、エラーになってしまいます。 Option Explicit Sub aaaa() dim Const フォルダ名 As String = "新しいフォルダー" End Sub もダメみたいです。 定数を使うときは、必ずPublicで宣言しなけらばいけないのでしょうか?

  • Const に dim は使えない?

    標準モジュールに ''''''''''''''''''''''''''''''''''''''''''' Dim Const moji As String = "a" Sub test1() MsgBox moji End Sub Sub test2() Dim Const moji As String = "a" MsgBox moji End Sub ''''''''''''''''''''''''''''''''''''''''''' とするとエラーになりますが ''''''''''''''''''''''''''''''''''''''''''' Public Const moji As String = "a" Sub test3() MsgBox moji End Sub ''''''''''''''''''''''''''''''''''''''''''' なら大丈夫です。 Const に対してdimは使えないのでしょうか?

  • VBAの定数の使い方で、計算値を定数に入れることは可能ですか。

    VBAの定数の使い方で、計算値を定数に入れることは可能ですか。 例えば、モジュール先頭に、 Option Explicit Const TEISU_COUNT As Integer = Application.WorksheetFunction.CountA(Range("A1:IV1")) と書き、その下に、 Sub TestTeisu()   MsgBox TEISU_COUNT   '↑定数式が必要です、のようなエラーが出ます。なぜでしょう?   'エラー時、「.CountA」にスポットがあたります。   'つまり、ここがダメということでしょうか?やはり、この点が動的だからでしょうか? End Sub と書いて、実行。 結果は、上述の通り、エラーとなります。 やはり、定数値には、固定的な数値(上記例では、Integer)や文字列を入れるべきなのでしょうか。 定数に入れることのできる値の注意事項について、 どなたかアドバイスして頂けますでしょうか。 宜しくお願い致します。

  • 定数配列の書き方

    VB6で定数を定義する場合は次の通りです。   Const strTest As String = "TEST" では、定数配列を定義する場合はどのように書けばいいのでしょう?   Const astrTest() As String = Array("A", "B", "C")      '→NG   Const astrTest(0 To 2) As String = Array("A", "B", "C")  '→NG いろいろな書き方を試して見たのですが、上記のような書き方でも文法的にエラーになるようです。 どのように書けばいいのでしょうか? それとも定数を配列で定義するのは無理なんでしょうか?

  • VBAについて質問させて下さい。

    VBAについて質問させて下さい。 Sub Exsample() Dim a As String a = "aaa" MsgBox Ketugou(a) End Sub Function Ketugou(x As String) Ketugou = x End Function このサンプルコードについて質問が2つあります。 【質問1】 なぜ x=a、 と言う式はないのに xにが代入されるのでしょうか? 【質問2】 なぜ MsgBox Ketugou(a) では aaa(aaa) とならないのでしょうか? a = "aaa" Ketugou= "aaa" になってるはずですが。 よろしくお願い致します。

  • フルパスを取得するにはどうすればいいですか

    access2003です 自身のファイル名を取得するのは Sub test() MsgBox CurrentProject.Name End Sub で出来ますが フルパスを取得するにはどうすればいいですか? よろしくお願い致します。

  • 【VBA】 動的な変数(定数)の指定

    こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windowsXP SP3 Office=Excel2003(11.8347.8403) SP3 タイトルが正確にやりたいことを表現できているのかいささか疑問なので補足します。 Sub test1()  Dim oDict As Object  Dim i As String  Const Dest01 As String = "C:\aaa\"  i = "01"  Set oDict = CreateObject("Scripting.Dictionary")  oDict(i) = "Dest" & i  MsgBox oDict(i)  Set oDict = Nothing End Sub 上記のようなコードで、msgboxで ”C:\aaa\”という文字列を返してほしいのですが、"Dest01"の文字列が返ってきます。 上記ではDest01しか指定していませんが、実際のコードではDest80ぐらいまで定数があり、いずれの定数のフォルダも共通性がない状態になっています。 これをFor next文でiをまわして、Dest01から順番に保存していきたい。というのがやりたいことです。 上記のような場合、どのようなコードが適していますでしょうか。 Dictionaryオブジェクトについては、必ず使いたいわけではありません。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 参照渡し(ByRef)

    参照渡しについてわからないのですが Option Explicit Dim buf As String Sub Sample1() buf = "aaa" Call Sample2("bbb") MsgBox buf End Sub Sub Sample2(ByRef a As String) a = "ccc" End Sub を実行すると、msgboxには、aaaが表示されますが、 途中のbbb,cccはどんな意味があるのでしょうか? また、 Sub Sample2(ByRef a As String) を Sub Sample2(a As String) にしてもコードは問題なく動きますが、 ByRefは役に立ってるのですか?

  • VBA 関数(Function) カッコの後のデータ型は必要?

    Function あ() あ = "あああ" End Function Sub test3() MsgBox あ End Sub と、 Function あ() As String あ = "あああ" End Function Sub test3() MsgBox あ End Sub は同じ動作をするのですがやはり「As String」をつけたほうがいいのですか? ウォッチウインドウで確認すると 「As String」がないほうは「Variant/ String」型ですが あるほうは「String」型のみです。

専門家に質問してみよう