みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBA 違うbookのフォームにデータを

ひとつのエクセルに BOOK1,2 を 起こして
BOOK1 から BOOK2 の 自作フォームの テキストに 値は 送り込めないのでしょうか?

シートのセルと ボタンは 可能なのですが・・・

Workbooks("Book2.xlsm").Worksheets("Sheet1").Range("A1:a4").Copy
Workbooks("test.xlsm").Worksheets("Sheet2").Range("A1:a4").PasteSpecial

Workbooks("test.xlsm").Worksheets("Sheet2").opb2.Value = True

フォームには何か書き方が有るのでしょうか

投稿日時 - 2014-10-18 11:02:30

QNo.8794534

困ってます

質問者が選んだベストアンサー

シートやセルに対する操作のように直接扱いませんが・・・

フォームのあるブックに値を受け取りフォームに値をセットするプロシージャを用意し、
別のブックからそのプロシージャへ書き込む値を渡す方法です。

以下の設定を【Book1】【Book2】でして頂き、
【Book1】の「Sample1」を実行してください。


【Book1】
(1)以下のコードを標準モジュールへ記述

  Sub Sample1()
    Dim msg As String
    msg = "入力する文字列"
    '変数msgを引数としてBook2のSample2を実行
    Application.Run "Book2!Sample2", msg
  End Sub

【Book2】
(1)UserForm1を作成してTextBox1コントロールを配置
(2)以下のコードを標準モジュールへ記述

  Sub sample2(msg As String)
    Load UserForm1
    '受け取った引数をTextBox1にセット
    UserForm1.TextBox1.Value = msg
    UserForm1.Show
  End Sub

投稿日時 - 2014-10-18 15:31:58

お礼

有難うございます。

これは、思いつかなかったです。
単純に、別BOOKのセルに値送り込んで、チェンジイベントひらって、同じBOOKのフォームに送り込むって単純な方法でとりあえず、動くことは動くようです。

投稿日時 - 2014-10-18 18:44:11

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問