

■課題  
excelブックを開くタイミングで、作業グループを自動解除する方法を探してます。  
対象は１つのブックだけではなく、とある数台のPCで開くブックを全て対象にしたいと考えます。  
(環境＝win7+Excel2010、Win10+excel2016、2つ利用）

■理由  
作業グループに気づかずに編集すると、意図しない変更が発生し、これを回避したいと考えます。

■当方の試行錯誤  
個人用マクロブック（PERSONAL.XLSB）に次のようなマクロを入れてみました。

[code]

    Sub auto_open()
        If ActiveWindow.SelectedSheets.Count > 1 Then
            MsgBox "作業グループを解除します"
            ActiveWindow.SelectedSheets(1).Select
        End If
    End Sub
    
[/code]

単なるブック（Book1.xlsmなど）にマクロを入れると、動作したのですが、  
個人用マクロブック（PERSONAL.XLSB）にマクロを入れると、エラーになりました。  
typename(ActiveWindow)="Nothing"となっていることが原因だと考えます。

少し直せば、解決するでしょうか？ 別の方法で解決するでしょうか？

以上、  
本課題の解決方法ご存知の方いらっしゃいましたら、ご教授よろしくお願いします。

* * *

**コメントより追記**

  * エラーは以下です。  
「実行時エラー'91':オブジェクト変数またはWithブロック変数が設定されていません。」

  * エラーを確認した環境は、win7+excel2010でした。
  * `ActiveWorkbook.Worksheets(1).Select`も上と同じエラーでした。
  * `typename(ActiveWorkbook)`も"Nothing"でした。  
`ActiveWindow`も`ActiveWorkbook`も"Nothing"という状況なので、  
個人用マクロブック（PERSONAL.XLSB）のauto_openのタイミングでは、  
`ActiveWindow`も`ActiveWorkbook`も定まっていない様子です


CC BY-SA 4.0
2019-03-04T04:05:02.180
53181
2019-03-05T02:19:29.397
2019-03-05T02:19:29.397
7676
31158
question
vba excel
excel vba、開いたブック内の作業グループを自動解除したい