- ベストアンサー
テキストボックスの値を他のブックのセルで表示したい
- EXCELsolo365 Windows10で、テキストボックスに入力された日付を他のブックのセルに直接リンクして表示したいです。
- マクロの記録で行うと、Pasteメソッドが失敗してしまいます。
- Sub test()の記述で、A.xlsmのA1セルの値をB.xlsmのCCシートのD1セルにリンクして表示する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> B.xlsm ブックは毎月1回、異なるシートに更新しますので No2を回答するときにこの補足を見ていなかったのですが シートは「CC」限定ではなく、コード実行時に選択されているシートにリンクする場合は Sub test2() Workbooks.Open Filename:=ThisWorkbook.Path & "\A.xlsm" Windows("B.xlsm").Activate ActiveSheet.Range("D1").Formula = "=[A.xlsm]Sheet1!$A$1" End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
なんで複雑な問題にして(テキストボックスなど使って)考えるのか。あえて質問するなら、事情を書いておくべきと思う。 (1)テキストボックスを使うのは、テキストボックスに文字を打ち込み、それがいわった終わったことを知らせるため、コマンドボタンを1つ設けるようにすべきだろう。これが書いてないのはなぜ。 すると、コマンドボタンのクリックイベントで、 Private Sub CommandButton1_Click() Worksheets("Sheet1").Range("A1") = UserForm1.TextBox1.Text End Sub でA1セルに値がセットされる。 (2)他ブックのシートセルに値代入 両ブックを開いている状態で、 Sub test01() x = Workbooks("コントロール動的作成.xlsm").Worksheets("Sheet1").Range("A1") MsgBox x Application.Windows("XXXX.xlsx").Activate Workbooks("YYYY.xlsx").Worksheets(3).Range("B2").Value = x End Sub 質問ではB2はU2ですが。 あと ・リンク貼り付けにする(上記は代入) ・ブックを開かないで行う など積み残しているが、とりあえず、挙げます。 2つのブックをまたいで処理するのは、学習が初心者には大変で、出来れば避けるのが賢明かと。 すでに出ている回答の方を検討すべきかと。
- kkkkkm
- ベストアンサー率66% (1734/2604)
ThisWorkbook.Path & "A.xlsm" は ThisWorkbook.Path & "\A.xlsm" じゃないと開かないと思いますがタイプミスでしょうか。 全体的に以下のようにしてみてはいかがでしょう。 Sub test() Workbooks.Open Filename:=ThisWorkbook.Path & "\A.xlsm" Windows("B.xlsm").Activate Sheets("CC").Select Range("D1").Formula = "=[A.xlsm]Sheet1!$A$1" End Sub
- kkkkkm
- ベストアンサー率66% (1734/2604)
B.xlsm のセルU2で「=」を入力してA.xlsmのセルA1を選択してリンクしておけばいかがですか。
補足
すみません。B.xlsm ブックは毎月1回、異なるシートに更新しますので、更新された時も自動でA.xlsm の日付を入れたいです。入れるセル番地はいつも同じにしたいです。
お礼
あありがとうございます。自分が思っているようにできました。感謝です。