• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAプログラミング フォール間の配列受け渡しにつ)

VBAプログラミング フォーム間の配列受け渡しについて

このQ&Aのポイント
  • VBAプログラミングでのフォーム間の配列受け渡し方法や、データの移動について教えてください。
  • フォーム1で入力した数値を標準モジュールで受け取り、フォーム2のテキストに移す方法を知りたいです。
  • テキストだけでなく、チェックボタンやラベルのデータも移動できる方法があるのか教えてください。

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

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (743/5656)
回答No.1

言われている「配列」がなんの事かわかりませんが、 単純にフォーム1とフォーム2の値のやりとりと言う事なら、 これだけでいいかと思います。 'フォーム1のボタンのクリック Private Sub CommandButton1_Click() 'フォーム1からフォーム2へ値を移す UserForm2.TextBox1.Text = Me.TextBox1.Text UserForm2.CheckBox1.Value = Me.CheckBox1.Value 'フォーム2を表示する UserForm2.Show vbModal 'フォーム2からフォーム1へ値を戻す Me.TextBox1.Text = UserForm2.TextBox1.Text Me.CheckBox1.Value = UserForm2.CheckBox1.Value End Sub 'フォーム2のボタンのクリック Private Sub CommandButton1_Click() 'フォーム2を非表示にする Me.Hide End Sub

yuki22
質問者

お礼

申しわけありませんでした。 回答したと思いこんでて・・。 本当にありがとうございました。

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

関連するQ&A

  • VBAでコントロール配列を持つことは可能ですか?

    Excel2002、OSはXPです。 VBではコントロールに配列を持つことが出来ましたが、 VBAでコントロール配列を持つことは可能でしょうか? やりたいことはユーザーフォームにラベルを100個ぐらい貼り付けて、 テキストボックス入力した値がCell(i,1)と等しければ、 i番目のラベルのCaptionに文字を入力したい。という感じです。 もしVBのようにコントロール配列を持てれば、 If TextBox1.text=Cells(i,1) Then Label(i).Caption="~~" という風に出来るのですが、どうも配列の設定がVBのようにできません。 プロパティにINDEXが無いですし、オブジェクト名を同じにしたら エラーとなってしまいますし。。 もし出来ないのであれば、何か回避策のようなものはないでしょうか? 力技で100個IFを書けば出来ることは出来るのですが・・ If TextBox1.text=Cells(i,1) Then If i = 1 Then Label1.Caption="~~" ElseIf i=2 then Label2.Caption="~~" ・・・・

  • VBAのアドインについて

    現在、エクセル2000を使用しています。  セルの”*”という文字をダブルクリックすると、ユーザーフォームが開き、テキストボックス内に文字を入力したらOK(コマンドボタン)を押すとセルにその文字が入ります。  コマンドボタンを実行すると、Call ○○○で標準モジュールのマクロを呼び出すようになっています。  このCallが10行くらい組んであり、それぞれの標準モジュールを呼び出しているのですが、ファイルが重たくなってしまいました。  この標準モジュールをアドイン化して使用できるのでしょうか?

  • VBA 変数の受け渡し

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

  • EXCELのVBAについて

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

  • Form1からForm2へ変数を送る

    VBの初心者です。 下のようにコードを記述してみました。 ・Form1のdNameをForm2へ送り、ラベルに表示。 ・変数dNameは標準モジュールで定義。 **Form1** dName = delname.Text Form2.Show **Form2** Label.Caption = dName **標準モジュール** Dim dName As String しかし、ラベルにdNameの値が表示されません。 なにか良い解決策を教えてください。 あと、標準モジュールについてわかりやすく教えて下さい。

  • 配列で作ったラベルのテキストの変更

    こんにちは。 現在、VB.NETを勉強してます。 少々わからないことがありまして教えてください。 フォームのロードイベント時にラベルの配列を作っています。 ボタンをクリックすると、ロード時に作ったラベルのテキストを変更したいのですが、 このときにラベル名を取得するにはどうしたらよいのでしょうか?

  • VBAの配列の質問です

    こんにちは、VBAについての質問です。 配列について3点ほど質問致します。 ・ フォームに貼り付けた、ラベル、テキストボックス、コンボボックスの名前を配列にして、その数自体も変数にして (上記のコントロールの数は当然分かっているのですが敢えて変数名でとりたいのです)、配列のデーターとして入れて やることは可能なのでしょうか。   特に疑問なのは、テキストボックス、コンボボックスには「文字型」、「数字型」が有ります。その場合の配列の型 はどのように宣言してやる のでしょうか。 ・ 仮に上記が可能ならば、特に疑問なのは「数字型」は「数字型」として、セルには記入されるのでしょうか。   それとも、数字の場合には、セルへの入力時とか、セルからの出力時とかに、キャスト等で型変換等の処理が必要になる のでしょうか。 ・ またそれとは別の配列として、テキストボックス、コンボボックスのデーターだけを配列データーとして入れてやるのは 可能なのでしょうか。

  • C# 配列などの受け渡し

    VS2005を使用しているものです。 form1にある文字列の配列と数値データを form2に持っていきたいのですが、どのように扱えばよいか 分からず困っています。 書物等などもいろいろ見てはいるのですが、クラス間のデータの 移動などがそれに近いのでしょうか? フォーム間の移動自体はボタンクリックで次のような感じに行っています Form form2 = new form2(); form.ShowDialog(); 初心者ですが、何かご教授願えれば幸いです。

  • ユーザーフォームのリストボックスの設定を標準モジュール内で取得した配列

    ユーザーフォームのリストボックスの設定を標準モジュール内で取得した配列にしたい。 題名のままの説明ですが、ユーザーフォームのリストボックス値を配列にして動的に動作させるようにしたいのですが、標準モジュールでPublicで配列を宣言しているのですが、うまくユーザーフォームモジュールに渡っていないというか、その配列変数をユーザーフォームモジュール内に書くと配列が存在しません。 というエラーが出てしまいます。 かといってユーザーフォームでPublicで配列を宣言することもできないのでどうやってリストボックスに 配列を設定すればいいのかわかりません。 配列は2次元配列で視覚的に説明するとは列数が3行、行数は標準モジュール内でRedimにより可変します。この配列をそのままレコードセットみたいにリストボックスに設定したのですが、 なにか良い方法はありますでしょうか?

  • VBAでマルチページの表示

    エクセル2002使用です。 ユーザーフォーム(オブジェクト名:UserForm1)に、マルチページ(オブジェクト名:page1)を配置してフォームを作成しました。 Sheet1にコマンドボタンを貼り付け、コマンドボタンをクリックして、標準モジュールを呼び出し、マルチページを標準モジュールから呼び出せるようにしたいのですがうまくいきません。 ’Sheet1 Private Sub CommandButton1_Click() Call フォーム表示 End Sub ’標準モジュール Sub フォーム表示() UserForm1.Show ’?ここのコードをいろいろ試したのですがわかりません。 End Sub この他 UserForm1.ShowPages "page1" とか 変数を入れてみたりしたのですが、うまくいきません。 すいませんが、よろしくお願いします。