Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6171 / 13644 ツリー ←次へ | 前へ→

【46801】ユーザーフォーム間でこんなことできますか? 暴れん坊 07/2/15(木) 16:30 質問[未読]
【46803】Re:ユーザーフォーム間でこんなことできま... Kein 07/2/15(木) 16:50 発言[未読]
【46808】Re:ユーザーフォーム間でこんなことできま... ichinose 07/2/15(木) 22:02 発言[未読]
【46813】Re:ユーザーフォーム間でこんなことできま... 暴れん坊 07/2/16(金) 0:24 お礼[未読]

【46801】ユーザーフォーム間でこんなことできます...
質問  暴れん坊  - 07/2/15(木) 16:30 -

引用なし
パスワード
   始めまして、初心者です。実は色々調べてみたのですが、解らなくて投稿します。
どなたか、ご教授下さい。

ユーザーフォームAがあり、そのフォーム上にテキストボックス1、2とコマンドボタン1と2が配置してあります。
コマンドボタン1をクリックするとユーザーフォームBが表示される設定がしてあります。
ユーザーフォームB上にテキストボックス1´、2´とコマンドボタン1´が配置してあります。

ユーザーフォームA上のコマンドボタン1をクリックし、ユーザーフォームBを展開し
ユーザーフォームB上のテキストボックス1´、2´に値を入力し、コマンドボタン1´
をクリックすると、その値がユーザーフォームA上のテキストボックス1、2に転記され
更にコマンドボタン2をクリックした内容の仕事をさせる。

つまり、サブ入力フォームを作り、そこで入力した内容をメインフォーム上のテキスト
ボックスに転記するのと同時にサブ入力フォーム上のコマンドボタンで、メインフォームのプライベートプロシージャを実行させたいわけです。

内容が不明瞭かとは思いますが、よろしくご教授ください。お願い致します。

【46803】Re:ユーザーフォーム間でこんなことでき...
発言  Kein  - 07/2/15(木) 16:50 -

引用なし
パスワード
   ユーザーフォームを複数用意するのは、最終的な手段だと考えて下さい。
その前にまず、一つのユーザーフォームでボタンを押したら InputBox を
出してそれを
>サブ入力フォーム
とすることが出来ないか ? ダメならそのユーザーフォームにマルチページ
を追加して、そこへテキストボックスを配置するのはどうか ? などと構想
するのです。その方が無駄にメモリーを消費せずに済むし、マクロも簡単に
なるというメリットがあります。検討してみて下さい。

【46808】Re:ユーザーフォーム間でこんなことでき...
発言  ichinose  - 07/2/15(木) 22:02 -

引用なし
パスワード
   こんばんは。

>ユーザーフォームAがあり、そのフォーム上にテキストボックス1、2とコマンドボタン1と2が配置してあります。
>コマンドボタン1をクリックするとユーザーフォームBが表示される設定がしてあります。
>ユーザーフォームB上にテキストボックス1´、2´とコマンドボタン1´が配置してあります。
>
>ユーザーフォームA上のコマンドボタン1をクリックし、ユーザーフォームBを展開し
>ユーザーフォームB上のテキストボックス1´、2´に値を入力し、コマンドボタン1´
>をクリックすると、その値がユーザーフォームA上のテキストボックス1、2に転記され
>更にコマンドボタン2をクリックした内容の仕事をさせる。
>
>つまり、サブ入力フォームを作り、そこで入力した内容をメインフォーム上のテキスト
>ボックスに転記するのと同時にサブ入力フォーム上のコマンドボタンで、メインフォームのプライベートプロシージャを実行させたいわけです。
出来るという例題コードです。

ユーザーフォームAに当たるユーザーフォームをUserform1とします。
  Userform1には、
    Textbox1 テキストボックス
    Textbox2 テキストボックス
    Commandbutton1 コマンドボタン Userform1を表示させる
    Commandbutton2 コマンドボタン Textbox1とTextbox2の内容を
                     メッセージボックスで表示させる

ユーザーフォームBに当たるユーザーフォームをUserform2とします。
  Userform2には、
    Textbox1 テキストボックス
    Textbox2 テキストボックス
    Commandbutton1 コマンドボタン Userform2のTextbox1及び、Textbox2の
                     内容をUserform1のTextbox1
                     及び、Textbox2に代入し、Userform1の
                     Commandbutton2をクリックした時と
                     同じ動作を行う

というコントロールの配置だとします。

Userform1のモジュール

'============================================================
Option Explicit
Private Sub CommandButton1_Click()
  UserForm2.Show
End Sub
'============================================================
Private Sub CommandButton2_Click()
  MsgBox TextBox1.Text & vbCrLf & TextBox2.Text
End Sub


userform2のモジュール

'=================================
Private Sub CommandButton1_Click()
  With UserForm1
    .TextBox1.Text = TextBox1.Text
    .TextBox2.Text = TextBox2.Text
    .CommandButton2 = True
    End With
End Sub


標準モジュールに
'=====================================================
Sub main()
  UserForm1.Show
End Sub

これでmainを実行して上記の仕様のように作動するか確認してみてください。
(Userform1とUserform2の結合度はちょっと強いかなあ・・)
まっ、可能だよという例ということで・・・。

【46813】Re:ユーザーフォーム間でこんなことでき...
お礼  暴れん坊  - 07/2/16(金) 0:24 -

引用なし
パスワード
   keinさん、ichinoseさんご教授感謝いたします。
この度は、keinさんよりご教授いただいた、マルチページを使用してクリア
しました。ありがとうございました。
また、ichinoseさんよりご教授いただいた代入する方法も解からず未熟さを
痛感しております。CommandButton2 = Trueで良かったのですね。

両人には本当に感謝しております。有難うございました。

6171 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free