アプリ版:「スタンプのみでお礼する」機能のリリースについて

formA で dim test as New fromB
test.m_foo = "分かりません" と値を代入し
fromB で public変数 Public m_foo as string を宣言しています

その他の formC, formD, formE で formBのpublic変数m_fooを使用したい場合
 例 formC 上で宣言している変数 ANS に代入したい場合
   formC に ANS = formB.m_foo と記述しても上手くいきません
どのように記述したら
 formB で宣言しているpublic変数を他のformでも使用できるのでしょうか?     

A 回答 (3件)

そもそもPublic変数をフォーム内で宣言することが無意味です。



共通に持たせたいなら
1.標準モジュールに持たせる
2.フォームBにプロパティを持たせ、他のフォームからはプロパティを参照するようにする。
と行った方法が王道です。

1.については説明省略

2.について

Form1の内容
Private Sub Form_Load()
  Form2.Show
  Me.Show
  
  MsgBox Form2.m_foo
End Sub



Form2の内容
Private bFoo  As String

Public Property Get m_foo() As String
  m_foo = bFoo
End Property

Private Sub Form_Load()
  bFoo = "分かりません"
End Sub
    • good
    • 0

formA内でformB型の変数testのメンバ変数m_fooに代入した"分かりません"をformC,formD,FormEでも参照したいということでしょうか?


その場合、formC,formD,formEに、formA内で宣言している変数testを渡してやらなければ駄目です。

また、formAでformB.m_foo = "分かりません"とすれば、取りあえずご希望の動作はするとは思います。
    • good
    • 0

こんにちは。

maruru01です。

ANS = formB.m_foo

じゃなくて、

ANS = test.m_foo

じゃないんでしょうか。

"分かりません"を代入したのは、formBではなくて、testのm_fooですから
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!