• ベストアンサー

EXCEL VBAモジュール間のデータ受け渡し

ユーザーフォームでセットした値を他のモジュール(Module1など)で参照するにはどうしたらいいでしょうか?

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

  • ベストアンサー
  • --HV--
  • ベストアンサー率25% (5/20)
回答No.1

標準モジュールの一番上などに、 Public AAA As Variant みたいな宣言をしておけば、その変数がユーザーフォームでも使えると思います。

Dory-R
質問者

お礼

Public 変数を知りませんでした! Mojule1のGeneralのDecrerationsに定義しましたら、どちらからでも 参照できました! ありがとうございました。

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

関連するQ&A

  • VBA 変数の受け渡し

    エクセルVBAで標準モジュール内でインプットボックスに入力した変数をユーザーフォームに受け渡してユーザーフォーム内のリストボックスに表示させる場合どのように変数の受け渡しを行えばよいか教えてください。 現在は、一度ワークシートの任意のセルに値を書き出し、その後ユーザーフォームのイニシャライズで先ほどのセルから値を受け取るようにしています。 標準モジュールではインプットボックス入力後「UserForm1.Show」でユーザーフォームの立ち上げを行っています。

  • EXCEL VBAでの変数の有効範囲 

    モジュール内のすべてのプロシージャで使う変数は(General)(Declarations)で定義すれば参照できますが、ユーザーフォームのオプション・ボタンの値などを別のモジュールで参照できないでしょうか?

  • モジュール間のデータ受け渡し

    初心者質問で申し訳ございませんが、 ご教授、お願いできませんでしょうか? 環境は XP, VB,net2005を使用しています。 言葉が適切かどうかわかりませんが、 別ファイルのモジュール同士でのデータの受け渡しはどのように行えばいいのでしょうか? たとえば、Form1.vbに定数宣言してある「定数1」を 別で作成したModule.vbには定数を読み込むにはどのように行ったらよいのでしょうか? パブリック変数の位置で宣言したのですが、参照できないようで… ご回答いただけましたら幸いです。

  • EXCELのVBAについて

    エクセルのVBAでユーザーフォームに作ったテキストボックスに入力した値を、コマンドボタンによる「実行」とともに別に作った標準モジュールの変数として代入するにはどうすれば良いでしょうか? 具体的な流れは、 マクロ実行  ↓ ユーザーフォーム出現  ↓ テキストボックスに数字を代入→「実行」  ↓ 変数を代入された標準モジュールによる処理完了 というものです。 ご教授お待ちしております。

  • エクセルマクロユーザーフォームのtxtbox値を標準モジュールに保持

    宜しくお願いします。 ユーザーフォームのtxtbox値を標準モジュールに渡してマクロを実行 るのですが、一度値をセットしたら20~30回変更が無いので標準モジュール のみショートカットで実行したいのですが値を保持してくれません。 何か良い方法は無いのでしょうか。? 'フォーム起動 Sub フォーム() UserForm1.Show End Sub +++++++++++++++++++++++++++ Private Sub CommandButton1_Click() Call モジュール '標準モジュールを呼ぶ Unload UserForm1 ++++++++++++++++++++++++++ モジュール内 Static ufX As Byte ufX = UserForm1.XXX.Text 'ufXの値を保持したい。

  • access2000 モジュールの削除について

    モジュール module1を削除しようとして、 モジュールの解放を行ったところ、 「ファイルへのアクセスでエラーが発生しました。 ネットワークへの接続が切断されている可能性があります」 と表示され、削除されません。 他のモジュールでmodule1の関数を使っていたためでしょうか? module1の内容は、別のファイルにコピーをとってあるので、 一度module1を削除して、あらたにmodule1を作成したいのですが、 (module1がつかえないと、他のモジュール内のmodule1とう文字をすべて書き換えないければ、ならない^^;) 上記のエラーがでてしまい、 自分では修復できません。 アドバイスお願いします。<(_ _)>

  • Excel2007 VBA シートとユーザーフォームの値のやり取り

    1.シートからユーザーフォームを呼び出す。 2.シートからユーザーフォームへ値を渡す。 3.ユーザーフォームからシートへ値を返す。 この一連の処理を行いたいのですが。 TestSheet----------- Dim oForm As TestForm Set oForm = New TestForm oForm.SetData("渡す値") Call oForm.Show Dim Result As String 'Result = oForm.GetResult Set、GetメソッドはTestForm内に存在します。 しかし、ユーザーフォームでUnloadを行った時点でoFormが破棄されるらしく、Result = oForm.GetResultでエラーとなります。 変数とSet、Getメソッドを標準モジュールに記述すれば解決するのですが、スコープ範囲がこのシートとユーザコントロールに限定できないのでなるべく記述したくありません。 他にユーザフォームから値を受け取る方法はありませんでしょうか。

  • EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作り

    EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作りました。そのワークシート上での定数や、プロシージャや関数をワークシートのモジュールに置いています。そして、その定数や関数などをユーザーフォームのイニシャライズなどで使いたいと思いますが、ユーザーフォームのモジュールはワークシートのモジュールとは別なので、使えません。他への影響を考えると、標準モジュールには、置くのは不適切だと思います。 特定のワークシート上でのみ使うユーザーフォームと、そのワークシートとで、共通の定数や関数などを使う方法は、あるのでしょうか。どのようにすればよいのでしょうか。

  • ExcelのVBAでフォームが表示されない

    Sub フォーム起動() UserForm1.Show End Sub 上記の内容をModule1にしてショートカットキーをを設定し、いつでも他に作ってあるユーザーフォームが起動するようにしていました。しかし先日、久しぶりに使ってみようと、設定したショートカットキーを押したら、VBAもマクロも全くいじっていないにも関わらず、「UserForm1.Show」の部分で「実行時エラー'380': Valueプロパティを設定できません。プロパティの値が無効です。」とエラーが表示されフォームが起動できません。これはいったい何が原因なのでしょうか。

  • 自身が記述された標準モジュールを常に参照する方法

    標準モジュール名を指定せず、自身が記述された標準モジュールを常に参照する方法 例えば A = W_Book.VBProject.VBComponents("Module56").CodeModule.ProcBodyLine("Workbook_SheetSelectionChange", 0) というコードを"Module56"内に記述した場合Module56という標準モジュール名を例えばModule44と変更してしまうと動かなくなってしまうと思います。 これを、常にThisWorkbookのように、このコードが記述されたモジュールを参照するように変更はできますでしょうか?もしご存知でしたらご回答頂けますと幸いです。どうぞよろしくお願いいたします。

このQ&Aのポイント
  • 【DCP J577N】のカラー印刷ができなくなりました。白黒やグレースケールの選択しかできず、解決策を急ぎで教えてください!
  • お使いの環境はWindows 11 Homeで、無線LAN接続しています。関連するソフト・アプリは特にありません。電話回線はひかり回線を使用しています。
  • カラー印刷のトラブルで、ブラザー製品のDCP J577Nを使用しています。白黒やグレースケールの選択しかできず、解決方法を教えてください。
回答を見る