Excel VBA質問箱 IV

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

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


47993 / 76732 ←次へ | 前へ→

【33679】Re:別のbookで開いたUserFormにデータを挿入したい
発言  ichinose  - 06/1/18(水) 6:43 -

引用なし
パスワード
   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


これで試してみて下さい

0 hits

【33633】別のbookで開いたUserFormにデータを挿入したい mitu 06/1/17(火) 9:45 質問
【33634】Re:別のbookで開いたUserFormにデータを挿... Jaka 06/1/17(火) 9:56 発言
【33636】Re:別のbookで開いたUserFormにデータを挿... mitu 06/1/17(火) 11:30 発言
【33641】Re:別のbookで開いたUserFormにデータを挿... Jaka 06/1/17(火) 12:14 発言
【33685】一応。 Jaka 06/1/18(水) 11:35 発言
【33679】Re:別のbookで開いたUserFormにデータを挿... ichinose 06/1/18(水) 6:43 発言
【33721】Re:別のbookで開いたUserFormにデータを挿... mitu 06/1/19(木) 9:08 お礼

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