|
▼若だんな さん:
こんばんは。
>>あとは、Excelの別プロセスを起動させてそこでマクロを稼動させる方法なども
>>ありますが・・・。
>これはVBなどで作るイメージですか?
>参考までに、どのようやるのか教えていただけると勉強になります。
あくまでも参考までに・・・。
例として、Book1.XlsとBook2.Xlsという二つのブックを用意します。
Book1.Xlsの標準モジュールに
'============================================================
Option Explicit
Private stt As Boolean
Sub book1()
Do While stt = False
Range("a1").Value = Range("a1").Value + 1
DoEvents
Loop
End Sub
'============================================================
Sub set_stop()
stt = True
End Sub
book2.xlsの標準モジュールには、
'==================================
Option Explicit
Dim app As Application
'==================================
Sub start()
Set app = CreateObject("excel.application")
With app
.Visible = True
.Workbooks.Open ThisWorkbook.Path & "\book1.xls"
.OnTime Now(), "book1"
End With
End Sub
'==================================
Sub stopvba()
app.Run "set_stop"
End Sub
Book1.XlsとBook2.Xlsは、同じフォルダ内に保存してください。
一度、Book1.Xls、Book2.Xls及び、Excelを閉じて下さい。
Book2.Xlsを開いてください。
「start」というマクロを実行してください。
別プロセスのExcelが起動し、そのExcelでBook1.Xlsが開きます。
マクロ「book1」が実行します。(これはセルA1に1を加算するコードです)
Book2.Xlsが開いているExcelでは、自由に操作が出来ます・・、よね?
Book1.Xlsのマクロ「start」の実行の中止は、
Book2.Xlsの「stopvba」を実行してください。
一例です。
|
|