|
mitu さん,Jaka さん,おはようございます。
>
>>Workbooks("Book2").Sheets("XXX").Range("A1").value
>>とか
>>ActiveSheet.range("B1").value
>>で、取得できますよ。
>>どうやって取得しているのでしょうか?
>
>Book2でセルを選択した情報を、Book1で開いたUserForm1に取り込むことができないのです。
>
>Book2のPrivate Sub Workbook_SheetSelectionChange
>の中に気持ち的には、
>Workbooks("Book1").UserForm1.TextBox=activecell.value
>のように記載したいのです。
記述内容から推測すると、BOOK1のユーザーフォームはモーダレスで表示されて
いるということですね?
Jaka さんの方法をコードにすると・・・、
まずBook1のユーザーフォーム(Userform1)のセル内容を表示する
テキストボックスをTextbox1とします。
Book1のThisworkbookのモジュールに
'====================================================
Sub main()
UserForm1.Show vbModeless
End Sub
'====================================================
Function getfrm(frmnm) As Object
Dim frm As Object
Set getfrm = Nothing
For Each frm In UserForms
If UCase(frm.Name) = UCase(frmnm) Then
Set getfrm = frm
Exit For
End If
Next
End Function
book2の対象シートモジュールに(仮にSheet1)
'==================================
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim frm As Object
Set frm = Workbooks("book1").getfrm("userform1")
If Not frm Is Nothing Then
frm.Controls("textbox1").Value = ActiveCell.Value
End If
End Sub
これで試してみて下さい
|
|