|
▼HIRO さん:
こんばんは。
>
>例
>売掛→ 品名 単価 数量 販売日
>買掛→ 品名 単価 数量 仕入日 支払日 支払先
問題になっているのは、あるユーザーフォームから、
別のユーザーフォームを表示したときのインターフェースだと思います。
極々、簡単な例題を考えましょう。
新規ブックにユーザーフォームをふたつ作成します。
最初のユーザーフォーム
データ入力用のユーザーフォーム
ユーザーフォーム名 −−Userform1
テキストボックス Textbox1
コマンドボタン Commandbutton1
二つ目のユーザーフォーム
データ選択用のユーザーフォーム
ユーザーフォーム名 −−Userform2
コンボボックス ComboBox1
コマンドボタン Commandbutton1
という二つのユーザーフォームを作成してください。
では、コードです。
Useform2のモジュール
'============================================================
Public wtxt As MSForms.TextBox
'↑コンボボックスで選択した内容を反映するテキストボックス
' これがこのUserform2が外部とのI/Oに使用する変数です
' これを
' public Frm as userform
' としてユーザーフォームそのもを変数として設定する方法もありますが、
' そうするとUserfrom2の機能が限定されてしまいます。
' 限定されても使い勝手が良いという場合もありますから、ここは
' よく本来の仕様を検討してください
'=============================================
Private Sub CommandButton1_Click()
wtxt.Text = ComboBox1.Text
Unload Me
End Sub
'=============================================
Private Sub UserForm_Initialize()
With ComboBox1
.List() = Array("A商品", "B商品", "C商品", "D商品", "E商品")
.ListIndex = 0
End With
End Sub
Usefrom1のモジュール
'===================================================================
Private Sub CommandButton1_Click()
Load UserForm2
With UserForm2
Set .wtxt = TextBox1
.Show
End With
End Sub
標準モジュールに
sub main()
userform1.show
end sub
として、mainを実行して見てください。
Userform1が表示されます。
コマンドボタンをクリックしてください。
Userform2が表示されます。
コンボボックスから、適当な商品を選択し、コマンドボタンをクリックしてください
コンボボックスで選択した内容がUserform1のテキストボックスに
表示されます。
この考え方を実際のプログラムに応用してください。
まずは、試してみてください。
|
|