• ベストアンサー

2010でShiftキーを使っても自動実行が動く

Office 2010 で Sub Auto_Open() が入ったブックがあります。ExcelヘルプではShiftキーを押しながらExcelを開くと自動実行しないと書いてありますが2003では確認できましたが2010では自動実行してしまいます。 ほかに設定があるのでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

「マクロのセキュリティ」設定で「すべてのマクロを有効にする」と、C)の方法でShiftキーは効きません。 これは2003で「セキュリティレベル」を「低」に設定しておく場合も同じです。 Shiftキーでの自動実行制御をしたい場合は「警告を表示してすべてのマクロを無効にする」設定に変更する必要があるでしょう。 http://office.microsoft.com/ja-jp/excel-help/HA010354316.aspx セキュリティレベル-低 の設定は >危険なコードが実行される可能性があります という事で推奨されていません。その点は自己責任の範囲として判断されれば良いかと思います。 ただし、この設定の場合は仕様でしょうから、妥協せざるを得ないのではないでしょうか。

obone
質問者

お礼

ありがとうございました。勉強不足でした。

その他の回答 (2)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

>C)Excel2010を起動せず、エクスプローラ等から[Enter]orダブルクリックで開く > この時+Shiftキー・・・自動実行しない。 >「マクロのセキュリティ」設定で「すべてのマクロを有効にする」と、C)の方法でShiftキーは効きません。 すみません。検証が間違っていました。訂正です。 「セキュリティ」設定は関係がなく、「有効なアドインの有無」によって挙動が違うようです。 【アドインなしの場合】 a)Excel2010を起動せず、デスクトップファイルを[Shift]+[Enter]で開く   ×・・Auto_Openが実行される b)Excel2010を起動せず、デスクトップファイルを[Shift]+ダブルクリックで開く   ○・・Auto_Openが実行されない 【アドインありの場合】(1つ以上「有効なアドイン」がある) c)Excel2010を起動せず、デスクトップファイルを[Shift]+[Enter]で開く   ○・・Auto_Openが実行されない d)Excel2010を起動せず、デスクトップファイルを[Shift]+ダブルクリックで開く   ○・・Auto_Openが実行されない アドインの有無に関わらず、[Shift]+ダブルクリックではAuto_Openが実行されないという結果でした。 (b)、(d) 質問者さんのケースと違いますね。 環境の違いが影響しているか、別の設定があるのかもしれません。 こちらの環境は[winXPsp3/xl2010sp1](他バージョンとの共存あり) いずれにしても、事前に「分析ツール」などのアドインを有効にしておくと、 セキュリティ設定に関係なく、 Excel2010起動と同時にAuto_Open無効でファイルが開けるようです。 #環境によるのかもしれませんが。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

そのファイルの開き方によって挙動が変わります。 A)Excel2010を起動しておいて、メニュー[ファイル]-[開く]  この時+Shiftキー・・・自動実行しない。 B)Excel2010を起動しておいて、エクスプローラ等から[Enter]orダブルクリックで開く  この時+Shiftキー・・・自動実行する。 C)Excel2010を起動せず、エクスプローラ等から[Enter]orダブルクリックで開く  この時+Shiftキー・・・自動実行しない。 「自動実行しない」というより「デザインモードで開く」という事ですね。 ちなみに、前述の3通りの挙動は2003でも同じはずなのですが、 実際にはどこに置いたファイルをどのように開いてますか? #「XLSTART」フォルダ内のファイルはShiftキーは効かないと思います。

obone
質問者

補足

説明不足ですみません ファイルはディスクトップにあります。 起動はC)のように2010を起動しないでディスクトップにあるファイルをShiftキーを押しながらダブルクリックです。 マクロの設定はすべてのマクロを有効を選んでいます。 ちなみにA)の方法では起動しないのを確認できました。Excel2010を起動せずがうまくいかないようです。