|
スーザン さん、こんばんわ。
>具体的に言いますと、フォームが複数あり、ワードのシートに転記したいのです。
>
>フォームAの情報を、ワード上の7段目
>フォームBの情報を、ワード上の8段目
>フォームCの情報を、ワード上の9段目
>フォームDの情報を、ワード上の10段目に、入力後、コマンドボタンをクリックして、ワード上にそれぞれ転記する。
内容からすると、マルチページで分岐したほうがよさそうですが、フォームが4つあるということでしょうか?
それぞれのフォームにCommandButton1とTextBox1があるとして(オブジェクト名が違う場合はそれに合わせてください)。
○FormAに。
Private Sub CommandButton1_Click()
Test TextBox1.Text, 7, Me
End Sub
○FormBに。
Private Sub CommandButton1_Click()
Test TextBox1.Text, 8, Me
End Sub
○FormCに。
Private Sub CommandButton1_Click()
Test TextBox1.Text, 9, Me
End Sub
○FormDに。
Private Sub CommandButton1_Click()
Test TextBox1.Text, 10, Me
End Sub
○標準モジュールを挿入して以下を記述。
Sub Test(arg1 As String, arg2 As Long, Optional arg3 As Object)
'ドキュメントの先頭
ActiveDocument.Range(Start:=0, End:=0).Select
'3行目に移動(下に2つ移動)
Selection.MoveDown wdLine, arg2 - 1, wdMove
'そこに文字を挿入(選択範囲の拡張なし)
With Selection
.InsertBefore arg1
.Collapse Direction:=wdCollapseEnd
End With
'フォームを閉じる
If Not arg3 Is Nothing Then arg3.Hide
End Sub
A〜Cのボタンはフォームの切り替えで、Dだけ転記の場合は、
○FormAに。
Private Sub CommandButton1_Click()
Me.Hide
UserFormB.Show
End Sub
○FormBに。
Private Sub CommandButton1_Click()
Me.Hide
UserFormC.Show
End Sub
○FormCに。
Private Sub CommandButton1_Click()
Me.Hide
UserFormD.Show
End Sub
○FormDに。
Private Sub CommandButton1_Click()
Test UserFormA.TextBox1.Text, 7
Test UserFormB.TextBox1.Text, 8
Test UserFormC.TextBox1.Text, 9
Test Me.TextBox1.Text, 10, Me
End Sub
◎標準モジュールは上と同じ。
フォームを切り替えるよりもマルチページやフレームで対応するほうが簡単かもしれないですね。
|
|