• ベストアンサー

Excel ユーザーフォーム間の Value 送受

VBA の迷走者です。 Excel の同じブック内に、入力忘れがないことを確認して貰うため、2個のユーザーフォームを作りました。(メッセージボックスの機能は見つかりません) UserForm1 の Textbox1 に入っている数値を、UserForm2 で示して、「これでよいか」と確認させるには、 UserForm1 と UserForm2 には、それぞれどう書けばよいのでしょうか。 UserForm2 は 表示だけなので、ラベルではうまくいきませんか。 教えて下さい。よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 前回のトラブルで懲りてしまいましたか?思い切って、UserFormのコードの全体を提示して、指示を仰いだほうが、安全かもしれません。UserForm を二つ使って、というのは、いつもVBAのコードを書いている私でも年に1度程度とあまりしません。私は、特にトラブルにあったことはありませんが、一応、気をつけなくてはならない点ぐらいは、自分自身でも、掲示板の回答を通してでも、経験してきています。

awazo
質問者

お礼

Wendy02さん ありがとうございます。 > コードの全体を提示して、指示を仰いだほうが、安全・・・ 次からそういたします。またよろしくお願いします。

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

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 ヘルプの件は、教えるつもりが教わってしまい、ありがとうございました。 ところで、UserForm で片方が確認用だけというのは、もったいないですね。 たとえば、ボタンを付けて、MsgBox で、以下のようにしたらどうなのですか? Private Sub CommandButton1_Click()  'セルに書き込みする前などに  Dim A As Variant  Dim B As Variant  A = TextBox1.Value  B = TextBox2.Value  If MsgBox("TextBox1: " & A & vbCrLf & _       "TextBox2: " & B & vbCrLf & _       "となりますが、よろしいですか?", vbInformation + vbOKCancel) = vbOK Then       Range("A1").Value = A       Range("A2").Value = B End If End Sub UserForm 間の場合は、直接のやり取りはしないで、標準モジュールを経由させます。標準モジュールに、Public 変数のみをおきます。UserFormのローカルモジュールのプロシージャには、変数の宣言をしません。それで、変数に値を代入させれば、その値は、残っています。そこから値を取り出すことが出来ます。 例: 'Option Explicit Public A As Variant Public B As Variant こうすることで、UserForm 間のデータをやり取りすることが可能です。

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

関連するQ&A

  • EXCEL VBAのユーザーフォームの配色について

    EXCEL VBAのユーザーフォームの配色の変更について教えていただきたいことがあります。 ユーザーフォームを設置しているのですが、プロパティで設定されている「システム」及び「パレット」の各色をVBAコードで表示することは出来るのでしょうか。 プロパティでUserForm1のBackColorを「強調表示」に設定 TextBox1の値を変えたときにTextBox1のBackColorを「強調表示」に変更する。 Private Sub TextBox1_Change() TextBox1.BackColor = RGB(255, 255, 150) End Sub でやろうとしていますが、全く同じ色を作ることができません。 システムやパレットの色をRGB以外のやり方で設定することはできるのでしょうか。 よろしくお願いいたします。

  • エクセル VBA ユーザーフォームで検索したいのですが

    つい昨日触り始めた大初心者です。。 エクセルシートにて 数値を記した列と、詳細を記した列があります。 ユーザーフォームにて textboxに数値を入力し、ボタンをクリックすると 検索をして、ユーザーフォーム内のlabelに詳細が表示される、といったvbaを書いているのですが、どうにもうまくいきません。 また、textboxに検索範囲にない数値が入力されたときには Labelに「なし」と表示させたいのですが、 エラーが出てしまい、その処理もやはりうまく出来ません。 どなたかご教授いただけますでしょうか。

  • Excel ユーザーフォームの呼び出し方

    VBA の初心者です。 Excelで、ユーザーフォームを、ブックを開いたとき最初に画面に表れるようにするにはどうしたらよいのですか。教えて下さい。よろしくお願いします。

  • エクセルのユーザーフォームをコピーしたい。

    エクセルの2000です。VBAで作ったユーザーフォーム のフォームを他のブックのVBAにコピーをしたいのですが可能でしょうか?可能であれば手順をお教え頂ければ 有りがたいです。

  • EXCEL VBAのユーザーフォームの操作方法について教えていただきたいことがあります

    EXCEL VBAのユーザーフォームの操作方法について教えていただきたいことがあります。 (1)ユーザーフォームにテキストボックスを2つ作る (2)コマンドボタンを1つ作る。 この場合に、コマンドボタンを押すと、セットフォーカスされている方のテキストボックスに「新春」と表示させることはできるのでしょうか。 キーボードは当然セットフォーカスされているテキストボックスに入力されますが それと同じ機能をコマンドボタンにも持たせたいのです。 Private Sub CommandButton1_Click() で TextBox1がセットフォーカスされているならTextBox1に"新春"と入力する TextBox2がセットフォーカスされているならTextBox2に"新春"と入力する というような条件式になるのでしょうか。 色々調べましたが答えが見当たりません。 よろしくお願いいたします。

  • ユーザーフォーム内のテキストボックス内の書式設定

    A1セルに12.345と入力してあり、書式は「数値」で小数点以下の桁数2にしてあり、 「12.35」と表示されます。 VBAを起動して、ユーザーフォームを挿入し、 テキストボックスを作成し、 TextBox1の「ControlSource」にA1と入力すると TextBox1には「12.345」と表示されます。 エクセルのA1と同じ様に TextBox1も「12.35」と表示したいのですがどうすればいいのでしょうか? エクセル2003です。 よろしくお願い致します。

  • EXCEL VBA ユーザーフォームの呼び出し時の不具合について

    すいません、EXCEL VBAのユーザーフォームの呼び出し時の不具合について助けていただきたいことがあります。 エクセルでユーザーフォームを作成しているのですが、 Userform1.Showで呼び出したユーザーフォームがフリーズの状態になり、 フォーム内のすべてのオブジェクトが全く機能しなくなりました(右上の「×」にも反応しません)。 ユーザーフォームをクリックするとピープ音が鳴ります。 他のユーザーフォームは正常に作動するようです。 原因が全く思い当たりません。どなたか分かる方がおられましたらよろしくお願いいたします。

  • エクセルのユーザーフォームについて

    パスワード入力用のしかけです。 ワークシートに配置したコマンドボタンを押してユーザーフォームを呼び出します。 Private Sub CommandButton1_Click() UserForm1.Show End Sub ユーザーフォームにはテキストボックスとコマンドボタンを配置しております。 テキストボックスのPasswordCharには * を設定しました。 Private Sub CommandButton1_Click() If StrConv(TextBox1.Text, vbLowerCase) = "abcd" Then MsgBox "OK!" Unload Me Else TextBox1.Text = "" TextBox1.SetFocus End If End Sub これで、ABCDまたはabcdと入力され、ユーザーフォーム上のコマンドボタンをクリックすれば、ユーザーフォームは消えます。 でも、いちいちマウスでクリックするのが面倒なのでEnterキー1回でユーザーフォームを消したいのです。 今でも、一度Enterキーを押すと、ボタンにフォーカスが移動するので、さらにEnterで消えますが、二度ではなくEnterキー1回でユーザーフォームを消すにはどうすればよいのでしょうか? ユーザーフォームは使ったことがないのでわかりません。 よろしくお願いします。

  • エクセルVBAのユーザーフォームについての質問です。

    エクセルVBAのユーザーフォームについての質問です。 ユーザーフォーム内のラベルの文字を大きくするにはどの様に すれば宜しいのでしょうか。 お教え頂きたく宜しくお願い致します。

  • ユーザーフォームのプロパティをVBAで設定したい

    いつも楽しく勉強させていただいております。 Excelのユーザーフォームを使い始めたところです。 コントロールのプロパティの設定を細かいVBAで行いたいのですが、方法がわかりません。 たとえばラベルの位置をそろえたいので 黒いラベル2.Left = 黒いラベル1.Left 黒いラベル3.Left = 黒いラベル1.Left といったコードを書いてUserForm_Initialize()で実行してみたのですが、フォームを閉じると元の値に戻っています。 どうすれば黒いラベル2と黒いラベル3の左端を黒いラベル1と同じにできますか。

このQ&Aのポイント
  • データ受信中に印刷ができないトラブルが発生しています。
  • 問題はDCP-J152Nでのデータ受信中に中止されることです。
  • ユーザーはiOS 16.1を使用し、無線LANで接続されており、ひかり回線を使用しています。
回答を見る

専門家に質問してみよう