|
なんじゃ、こりゃ・・・。 さん 、おはようございます。
>
>Book1とBook2があります。
>
>Book2において、あるセルを選択しておきます。(アクティブセルにする)
>そして、Book1を開き、あるセルに値を入力します。
>
>そのとき、Book2の選択されていたセルに、Book1に入力された値を自動的に入れることは可能でしょうか。
>可能であれば、どのように実現できるでしょうか。
Book2のThisworkbookのモジュールに(標準モジュールではないですよ)
'==================================================================
Option Explicit
Private setrng As Range
Private WithEvents app As Application
'=================================================================
Sub 監視開始()
Set app = Application
Set setrng = ActiveCell
End Sub
'====================================================================
Private Sub app_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
setrng.Value = Target(1).Value
Application.EnableEvents = True
End Sub
'===================================================================
Sub 監視解除()
Set app = Nothing
Set setrng = Nothing
End Sub
まず、Book2のあるセルをアクティブにした状態で 監視開始 を実行します。
これでBook2のデータを移行するセルの選択とイベントの発生を可能にしています。
別ブック(同じブックでも今は、イベントが発生します)を開いて、適当なセルに
値を入力してください。監視開始を実行したときにアクティブだったセルに
値が反映されるはずです。
イベント発生を止めたいなら、監視解除を実行します。
上記の例では、Book2の別セルに入力しても同じ現象になりますし、イベントを
Book1のみ発生するというようにはしていませんが、
もしBook1だけの入力を反映したいならイベント内(app_SheetChange)で
条件を追加すれば出来そうですが・・・。
試してみてください。
|
|