• ベストアンサー

モジュールレベルで宣言した変数の値について

yu-jiの回答

  • yu-ji
  • ベストアンサー率19% (15/78)
回答No.2

よくわかりませんが 1つのセッション内では変数はクリアされないとか。 VBにセッションとかあるか分からないけど。。。

showcase
質問者

お礼

プロシージャレベルの変数が初期化されているので、モジュールレベルの変数もそうかな?という思い込みがありました。やはり変数は、明示的に初期化するのが、まっとうなプログラムですね。 ありがとうございました。

関連するQ&A

  • 標準モジュールにpublicで宣言するしかない?

    フォームモジュールと標準モジュールで同じ変数を使って値を行き来したい場合、 標準モジュールにpublicで宣言するしかないのでしょうか? 【フォームモジュール】 Private Sub cmd_コマンド0_Click() test = "aaa" Call 標準モジュールtest End Sub 【標準モジュール】 Public test As String Sub 標準モジュールtest() MsgBox test End Sub でいいのですか?

  • Vb.netのグローバル変数の宣言の仕方の質問

    こんばんわ! VB6.0からの移行でVB.net2012に挑戦中なんですが、グローバル変数の宣言の仕方で分からないことがあり質問しに着ました! 内容 モジュール内で public hoge as string="aaa" と宣言するのと モジュール内で public hoge as string と宣言しておいて フォーム起動時に hoge="aaa" と宣言するのにどのような違いがあるのでしょうか? hogeの変数を変更したいのですが、上記の方法だと動いて、下記の方法だと動かないのですが・・・ まだ良く分かっていないので、程度の低い質問で申し訳ないのですが、アドバイスのほどよろしくお願いいたします。

  • VB.NETで変数の宣言が上手くできません

    VB.NETで変数の宣言が上手くできません プロパティを使用し、変数の内容を一括保存しようと考えています その為に以下のようなコードを書いたのですが他のフォームから宣言されていないとなってしまいます 修正点を教えて頂けると嬉しいです Setting.vb Pubic class Settings Public dbdirectry As String Public flistpass As String Public Property flist () As String Get Return flistpass End Get Set (Byval Value As String) flistpass = Value End Set End Property もう一つflist () をdbdic ()に flistpassをdbdirectryにしたもの End Class この変数2つに他のフォームMainForm1.vbとDefaultSetting.vbなどからflistpass = Newflistpassなどと記述するとアクセス出来ず宣言していない扱いになります Publicでの宣言で大丈夫だと思ったのですが間違えているのでしょうか?

  • VBA モジュールで共通に使う変数の宣言方法

    VBAにてプログラミングを覚えている者です。 現在、いくつかのモジュールがあり、それぞれDimにて宣言している共通の変数があります。 いくつものプロシージャに毎回宣言せず、どこかでひとまとめにしたいと思い、色々と調べています。 例えば、 Dim pic1 As Picture Dim cell1 As String Dim pass1 As String Dim pic2 As Picture などです。 Dimのほかに、Publicの宣言などがありますが、いま一つ使い方がピンときません。 共通宣言する変数をひとつのモジュールとして登録し、活用できると、いざ変更となったときに その内容だけ置き換えればいいと思うのですが、みなさんはどのように宣言をしていますか? (例えば、Stringなどは各モジュールで変更するのが大変だと思うのですが・・・) ヒントを教えていただければと思います。よろしくお願いします。

  • VB2010で、変数の宣言がわかりません。

    VB2010で、変数の宣言がわかりません。 Option Explicit Public i, j, k, l As Long Public ii, jj, kk, ll As Long Public lngFileSuu As Long Public strTemp As String ・ ・ ・ と標準モジュールに宣言すると エラーがでています。 VB6.0とは宣言方法が違うのでしょうか? 教えてください。よろしくお願いします。

  • VBA モジュールレベル・パブリックレベルの変数

    Excel VBAにおいて(他のプログラミングにも通じることでしょうが)、変数は可能な限り、プロシージャレベルを使うようにしています。 やはり上手な人は、プロシージャレベルの変数を中心に使い、モジュールレベルやパブリックレベルの変数はあまり使わないものでしょうか。 モジュールレベル・パブリックレベルの変数って、一番上に沢山書いていくと、プロシージャを記述するスペースを下に追いやってしまい、ソースが見苦しくなる気がします。上手な人は、そういうモジュールレベル・パブリックレベルの変数をいたずらに増やさないようにする、良い方法とかを持っているのでしょうか?それとも、上手な人でも、モジュールレベル・パブリックレベルの変数は、多くなる時は物凄く多くなったりするのでしょうか?

  • VBでグローバル変数を宣言するには

    VB初心者ですが。クイズゲームのようなものを作成したいと考えてます。 Private Sub ~ End Sub の中で宣言した変数って他のところに呼び出したり(戻り値として渡す)出来るのでしょうか? どこでも、いつでも呼び足せるグローバル変数の宣言とはどのようにやるのか、具体的に教えていただけないでしょうか?

  • VBでのモジュールの使い方

    フォーム1でデータベースから取得した値を変数に格納し、それをフォーム2で表示、更新をしたいのですが、モジュールを使うを便利だと聞いたのですが、具体的にはどうすればよろしいのでしょうか? モジュールで変数を普通に宣言し、フォーム1、フォーム2で同じ宣言をし、利用しようと思ったのですが、やはり、フォーム2のほうでは認識してくれませんでした。 どうぞ宜しくお願い致します。

  • アクセス97 モジュール 変数について

    変数について不明な点があります。 Public A As String Public B As String とモジュールの最上段に 宣言しました strSQL = strSQL & ",備考1 ='" & pfncReplaceString1(A, "'", "''") & "'" strSQL = strSQL & ",備考2 ='" & pfncReplaceString2(B, "'", "''") & "'" この時点では AとBにはそれぞれ値が入っているのですが pfncReplaceString1とpfncReplaceString2に飛んだ時にBの方は""(何も入っていない状態)になっています。 何が違いがあるのでしょうか? 変数に値が入っていたのに消えてしまう 状態です。

  • 標準モジュールについてなのですが

    すみません。教えてください(/_;)VB6にて理解できないことがあります。いくつものパスを標準モジュールに記述できると知り、早速見やすいプログラムにしようと思い、標準モジュールを追加しました。サンプルなどを調べ、Function Apath() as stringを理解しました。フォームの方にはpath = Apathって書いておけばいいと書かれていたのでその通りにしました。しかし、見に行ってはくれません(>_<)で、いろいろやってみてあることに気づきました。変数を宣言してたら、ダメでしてなかったらちゃんと見に行ってくれます。 Dim path as string,Dim Apath as string.Apathを消すと働いてくれます。宣言が間違っているのでしょうか?標準モジュールをこのような感じで利用するには何か重大なルールがあるのでしょうか?すいません、初心者すぎる質問で<(_ _)>しかし、聞かぬは一生の恥と思い質問しました(>_<)よろしくお願いいたします<(_ _)>