• ベストアンサー

VB6で、変数の値を別ファイルの変数に引き継ぎたい

AというVBのソースファイル(.frm)内に関数の呼び元があり、 その関数がBというファイルにあります。 その関数内で値が設定される変数を、Bファイルのグローバル変数とし、 また、Aファイルのグローバル変数として同じ名前の変数を宣言したとしても、 やはりB内で関数の実行が終了し、Aに戻った際には、変数は別のものとみなされている ようで、B内関数で設定された値がAファイル内での同名変数に引き継がれません。 どのようにすればよろしいでしょうか? ご存知の方、お願いします。

noname#144096
noname#144096

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

  • ベストアンサー
  • joqr
  • ベストアンサー率18% (742/4026)
回答No.1

>Bファイルのグローバル変数とし、 Bのファイルの拡張子は、.bas 標準ファイルにする public 宣言で変数を定義 >また、Aファイルのグローバル変数として同じ名前の変数を宣言したとしても そんなものイラン そのまま編集を参照すべし でもさぁ? そんな、ちんけなコーディングやめて オブジェクトを定義して、プロパティにて定義すべし そのくらいやらないと、お給料もらう価値ないぞぉさん! それが正解とは言わないけど・・・ 20年前なら、それで通用したと思うよ

noname#144096
質問者

お礼

おかげで解決しました。ありがとうございました。

関連するQ&A

  • 別ファイルの変数を呼び出したいのですが?

    初めて質問させて頂くPHP初心者の者です。 例えば、 (a.php)というファイル内で導き出された変数の値($a)を、(b.php)というファイル内に呼び出したいのですが、関数等を利用して呼び出す事は出来るでしょうか? -----a.php------------------------- <?php $a=xxxx; //導き出された変数$a(の値) ?> ----------------------------------- -----b.php------------------------- <?php $a=△△△△; //このファイル内で変数$a(の値)を呼び出したい ?> ------------------------------------ よろしくお願い致します

    • ベストアンサー
    • PHP
  • 変数のアドレスの値

    2つの実行ファイルがあってどちらも起動しています。 どちらもテスト用で作ったスケルトン程度のものです。 2つの実行ファイルをA,Bと呼ぶことにします。 Aのウインドウハンドル(HWND型)の値と Bのウインドウハンドル(HWND型)の値が同じであるということはありえませんよね? AにもBにもソースには int i; が書いてあります。 &iの値がAとBとで同じになることはありえますか?

  • VB6.0の変数、関数の定義位置から元に戻る方法はありませんか?

    VB6.0の機能についての質問です。 ソースを見ている時に変数や関数がどの位置で宣言されているか見たくなる時がありますよね?そこでShift+F2を押すと定義されて位置まで飛ぶことができます。 で、その位置からまた元に戻りたくなりますよね?その方法がわかりません。 どなたか教えてください。お願いします。

  • あるファイルで使った変数を別のファイルで使いたい

    たとえば php1.php php2.php というファイルを作ったとします。 php1.phpで $A='ピーエイチピー'; $B[0]=1; $B[1]=2; という変数を決めたとき、 この変数をphp2.php の中で使うにはどうしたらいいでしょうか? 具体的には、 http:~php1.phpというホームページでフォームなどを用いて ユーザーにある変数$a,$b[0],$b[1]の値を入力させ、 その変数の値に複雑な計算をさせた結果の変数$A,$B[0],$B[1] をphp2.phpという別のページのphp内で使いたいです。

    • ベストアンサー
    • PHP
  • 複数ファイルで使うグローバル変数の位置

    メイン関数の処理で、関数A→関数B→関数Cという順序で関数が呼び出される場合(1関数1ファイルとします)、関数A,B,Cすべてで使用するグローバル変数の宣言を関数Bのファイルでおこなって、他のファイルではそれをexternするというのでも問題ないでしょうか?

  • ・関数内で宣言された変数の扱い(C入門本の説明で)

     以下C言語入門書の説明ですが!  いまいちわかりません?   ・関数内で宣言された変数の扱い 関数内で宣言した関数は、その関数内でのみ有効な変数になります。関数が異なれば、同じ変 数名で宣言することができます。例えば、main関数と(?)kansuu関数で、同じ(?)hennsuuという名 前の変数を宣言することができます。  int main() { int (A)hensuu = 0; (B)kansuuu(1); } int (C)kansuu(int hikusuu) { int (D)hensuu = 10; }  列のmain関数で宣言されている(?)hensuuと、さ(?)kansuu関数で宣言されている(?)hensuuは 同じ名前ですが、独立した異なるものです。(?)kansuu関数が実行されているときに、(?)hensuuの値 を変更しても、main関数で宣言されている(?)hensuuの値は変更されません。 また、(?)kansuu関数を実行している間だけ、(?)kansuu関数で宣言されている(?)hensuuが有効です。 (?)kansuu関数から呼び出し元でるmain関数に戻った際は、(?) kansuu関数で宣言した (?)hensuuはもう有効ではなくな、値を参照することもなくなります。     以上の説目で、   (A)hensuu、 (B)kansuuu、(C)kansuu、(D)hensuu  (アルファベット)を分かりやすいよう追加しました。   説明の   (?)にプログラムの(A)~(D)をつけたらどうなるか知りたいです。 (何となくわかるですが?)   よろしくお願いします。

  • VBでの変数宣言は1行に2つできないのですか?

    Visual BASICで変数宣言は1行に2つ以上記述しても実際、動作します。 例 DIM A、B as Integer このように宣言すると、AもBも整数となります。 しかし、このように宣言して、この変数を Call サブプログラム名(B) のように、パラメ-タとして引き渡そうとするとエラーとなってしまうようです。 よくわからないまま、 DIM A as Integer DIM B as Integer と分けて記述したらエラーがきえたようです。 変数宣言は1行に2つ以上まとめて記述してはいけないのでしょうか? VBは Ver 5 です。

  • VB6の変数宣言について

    VB6で変数を宣言するときにいちいち新しいプロシージャのたびに新しく宣言しなおすのがすごく不便です。 Dim A As Integer A = 12345 と毎回宣言すると見た目も悪いですしいろいろと不便です。 どのプロシージャにも A と書けば必ず 12345 を呼び出してくれるようにはできないのでしょうか?

  • VB A,Bフォームから同一Cフォームを呼び出し呼出元によってCの処理を変えたい

    環境 WindowsXP SP3.0 VB6.0 宜しくお願いします。 表題通り、A.frm,B.frmという異なったフォームがあり、A.Bの処理で同一C.frmを C.Show 1 とモーダルで表示しています。 ここで、呼び出し元A,Bによって、C内部の処理を変えたいのですが Cの呼び出し元がAなのかBなのか、判定させるよいルーチンが思いつきません。 CのForm.Loadの引数に与えようと考えたのですが当然構文エラーになります。 Public変数を宣言して適当なパラメータを格納しC内で判定すればよい とは思うのですが、それはなるべく避けたいのです。 プロジェクト的には、A.vbpとB.vbpにフォームとしてC.frmを取り込んでいます。 よいアイデアや検索のヒントがあればご教授ください。

  • C言語のローカル変数の使い方について質問です。

    C言語の変数に関しての質問です。 グローバル変数を使わずに、関数内で宣言したローカルの変数を別のソースファイルで使用することって可能ですか? 例えば、a.cというソースファイルと、b.cというソースファイルがあります。 a.cの関数内で"FILE *fp;"と宣言したローカル変数を、b.cの関数内で共有して使うことはできるのでしょうか。 また、"fp"に直接アクセスはできなくても、間接的にアクセスできる方法があれば教えてください。 下に記述しているのは例え用に適当に書いたプログラムです。 --------------------- a.cのソースファイル --------------------- void Temp(void) { char file_name[128] = {}; errno_t error; FILE *fp; // ←この変数を別のソースで使いたいです scnaf_s("%s", file_name, 128); if(error = fopen_s(&fp, fname, "rb") != 0) { printf("ファイルがオープンできません"); return 0; } fclose(fp); } --------------------- b.cのソースファイル --------------------- void Temp2(void) { int size; // ここでa.cのTemp関数で宣言されている"fp"を使いたい fseek( fp, 0, SEEK_END ); fsize = ftell( fp ); fseek( fp, 0, SEEK_SET ); }

専門家に質問してみよう