Excel VBA質問箱 IV

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

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


4489 / 13646 ツリー ←次へ | 前へ→

【56323】Excel 多重起動時の処理 rote1024 08/6/13(金) 11:28 質問[未読]
【56325】Re:Excel 多重起動時の処理 Abebobo 08/6/13(金) 11:38 発言[未読]
【56332】Re:Excel 多重起動時の処理 rote1024 08/6/13(金) 18:29 お礼[未読]
【56333】Re:Excel 多重起動時の処理 Abyss 08/6/13(金) 18:56 回答[未読]

【56323】Excel 多重起動時の処理
質問  rote1024  - 08/6/13(金) 11:28 -

引用なし
パスワード
   "後から開かれたBook"が"元より開かれていたBook"と同じ"Excel application"上でOpenされることを阻止したいのですがどうすればよいでしょうか?

"元より開かれていたBook"はマクロにより処理中です。
"後から開かれたBook"はユーザーにより何が開かれるか特定できません。

また、"元から開かれていたBook"のマクロが影響を受けないような
テクニックがありましたらご教授お願いします。

【56325】Re:Excel 多重起動時の処理
発言  Abebobo  - 08/6/13(金) 11:38 -

引用なし
パスワード
   rote1024 さん こんにちは

Sub tt()
Dim Main As Workbook
Set Main = ThisWorkbook
 With Main
  .Sheets(1).Range("A1").Select
      ・
      ・
 End With
End Sub

のように、ThisWorkbook でマクロの書かれているエクセルを指定できます。

【56332】Re:Excel 多重起動時の処理
お礼  rote1024  - 08/6/13(金) 18:29 -

引用なし
パスワード
   ▼Abebobo さん:
>rote1024 さん こんにちは
>
>Sub tt()
> Dim Main As Workbook
> Set Main = ThisWorkbook
> With Main
>  .Sheets(1).Range("A1").Select
>      ・
>      ・
> End With
>End Sub
>
>のように、ThisWorkbook でマクロの書かれているエクセルを指定できます。

早々の返答ありがとうございます。
明示的に指定することで実行範囲を限定するということですね。
今後のマクロ作成に役立てたいと思います。

ところで、本題も自己解決出来たので報告させていただきます。
以下の方法で解決しました。

Private Sub Workbook_Deactivate()
  If ActiveWorkbook.Name <> ThisWorkbook.Name Then
     ActiveWorkbook.Close
  End If
End Sub

また、もっとスマートでエクセレントな方法が他にございましたらご教授ください。

【56333】Re:Excel 多重起動時の処理
回答  Abyss  - 08/6/13(金) 18:56 -

引用なし
パスワード
   >Private Sub Workbook_Deactivate()
>  If ActiveWorkbook.Name <> ThisWorkbook.Name Then
>     ActiveWorkbook.Close
>  End If
>End Sub

これはその後開くWorkbookを強制的に閉じるコードですね。

もし、手動で開くWorkbookを別のExcel Application上に
乗せたい場合、↓の方法があります。

(元のWorkbook: ThisWorkbook Module)

Private Sub Workbook_Open()
  With Application
    .DisplayAlerts = False
    .IgnoreRemoteRequests = True
    .DisplayAlerts = True
  End With
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.IgnoreRemoteRequests = False
End Sub

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