• 締切済み

別のプロシージャの変数にアクセス方法

現在、Visual Basicの勉強を始めたばかりなので、初歩的な質問です。 同じモジュール内にAというプロシージャとBというプロシージャが 存在します。 そこでAのプロシージャの処理フロー内から、Bのプロシージャ内の 変数を扱うことが可能でしょうか? 可能であれば、簡単な例を挙げて教えていただけないでしょうか。

みんなの回答

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

モジュール1 Public a as .. Private b as .. プロシジャー1  Private c as .. プロシジャー2  Private d as .. モジュール2 プロシジャー3 と宣言した場合、 aはプロシジャー1、プロシジャー2、プロシジャー3で参照可能 bはプロシジャー1、プロシジャー2で参照可能 cはプロシジャー1内のみで参照可能 dはプロシジャー2内のみで参照可能 です。

ya-ma33
質問者

お礼

グローバル変数なら、どのプロシージャからも参照可能ということですね。 お忙しいところ、ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.1

他プロシージャ内の変数を直接操作することはできません。 できるのはBプロシージャの引数に値を渡すことくらいでしょうか。

ya-ma33
質問者

お礼

お忙しいところ、ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • パブリック変数を宣言する時に・・・

    エクセルVBAの質問です。 モジュールAとBがあるとしまして、 Aの中にあるプロシージャからBの中のプロシージャを呼び出す場合、 変数を引き渡したいとしたらパブリック変数を使いますよね? この場合宣言は、 Aの宣言セクションでするのか、 Bの宣言セクションでするのか、 あるいは両方で同じ変数を宣言するのか、 どれなんでしょ?

  • subプロシージャ

    2次方程式a*x^2+bx+c=0えお解くプログラムを考える。メインプロシージャmain1がsubプロシージャread1,solve1,display1を1回ずつ呼び出す。プロシージャread1で変数a,b,cにinputboxで整数値を入力する。プロシージャsolve1では、まず判別式D=b^2-4*a*cを計算して、D>0の場合にはx1、x2に実数解x1=(-b+sqr(D)/(2*a)、x2=(-b-sqr(d)/(2*a)を求める。D<0の場合はx1に実部-b/(2*a)を、x2に虚部sqr(-D)/(2*a)を求める。プロシージャdisplay1は入力された3つの整数値とsolve1で得られた2つの変数x1.x2の値を判別式Dの符号に応じてMsgbox関数で表示する。 以上のプログラムをモジュールレベル変数を用いてつくりなさい。 Sub read1() '問10(1) Dim a As Integer, b As Integer, c As Integer a = InputBox(" aの値を入力して") b = InputBox(" bの値を入力して") Sub solve1() D = b ^ 2 - 4 * a * c If D > 0 Then x1 = (-b + Sqr(D)) / (2 * a) x2 = (-b - Sqr(D)) / (2 * a) Else x1 = -b / (2 * a) x2 = Sqr(-D) / (2 * a) Sub display1() End Sub ここまでやったのですがこの先どうやるかわかりません。 おしえてください。 あとモジュールレベル変数ってなんですか?

  • C# 変数を変数で指定したい

    UnityとC#でプログラミングの勉強をしている者です。 「操作する変数」を、変数を使って指定するにはどのような方法を使えば良いのでしょうか。 以下、例となります。 aという変数、およびb1、b2、b3……という変数があるとしたとき、 「a=1ならば、b1に1を代入する」 「a=2ならば、b2に1を代入する」 「a=3ならば、b3に1を代入する」…… という処理をする方法を探しています。 よろしくお願い致します。

  • ExcelVBAのプロシージャについて質問です。

    初歩的な質問で申し訳ないのですが、私は一つのプロシージャ毎に標準モジュールを作成して書いています。しかし、他のVBAファイルをみると、1つの標準モジュールに複数のプロシージャをまとめて入れていたりします。やはりまとめた方がいいのでしょうか。この使い分けはどういう場合にまとめたり、わけたりするのでしょうか。詳しい方がいましたらアドバイスよろしくお願いします。

  • プロシージャ 値渡し (Xecel2010)

    イベントプロシージャからAプロシージャを呼び出し、続いてBプロシージャを呼び出す場合、Aプロシージャの配列変数の値をBプロシージャに渡す方法があったら教えてください。 (セルに書き込んで読み込む方法はわかっています。それ以外の方法があれば知りたいです)

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

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

  • VBAのプロシージャーと変数の名前の区別について

    VBAの初心者です。教えてください。 Sub ex() Dim a As Integer Dim b As Integer a = 2 a a, b MsgBox b End Sub Sub a(a As Integer, b As Integer) b = a End Sub 上記のプログラムを実行するとうまくいきません。VBAのプロシージャーと変数って同じ名前を使うとだめなのですか?教えてください。

  • ACCESS 引数をとるプロシージャの記述方法

    計算した結果を返すFancionプロシージャを作成したいのですが、幾つかの参考書を見ても戻り値が一つの説明しかありません。戻り値が二つほしいのですが無理なんでしょうか? 文字データAと数値データBを引数で取得し、それぞれの処理結果(A-DT及びB-DT)を返したいのですが、Calc_1には一つの処理結果しか指定できないと思いますが、戻り値を二つ返す記述方法を教えて頂けないでしょうか。よろしくお願いいたします。 Public Function Calc_1(A AS String,B AS Integer) AS String   ※Aを元に文字編集を行い編集結果をA-DTへ登録   ※Bを元に計算処理を行い処理結果をB-DTへ登録 End Function

  • PL/SQLに関しての質問です。

    はじめまして。 PL/SQLの入門書を一冊程度読んで開発に携わってしまった初心者です。 どうしてもわからず、行き詰ってしまったので質問させて下さい。 現在あるパッケージを作成しています。 例えとして、パッケージ内にプロシージャAとプロシージャBが有るとします。 プロシージャA内で、SELECTにてDBから取ってきた値を変数Cに入れます。 その変数Cはパッケージの呼出し元のモジュールに返します。 ここまでは解りますが問題はここからです。 プロシージャAで変数Cに格納した値を、そのままプロシージャBでも使用したいのです。 変数Cを仕様部で宣言して、グローバル変数として使用すれば楽だと思うのですが、 グローバル変数は一切使用してはならない。と言われています。 ご回答お待ちしております。

  • エクセルマクロ 異なる変数でのループ

    エクセルマクロのループ処理に関して、 異なった変数を使いループをさせたいです。 例えばA~Dまでの変数があり、変数Zに順々に変数を代入して処理をさせたいです。 ループ開始 Z = [A-D] (変数Zを使う処理) ループ終了(繰り返し) 1回目にA 2回目にB ・ ・ といったイメージです。 初歩的な質問で恐れ入ります。 よろしくお願いします。

PX-M5081Fで印刷×。031008表示される
このQ&Aのポイント
  • PX-M5081Fで印刷時にエラー:031008が表示される
  • クリーニングをしてもエラーは改善されない
  • メーカー修理の依頼を検討してください
回答を見る