- ベストアンサー
EXCELマクロを無効にして開く方法
- EXCEL2007で作成されたマクロ有効ファイル(XLSM形式)をマクロ無効の状態で開く方法が分からず困っています。
- マクロの内容は Workbook_Open 処理で、特定セルに入力されているEXCELファイルを開き、自身は閉じるというものです。
- マクロを無効にして開くためには、マクロのセキュリティ設定を変更し、該当のファイルを開くことが必要です。他に分かりやすい方法があれば教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
Win7、Excel2010、ダブルクリックでファイルを開く設定、の場合ですが、 Excelが開いていない状態で、 一旦、ファイル(またはショートカット)をクリックしてから、 Shiftキーを押し、そのまま、ダブルクリック、 以上の手順で、セーフモードでExcelとブックが開きます。 つまり、Private Sub Workbook_Open()は実行されません。 環境によって手順は異なると思いますけれども。
その他の回答 (5)
- WindFaller
- ベストアンサー率57% (465/803)
確認しました。 エクスプローラからでは、Shift + も、Ctrl+ も、どの方法も出来ませんでした。特に、エクスプローラ上からでは、Shift + は、多くのファイルが選択されてしまうので、ヒヤッとしました。 メニューから、Ctrl + で、Excelを選択する方法は、セーフモードで立ち上がるから、それは、それでもよいと思うのですが、それは目的とは違うようです。 今のところ、Excel 2010はないのですが、 私が行う場合(Auto_Openの自動実行をさせないために)は、 最初に、Excelで、新規ワークブックが立ち上げます。 次に、Excelのメニューから、ファイル名を選び、 Shiftキーを押しながら、ファイル名を選び、クリックします。 そうすれば、Auto_Openは実行されません。 ところで、話は別ですが、質問のマクロは、少し危ういような気がしますが。 今回のことで、ファイル名を別のブックにしたり、テキストにしたり、iniファイルにしたりする方法もあるのではないかと思います。 サンプルを作ってみました。 以下は、ブックと同じフォルダに、"FileNames.txt"を置いて使うものです。 FileNames.txt の中身は、 ------------- f120929.xls f121002.xls f121005.xls f121008.xls ------------- のようになっています。もし、自動実行を止めたい場合は、テキストファイルの先頭に、ありえないファイル名を書けば、エラーが出て止まります。fAr(10)は、現在9個ですが、この数を増やせば、もっとブックが開けます。常識的な範囲で入れれば良いです。 '// Private Sub Workbook_Open() Dim Fno As Integer Dim f As String Dim mPath As String Dim fAr(10) As Variant 'ファイルリストは9個まで、最後は空ける Dim i As Long Dim j As Long 'ファイルリストは、このブックと同じフォルダに置かなくてはなりません。" Const FILE_LIST As String = "FileNames.txt" On Error GoTo ErrHandler mPath = ThisWorkbook.Path & "\" Fno = FreeFile() If Dir(mPath & FILE_LIST) = "" Then MsgBox "file list が見つかりません。", 48 Exit Sub End If Open mPath & FILE_LIST For Input As #Fno Do While Not EOF(Fno) Line Input #Fno, f fAr(i) = f i = i + 1 Loop For j = 0 To UBound(fAr) - 1 '最後のIndex は、必ず開けます。 Workbooks.Open fAr(j) If fAr(j + 1) = "" Then Exit For Next j ThisWorkbook.Close False ErrHandler: MsgBox Err & Err.Description End Sub
お礼
ご回答、アドバイスありがとうございます。 実際のマクロの内容は INIファイルの参照も含めて 様々な事をしており、普段はサーバーのタスクスケジュールで 設定して幾つかの処理を自動で行わせているのですが 質問として上げるのに辺り、短絡的に作った内容なのです。 他の者が今後管理する事になり、これまではINIファイルにマクロ自動起動の フラグを持たせて管理をしていたのですが、それ以外にも2重3重の防衛手段 (フラグの書換を忘れていてもリカバー出来る様に)手順を考えていたので そのうちの1つとして、質問させて頂きました。 あと、提示頂いたサンプルですがINIファイル内容より、ファイル名を取得してきたら Dir関数等でファイルの存在チェックを掛けると、更に良いと思います。
- cj_mover
- ベストアンサー率76% (292/381)
#2、3、cjです。 すみません。訂正だけ。 #2 (誤) > 以上の手順で、セーフモードでExcelとブックが開きます。 (正) 以上の手順で、デザインモードでExcelとブックが開きます。 セーフモードはCtrl+でアプリケーション開くやつでしたね。 失礼しました。
お礼
度々ありがとうございます。 セーフモード、デザインモードの認識が これまで無かったので勉強になります。 わざわざ、ありがとうございます。
- tsubuyuki
- ベストアンサー率45% (699/1545)
落ち着いてゆっくりいきましょう。 エクスプローラーなどで、シングルクリックでファイルを選択。 その後、Shift+Enterキーで開く動作、ファイルが開ききるまでShiftは押しっぱなし。 言ってみれば、ダブルクリックと同じ動作なんですけどね。 選択して、一呼吸おいて、開いてみませんか。
お礼
ご回答ありがとうございます。 記載頂いた内容は、先の回答や私なりに調べた内容から 認識しておりますので、問題ございません。 ダブルクリック以外にも、該当ファイル選択してから (1度クリックして選択されている状態) 右クリックメニューを開き、Shiftキーを押下しつつ「開く」や Shiftキーを押下しつつ、右クリックメニューを開き 「編集」・「読み取り専用で開く」等 ※Shift+右クリック専用メニュー Shiftキーを押下するタイミングや、押し続けているタイミング等も 色々と試してみても、マクロ無効状態で開けないので 環境的な問題なのかもと思ってきております。 該当ファイル以外にも、類似の WorkBook_Open で処理を行う マクロを組んだXLSMファイルを作成して試してみておりますが 同じ状態であるため、ファイルの問題では無さそうなのです。 ・・・あと自分の掲載した質問への追記的なものってどうやるんだろう・・・;
- cj_mover
- ベストアンサー率76% (292/381)
こんにちは。#2、cjです。 解決策は見つけたということのようですので、よかったです。 でもまぁ、できれば簡単な方が良いかな?色々方法があった方がよいかな? ということもあって、一応、もう一度レスしてみます。 私の#2、 > 一旦、ファイル(またはショートカット)をクリックしてから、 これ↑伝わっていますでしょうか? 対象ファイルのアイコンがアクティブな状態にしてから Shift + ダブルクリック、という意味ですので、 いきなり、Shift + ダブルクリック、ではうまくいかないです。 もっとも、Vista環境は私の方、確認しようがないので、OSの問題で違っていたとしても 不思議ではありませんが。
お礼
度々のご回答ありがとうございます。 > 一旦、ファイル(またはショートカット)をクリックしてから、 こちらの意味は重々理解しております。 ダブルクリック以外にも、該当ファイル選択してから (1度クリックして選択されている状態) 右クリックメニューを開き、Shiftキーを押下しつつ「開く」や Shiftキーを押下しつつ、右クリックメニューを開き 「編集」・「読み取り専用で開く」等 ※Shift+右クリック専用メニュー Shiftキーを押下するタイミングや、押し続けているタイミング等も 色々と試してみても、マクロ無効状態で開けないので 環境的な問題なのかもと思ってきております。 該当ファイル以外にも、類似の WorkBook_Open で処理を行う マクロを組んだXLSMファイルを作成して試してみておりますが 同じ状態であるため、ファイルの問題では無さそうなのです。
- FEX2053
- ベストアンサー率37% (7991/21371)
Shiftキーを押しながらダブルクリックで開く・・・で行けたんじゃないかと。
お礼
早速のご回答ありがとうございます。 当方の環境は、EXCEL2010環境になりますが Shift キーを押しながらダブルクリックや 右クリックメニューの開く・編集・読み取り専用で開くを 試してみましたが、マクロ無効状態になりませんでした。 なお、Shiftキーはファイルが開かれるまで ずっと押しっぱなしにしました。 EXCELの設定の問題でしょうか?
お礼
ご回答ありがとうございます。 当方の環境は、WindowsXP+EXCEL2010環境になります。 Shift キーを押しながらダブルクリックや 右クリックメニューの開く・編集・読み取り専用で開くを 試してみましたが、マクロ無効状態になりませんでした。 色々と試していた所、別途EXCELを起動しておいて メニューよりファイルを開く際に、Shift+開く では マクロが実行されずに開く事が出来ました。 直接、該当のファイルを開く場合は、Shift+ダブルクリック(開く)等では Workbook_Open が実行されてしまいます。 EXCELの設定の問題でしょうか? なお、マクロセキュリティは「すべてのマクロを有効」の設定環境となります。
補足
昨日から他のOS・EXCEL環境にて同様の確認を 行ってみた所、Shift+ダブルクリックでマクロ無効と出来る端末もあれば 出来ない端末もあり、環境的な要因やEXCELの設定等も関係して くるのでは無いかとの想定に至りました。 本来の用途目的は、サーバーのタスクマネージャーにマクロファイルを 設定して自動起動し、質問のマクロとは少々異なる幾つかの処理を 行っているのですが、今後他の者に該当ファイルの管理を引き継がなければならない為 自動起動せずに開く方法に、3重位の手順を作っておきたかったのですが こちらの方法は環境に依存する可能性がありますので、手順に含める事を断念致しました。 ただ質問させて頂いた目的に対し、手法として出来る操作である事は間違いありませんので 度々の分かりやすい説明を踏まえた回答を頂いた点より、ベストアンサーとさせて頂きます。 また、他の方々におかれましても、ご回答・アドバイス本当にありがとうございました。