• ベストアンサー

マクロを無効にしてブックを開くマクロ

fileopenコマンドで、エクセルブックを開くとき、そのブックのマクロを無効にして開くコマンドを教えてください。マクロの記録でマクロを作ってみましたが、どちらで開いてみても同じコマンドしか記録されません。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

#4>別のファイルを開くコマンド入れましたが、働いてくれません。 すみません、検証不十分でした。 マクロの実行からやると何回でもファイルを開けるということとAutomationSecurity に関するヘルプの記述から実行できると思っていました。 そのヘルプの記述によるとファイルを開いた後 マクロのレベルを戻すというようなサンプルの記述がありますが、実際には、このサンプルは動作しません。 バグであるとするのかは微妙な処ですが、 今、自分のマクロ実行を無効にしたので、マクロが実行できないのは当然とも言えます(じゃあ、なぜopenするマクロは動くのかという議論もあるかと思いますが) それで、結論としては、マクロの実行中の文(センテンス)からこれを戻す方法はないように思えます。 すでに述べたように、マクロの実行ダイアログからは、マクロの実行はできるので、このレベルを変更する(戻す)ようなマクロを書くことで、レベルを戻すことはできますが、前の実行文の次から実行することは(面倒な機構をあらかじめ準備すれば別ですが)できません。 前置きが長くなってしまいましたが それを回避するために CreateObject("Excel.application")で エクセルを別に起動することで 手続きを面倒にすることなく、概ね同様の手順でファイルを処理できると思います。 以下サンプル Dim xl Set xl = CreateObject("Excel.application") xl.AutomationSecurity = msoAutomationSecurityForceDisable '別のアプリとしてのエクセルのマクロを無効にする xl.Workbooks.Open Filename:="マクロを含むファイル1.xls" MsgBox xl.Range("A1").Value 'そのファイルのセルにアクセスできる xl.Workbooks.Open Filename:="マクロを含むファイル2.xls" MsgBox xl.Range("A1").Value '次に開いたファイルにもアクセスできる、実際には、オブジェクトを分けたりした方が便利 xl.Quit 'もう一つのエクセルを終了させる、自動計算によって内容が変更されるようなファイルを開いた場合には、変更を保存しないでいいのか聞かれるがそういう場合は、あらかじめDisplayAlertsで抑制できる Set xl = Nothing 'オブジェクトを解放しておく

miwaki
質問者

お礼

ご指導ありがとうございました。 この問題は、ファイルオープン時にUpdateLinks:=0のような簡単なパラメータで対処できない複雑な問題を含んでいることが良く分かりました。 マクロを無効化したいファイルの当該マクロ記述の冒頭に制御機能をつけることで、取り敢えず解決しました。 ありがとうございました。

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

ブックを開く前に次の一文を挿入して下さい Application.AutomationSecurity = msoAutomationSecurityForceDisable

miwaki
質問者

補足

ありがとうございました。 確かにこの1行を加えるとマクロが無効の状態で開くことができました。 しかしこれに続いて、別のファイルを開くコマンド入れましたが、働いてくれません。 この状態を解除するコマンドが必要なのではないでしょうか。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

う~ん、こちらで試したときはマクロが 無効になったのですが・・・。 他の方の回答をお待ちください。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

具体的には、こんな感じです。 *********** Sub Aopen() Application.EnableEvents = False Workbooks.Open "C:\Documents and Settings\marbin\デスクトップ\BookA.xls" Application.EnableEvents = True End Sub ************

miwaki
質問者

お礼

早速のお答えありがとうございます。 仰せのコマンド列をマクロに貼り付けて実験してみましたが、開かれたブックのマクロは有効でした。 マクロが無効になる開き方をしたいのですが・・・。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

イベント禁止してから対象ののブックを 開いてください。 WorkBook_Openが無効になると思います。

miwaki
質問者

補足

早速のお答えありがとうございます。 私のやりたいことは、マクロの一連の流れの中で、マクロを含むエクセルファイルを、マクロを無効にして開きたいのです。 なぜなら、そのブックのマクロが悪さをして、シート間のコピー貼り付けができなくなるからです。

関連するQ&A

  • excel マクロ 個人用マクロブック

    excelを使っているのですが、少しおかしくなりました。 office2003を使っています。 新しいマクロを個人用マクロブックに保存しようとしているのですが、 「起動フォルダにある個人用マクロブックは、記録のために開かれた上体でなければなりません」 と警告がでます。 そのあとに、「記録できません」 と警告がでます。 個人用マクロブックに保存できるようにするのはどのようにすればよいのでしょうか。 ご教授お願いします。

  • 個人用マクロブック エラー

    急に 個人用マクロブックを使おうとすると、 「起動フォルダーにある個人用マクロブックは記録のために開かれた状態でなければなりません」 「記録できません。」 というエラーが出るようになりました。 どうすればいいですか? Excel2013 です。

  • エクセル2007のマクロのブックについて

    エクセル2007を現在使用しております。 その中のファイルで、97-2003の保存形式(xls)で使用していたマクロのブックがあります。 そのブックを保存形式はそのままで、名前だけを変更し登録しました。 すると、セキュリティの警告で、マクロが無効にされましたと表示され、 現在その都度有効に設定している状態です。 ブックの名前を変更するとマクロは無効になるのでしょうか? 原因を教えて下さい。 また、このブックだけを常に有効にする設定もあれば、 その方法もご教授下さい、お願いいたします。

  • エクセルでマクロを組んでいないのにマクロの警告が

    エクセル2003でマクロを使用せずに作業をしているのに ある日突然ブックを開こうとすると「マクロを有効にする・無効にする」 という警告文が出てしまう。 どうしてでしょうか? 警告文を消す方法はありませんか? マクロの記録がないのに警告が出ます。 どなたかどうぞ教えてください。

  • 個人用マクロブックが開けない

    Windows XPでMicrosoft Office Excel2003を使用しています。マクロを記録したいのですが、「個人用マクロブック」を選択すると、「起動フォルダにある個人用マクロブックは、記録のために開かれた状態でなければなりません」という表示が出てきます。一昨日までは問題なくできていたことが突然こうなりました。いつもはエクセルのファイルを開くと自動的に「PERSONAL」という表示がメニューバー(スタートキーがある列)にありました。当然今はありません。困っています。誰か回復方法を教えて下さい。

  • Vista(Excel2007)のマクロ有効Bookについて

    Vistaは自分のパソコンではないので使いかたがよくわかりません。わたしのパソコンはWindows2000でエクセルも2000です。 エクセル2000で作成したBOOKを、他人のVistaのエクセル2007で開きました。 画面の上のほうに「セキュリティ警告-マクロが無効にされました」と表示が出ました。その右側のオプションという文字をクリックすると、 「・不明なコンテンツから保護する(P)」 「・このコンテンツを有効にする(E)」 という選択肢が現れました。 「有効」を選択すると、マクロ(Auto_Open等)が稼動しました。他のマクロも正常に動きました。 このBOOKを、そのパソコンで2007のマクロ有効BOOK(拡張子.xlsm)という形式で保存してみました。 特にエラーメッセージもなく問題なく保存できました。 ところが、このBOOKを同じVistaで開くと、「セキュリティ警告-マクロが無効にされました」とは出るのですが、その「オプション」をクリックしても、 「・不明なコンテンツから保護する(P)」というメッセージしかなく、「・このコンテンツを有効にする(E)」の選択肢が消えてしまっています。そのためマクロを有効にすることができません。 エクセル2007のリボンのセキュリティから、「すべてのマクロを有効にする」にしても同じです。 このBOOKをエクセル97-2003互換バージョンに変更して保存すると、上記で、「すべてのマクロを有効にする」にしたため、何も聞かずにマクロが有効になりました。そこでセキュリティをもとどおりにもどすと、エクセル97-2003互換バージョンでは、最初と同じ「・このコンテンツを有効にする(E)」の選択肢が現れました。 しかし2007のマクロ有効BOOK(拡張子.xism)の形式で保存したBOOKでは、やはり「・このコンテンツを有効にする(E)」の選択肢がありません。 わけがわかりません。 どうしたら2007のマクロ有効BOOK(拡張子.xism)のマクロを有効にできるのでしょうか?

  • 個人用マクロブックについて

    ユーザー名 \AppData\Roaming\Microsoft\Excel\XLSTART のフォルダ内にある、PERSONAL.XLSB を開いた状態じゃないと、使用できなくなりました。 これでは、通常の各エクセルに保存しているマクロと同じです。。(むしろ、普段使用しないフォルダに入っているこのファイルを毎回開くほうが大変です。。 上記ファイルを開かないで、、 例えば、開発>マクロの記録 をクリックし、保存先を個人用マクロブックを選ぶと、 下記エラーが出ます。 " 起動フォルダにある個人用マクロブックは、記録のために開かれた状態でなければなりません。 " 上記ファイルを開かないで、、 例えば、開発のマクロを開くと、個人用マクロブックに保存したマクロは表示されません。 個人用マクロブックのお悩みによく出てくる、ヘルプ内の 使用できないアイテムも、念のためチェックしましたが、PERSONAL.XLSBの表示はありませんでした。 解決方法をご存知でしたら、教えてください。 どうぞ、よろしくお願いします。

  • マクロを含むブック

    Excel97です、マクロを含むブックを開く時に表示される「マクロを含むブックを開くときはこのダイアログを表示する」のチェックをはずした後に、再度このダイアログを表示させるにはどのようにするのでしようか、

  • マクロを無効にしてしまいました。

    エクセル(office 2000)で自分でマクロを組んで、デ-タ-整理をしていたのですが、そのファイルを開く時、一時的にマクロを無効にするで開いた為か? マクロを働かせると、マクロは無効に設定されていますとメッセ-ジが表示され、非常に困っています。 再度、マクロを有効にするには、どの様にすれば良いのでしょうか? エクセルの知識は、初心者程度なので(マクロに関する事も我流です)出来るだけ簡単に教えて欲しいのですが? 宜しくお願い致します。

  • 個人用マクロブック

    エクセル2007を使用しています。 個人用マクロブックにマクロを保存すると、開いていないブックでも使用できると学びました。 ただマクロの保存先が BOOK1 開いている全てのブック 作業中のブック、の3つしかありません。 どうすれば個人用マクロブックを作ることが出来るのでしょうか?

専門家に質問してみよう