Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


30339 / 76732 ←次へ | 前へ→

【51660】Re:ループ中の他のBookの制御
発言  ichinose  - 07/9/28(金) 19:36 -

引用なし
パスワード
   ▼若だんな さん:
こんばんは。

>>あとは、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」を実行してください。

一例です。

0 hits

【51654】ループ中の他のBookの制御 若だんな 07/9/28(金) 15:24 質問
【51656】Re:ループ中の他のBookの制御 ichinose 07/9/28(金) 15:58 発言
【51657】Re:ループ中の他のBookの制御 若だんな 07/9/28(金) 16:15 お礼
【51660】Re:ループ中の他のBookの制御 ichinose 07/9/28(金) 19:36 発言
【51661】Re:ループ中の他のBookの制御 若だんな 07/9/28(金) 21:38 お礼

30339 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free