- ベストアンサー
値渡しについて
UserForm1で以下のように求めた値「R」を UserForm2に渡すにはどのようにすればよいのでしょうか。 **************************************** <UserForm1(コード)> Public R As Integer ----------------------------------- Private Sub CommandButton1_Click() Dim N As Integer : N = TextBox1.Text R= N * 2 + 3 : End Sub **************************************** <UserForm2(コード)> Private Sub CommandButton1_Click() Dim i As Integer : For i = 4 To R : Next i : End Sub **************************************** どなたか教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1にデータを保存しましょう。 Public R As Integer Private Sub CommandButton1_Click() Dim N As Integer N = TextBox1.Text R = N * 2 + 3 Sheet1.Cells(1, 1).Value = R TextBox1.Text = Sheet1.Cells(1, 1).Value End Sub Private Sub CommandButton1_Click() Dim i As Integer For i = 4 To Sheet1.Cells(1, 1).Value Label1.Caption = i Next i End Sub
その他の回答 (3)
- Kuppycat
- ベストアンサー率50% (109/216)
グローバルモジュールで「R」を宣言すればよいのでは? <Module1> Public R As Integer <UserForm1> Private Sub CommandButton1_Click() Dim N As Integer : N = TextBox1.Text R= N * 2 + 3 : End Sub <UserForm2> Private Sub CommandButton1_Click() Dim i As Integer : For i = 4 To R : Next i : End Sub
お礼
回答ありがとうございます。 連続して操作しているときはよいのですが、 いったん保存してファイルを閉じたら、 再度ファイルを開いたときには、保存時の値(R)はもう保持しておらず・・・ #4さんの回答を参考にして、値をシートに表示させることにしました。 色々教えていただき、本当にありがとうございました。
- fortranxp
- ベストアンサー率26% (181/684)
>仮の箱があってそこにデータ(R)を入れておき、 >UserForm1のCommandButton1がクリックされTextBox1 >にデータが入力された場合は、 >箱の中の値(R)を上書きするイメージのプログラムを >書きたいのですが可能でしょうか。 Private Sub CommandButton1_Click() Dim N As Integer N = TextBox1.Text R = N * 2 + 3 TextBox1.Text = R UserForm2.Show End Sub その前にTextBox1のプロパティウィンドウのTextに 最初の数値を入れて置いてください。
お礼
回答ありがとうございます。 連続して操作しているときはよいのですが、 いったん保存してファイルを閉じたら、 再度ファイルを開いたときには、保存時の値(R)はもう保持しておらず・・・ #4さんの回答を参考にして、値をシートに表示させることにしました。 色々教えていただき、本当にありがとうございました。
- fortranxp
- ベストアンサー率26% (181/684)
Public R As Integer Private Sub CommandButton1_Click() Dim N As Integer N = TextBox1.Text R = N * 2 + 3 UserForm2.Show End Sub Private Sub CommandButton1_Click() Dim i As Integer For i = 4 To UserForm1.R Next i Label1.Caption = i End Sub
補足
回答ありがとうございます。 私の書き方がいけなかったのですが、 はじめプログラムを実行したときは、 UserForm1のプログラムを実行させるのですが、 保存して2度目以降実行するときは、UserForm1は実行せず、 UserForm2から実行させたいと思っています。 ですので、教えていただいたやり方だと、 2度目以降実行すると「UserForm1.R」には0が入り・・・。 仮の箱があってそこにデータ(R)を入れておき、 UserForm1のCommandButton1がクリックされTextBox1にデータが入力された場合は、 箱の中の値(R)を上書きするイメージのプログラムを書きたいのですが可能でしょうか。
お礼
回答ありがとうございます。 シートに値を保存させることにします。 本当にありがとうございました。