|
▼yhar さん:
こんばんは。
>具体的な仕様も書かずに恐縮ですが、やりたいことは
>●既に起動している別インスタンスのワークシートのセル
> の値を
>●一定の周期で参照して取り込む
>と言うことです。
>
>もう少し具体的?に言うと
>
>Dim app As Application
>Set app = 開いている別インスタンスのファイルの名前
>Range("a5").Value = app.Worksheets("sheet1").Range("a1").Value
>
>と言った記述で参照出来ないかと言うことです。
>ご提案のコードを見る限り出来そうな気がしますが、上のSetとDimの
>ところをどう表記して良いのか… 基本が分かっていないのが良く分
>かる今日この頃です。
>
>ちなみに下記のコードで別インスタンス起動をしています。
でしたら、下記のMyappというオブジェクトか これを基に開いたブックオブジェクトを
いつでも参照可能にしておけば、よいですね!!
public Myapp As Object
Public mybook as workbook
sub main()
Set Myapp = CreateObject("excel.Application")
> With Myapp
> .Visible = True
set mybook=.Workbooks.Open(ThisWorkbook.Path & "\ura.xls")
> End With
なんてしておけば、
Range("a5").Value = mybook.Worksheets("sheet1").Range("a1").Value
で参照可能です。私なら、たぶんこの方法が第一候補ですね!!
他には
ThisWorkbook.Path & "\ura.xls"このブックが既に別インスタンスのExcelで
開かれている状態なら
Sub test2()
Dim bk As Workbook
Set bk = GetObject(ThisWorkbook.Path & "\ura.xls")
MsgBox bk.Worksheets("sheet1").Range("a1").Value
End Sub
こんな方法でもブックオブジェクトが取得できます。
大抵、前者でうまくいきますが、試してみてください
|
|