1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。
実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。
因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。
No.5ベストアンサー
- 回答日時:
すでに何件か回答があがっていますので、少し変わった方法をご参考までに。
あまり使われませんが、Formにはtagというプロパティがあります。
これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。
FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。
ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。
複数の値を呼び出し元に戻してやる場合に、区切り文字(カンマなど)で連結した文字列をtagに格納し、呼び出し元で区切り文字でsplitして、複数の値を受け渡すという手法をよく使っています。
回答ありがとうございます。
確かに・・慣れれば非常に便利な気がします。
いちいちPublicで変数を宣言しなくてよいということですね。
それから、回答下さった皆さんにも、改めてお礼を言わせて頂きます。無事、解決しました。
No.4
- 回答日時:
Form内でPublic宣言した変数は、そのFormが生きている間だけ有効です。
UnloadしたFormの変数にはアクセスできません。
Form1からForm2を開いて、Form2を閉じたときにForm2の変数をチェックするときに私が良く使う方法は、
[Form1]
Form1.Show vbModal
myValue = Form2.myValue
Unload Form2
[Form2]
Public myValue as Long
Private Sub Button1_Click()
Me.Hide
End Sub
つまり、Formを閉じるときにいきなりUnloadせずにHideしておき、
Formを呼び出した側がデータを取得後にUnloadするようにします。
回答ありがとうございます。
そもそもわたしは非表示にする方法しか知りませんでした。なるほど大変参考になりました。
ところで、FormをUnloadするのと非表示とするのでは、やはり動作の軽さが違うのでしょうか?
No.3
- 回答日時:
フォームが開いている状態で
フォーム内でpublicで宣言してあれば
別フォームからでも「フォーム名.変数名」で参照
できますよ。
自分は標準モジュールでプロジェクト全体で宣言を
するのはあまり好きではないので(モジュール結合度の問題からして)
フォーム間でのデータ明け渡しはこれを使っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
【VB6.0】 あるフォームから他のフォームへ値を受け渡したい
Visual Basic(VBA)
-
-
4
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
5
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
6
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
7
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
8
Access サブフォームでの選択行の取得
その他(データベース)
-
9
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
10
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
11
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
12
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
13
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
14
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
15
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
16
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
17
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
18
オブジェクト型の変数にフォームを入れたい
Visual Basic(VBA)
-
19
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
20
[Access2000] フォーム間で値の受け渡し
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
VBAで旧字体を異字体に一括で変...
-
VBAで別モジュールへの変数の受...
-
vba userFormのSubを標準モジュ...
-
VBでグローバル変数を宣言するには
-
Excel VBA 標準モジュール内で...
-
VBA This Workbookモジュール...
-
FreeBSDでperlモジュールをイン...
-
Accessのパスワード保護された...
-
押されたキーにてポップアップ...
-
vba 標準モジュールインポート...
-
「変数が定義されていません」...
-
関数の引数にクラスを使いたい
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBA クラスモジュール...
-
エクセル2016VBEのプロジェクト...
-
SendKeysの使い方について
-
モジュールの最大数はいくつな...
-
oracle10g へ、アクセスでつな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
エクセルVBAでシートモジュール...
-
VBでグローバル変数を宣言するには
-
Excel VBAで、ユーザーフォーム...
-
VBAで旧字体を異字体に一括で変...
-
ユーザー定義関数に#NAME?が返...
-
VBA This Workbookモジュール...
-
Excel VBA 『Call』で呼び出す...
-
【vba】フォームに書いてあ...
-
Access VBA標準モジュールにつ...
-
モジュールの最大数はいくつな...
-
'Range'メソッドは失敗しました
-
vba userFormのSubを標準モジュ...
-
VBAで別モジュールへの変数の受...
-
グラフのX,Y座標を取得したい
-
標準モジュールを削除したい。(...
-
VBAProjectのモジュ...
-
ExcelVBA:パブリック オブジェ...
-
Excel VBA 標準モジュール内で...
-
acwzlibとは?
おすすめ情報