• ベストアンサー
  • 暇なときにでも

マクロの有効無効

そんなことを考えるだけ時間の無駄(本末転倒)の気がしないでもないですが ユーザが使ってるExcelでマクロが有効なのか無効なのかを判断する方法ってあるんでしょうか? ※ Excel開いて設定確認するんではなくて他のプログラムなどで知る方法があるか   という意味です マクロ作成者はユーザ環境確認できず 使用者もExcelに詳しい人ではないといった状況前提 現在漠然とした形で考えているのがマクロで適当なファイルを作成するようにしておいて 他のプログラムからExcelでそのファイルを開き一定時間内にファイルが作成されなかったら マクロ無効になってるといった形でできるかな  と思っているんですが他に方法あるでしょうか

共感・応援の気持ちを伝えよう!

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

  • ベストアンサー
  • 回答No.5
  • kkkkkm
  • ベストアンサー率63% (1352/2135)

No4です。 もしかして、オプション設定の基本的な設定で無効にしてるかどうか調べたいという事でしょうか。 HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security VBAWarnings もしくは Level に記載されています。ユーザーがデフォルトのまま変更していなければ上記の値は存在しないかもしれません。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>オプション設定の基本的な設定で無効にしてるかどうか調べたいという事 そういう事です >~~~に記載されています 確認しました この情報と自分で気が付いた情報として HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\Trusted Documents の DisableTrustedDocuments を合わせてチェックすればよさそうです(こちらは信頼済みドキュメントの有効・無効) チェックなどはそこ見るのが簡単だとは思いますが Officeのバージョンに依存してしまうので将来考えると実際にファイル動かして 確認する方がいいのかちょっと悩むところです もう少し検討したうえでどの方法をとるか決めたいと思います 回答ありがとうございました

その他の回答 (5)

  • 回答No.6
  • kkkkkm
  • ベストアンサー率63% (1352/2135)

2003の頃は起動s時にマクロを無効のボタンを押して、動かないからみてくれとか言われたことがあったものですから、エクセルを操作しているユーザーから動かないと言われたときの確認のためかと思ってましたが違ったのですね。 > WEB等見てると何かの拍子に無効に切り替わる可能性があるように思えたため レジストリにはフルパスで記載されていますから、フォルダ名を変更したとかファイルを移動した場合には同一ファイルでも無効になってしまいますので、そのあたりの事があるのではないでしょうか。 とりあえず、実行しているファイルでレジストリを確認するのが手っ取り早いのではないでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>エクセルを操作しているユーザーから動かないと言われたときの確認のためか >と思ってましたが違ったのですね。 はい 現在まだきちんと形になっているものではなく テスト的に自分の環境で作ったマクロ動作確認してる時にそのマクロを 他の環境で操作させる時に問題になりそうな事案として 対処方法がないかを検討している といったものです 初期設定=インストール 等は 行ったうえでユーザに渡すから 設定破壊でもしない限り 考えなくてもいいような気はするけど 一応考えてみるか といった程度の事案 No5の御礼にも書きましたが レジストリ参照だとバージョン依存の問題もあるため 実現するとしたらどういった形で実現するのがいいかをもう少し検討したいと思います いずれにしてもレジストリの場所が分かりましたので助かりました 回答ありがとうございました

  • 回答No.4
  • kkkkkm
  • ベストアンサー率63% (1352/2135)

> これって私が漠然と館府が得てる方法と何か明らかな違いがあるんでしょうか? 一度をファイルを作成した後にマクロを無効にしたら、無効でも有効だと判断されてしまいます。 > ・わざわざファイルを分割する意味がよくわからない 質問にあった > 使用者もExcelに詳しい人ではない ですので、調べたいファイルを開いて何も動かないのがマクロ有効無効とかそんな事があることもわからないなら、別ファイルを起動して有効かエラーが出るようにすれば、使用者に確認するときのツールになるという意味です。 >    エクセル上でのメッセージ表示などではなく >   外部からどういった状態になってるか確認できる手法がないかを模索しています エクセル2007は知りませんが、2010以降でしたらファイルの最初の起動時にマクロの有効ボタンを押すと次回からは有効のままになるようにレジストリにそのファイル名を書き込む仕様で、そのファイル一覧は HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\Trusted Documents\TrustRecords ここに記載されています。2013だと14.0が15.0になります。 ただ、2010の場合次回からも有効にするにしないと、状態は無効のままになります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>ファイルを作成した後にマクロを無効にしたら、無効でも有効だと判断されて そういう意味ですか そういった誤判定は起こさないように 他のプログラムからマクロで作成するファイルは削除した後で該当ファイルオープン マクロ自動起動でチェックファイルを書き込んだ後 一定処理を行った後じどうでExcelセットで終了させる予定なので 途中でマクロの状態が変更もできないはずですし誤判定も起こりえないと考えています でもってそのプログラム自体をオペレータが操作することになります (有効・無効判定以外は基本的に作成済みで動作確認しています)    表面上 オペレータには Excel動かしてるとわからないようにするつもりです (起動時のスプラッシュも消します) >最初の起動時にマクロの有効ボタンを押すと次回からは有効のままになるよう 基本的にその状態で動かすことを考えていますが WEB等見てると何かの拍子に無効に切り替わる可能性があるように思えたため (操作ミス以外で本当にそんなことがあるかは不明) 何かの対処も考えた方がいいのかな(簡単な方法でもないかな) といったことから 質問させていただきました

  • 回答No.3
  • kkkkkm
  • ベストアンサー率63% (1352/2135)

No1です 書き忘れましたが、ユーザー側でファイル名に全角の空白とか入っているとエラーになるので、一応テストしてマクロ有効なのにエラーになる場合は、ファイル名や階層が深いところにあるとかパス名も確認してみてください。

共感・感謝の気持ちを伝えよう!

  • 回答No.2

こんにちは。 >そんなことを考えるだけ時間の無駄(本末転倒)の気がしないでもないですが 無駄ではないのですが、掲示板では、その質問はタブーですね。 >ユーザが使ってるExcelでマクロが有効なのか無効なのかを判断する方法ってあるんでしょうか? >※ Excel開いて設定確認するんではなくて他のプログラムなどで知る方法があるか あります。 もう何年も前になりますが、Micorosoft 自身が、それを図らずも明らかにしてしまったのです。 VBAの上級者なら、知っている人もいるでしょうけれども、VBAを勉強を深めていったら、いずれ知ることになるでしょう。たぶん、外部プログラムで、よほどあからさまでなければ、やってみたことはありませんが、アンチウィルスには掛からないと思います。 >他のプログラムからExcelでそのファイルを開き一定時間内にファイルが作成されなかったら >マクロ無効になってるといった形でできるかな ご質問者さんの想像の範囲にはありませんが、それは、セキュリティの切り替えも可能ですから、マクロを無効にしてあっても、マクロを有効にしてウィルスを放り込み、複製を作らせるというマクロ・ウィルスが可能になってしまいます。したがって、少なくとも、私は、この解答はできないのです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>あります。 >もう何年も前になりますが、Micorosoft 自身が、それを図らずも明らかにしてしまったのです 一応あるんですか。 >VBAを勉強を深めていったら 実際どこまでやるか定かではありませんが現在事前調査をしている段階です Cなどのプログラム経験はありますがVBA作成についても実質数時間絵ベルの人間です >マクロを有効にしてウィルスを放り込み、 >複製を作らせるというマクロ・ウィルスが可能になってしまいます。 私自身はあくまで設定状態を確認したいだけなんですが 回答容姿次第では確かにそういった面はあるかもしれませんね( (読めるなら書き込みもできるだろ といった意味で) 個人的にはマクロ動かす前提でそのファイル使うので そんな対処ぐらいできるのが当然と考えてはいますが (だからこんなこと考えてるだけ時間の無駄かな と) もし何か南端にできるようなものであれば考えてもいいかなと思った次第です 回答ありがとうございました

  • 回答No.1
  • kkkkkm
  • ベストアンサー率63% (1352/2135)

判断するほうのファイルに記載するマクロ Sub Example1() MsgBox Application.Run("ユーザーファイル.xlsm!Example2") End Sub ユーザーファイルに記載するマクロ Function Example2() As String Example2 = "有効" End Function で、いいと思います。ユーザー側でマクロが有効だとメッセージが表示されますが、有効じゃないとエラーになりますのでそれで判断できるでしょう。 ただし、LAN内で使えるかどうかは私にはテストできないので不明です。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

マクロ触った時間が実質数時間程度の知識なので何か勘違いしてるのかもしれませんが これって私が漠然と館府が得てる方法と何か明らかな違いがあるんでしょうか? ・スクリプト記載のファイル開から動作を確認しようとしてるのは同じ ・わざわざファイルを分割する意味がよくわからない   有効じゃないとエラーになります  とありますが 無効状態なら   初めから何も表示されませんよね?     エクセル上でのメッセージ表示などではなく     外部からどういった状態になってるか確認できる手法がないかを模索しています という状態であまりメリット感じないんですが何か勘違いしてますか? 回答ありがとうございました

関連するQ&A

  • Excel マクロ無効化

    Micorsoft Excelで、VBAで以下のように指定のExcelファイルのマクロを無効化したいのですが、やりかたを調べてもよくわかりません。できないのでしょうか?アドバイスいただけると幸いです。 具体的にやりたいこと (1)マクロ有効にしたExcelファイルのVBAから他のExcelファイルをマクロ無効で開く (2)マクロ有効にしたExcelファイルのVBAで、開いているExcelファイルのマクロを無効に設定する。(有効だったものを無効にする)

  • マクロの有効と無効

    こんばんは、VBA初心者です。 教えてください。 ユーザーフォームを使ってセルに数値を入力する、という物を作っているのですが、 ファイルを開くときにマクロを有効にするか、無効にするか選択をしたいです。 有効にした場合はユーザーフォームを表示し、 無効にした場合は普通にエクセルのファイルを開く…という風にしたいのですが 良い方法があれば教えてください。 超初心者なので、この説明で伝わるか不安ですがよろしくお願いします。

  • エクセルにマクロが!

    エクセル(Excel2000)で、マクロを使っていないのにマクロが使われてしまいます。 例えば、 まず普通にスタート→プログラムと表示していき、エクセルを立ち上げる。 次にどこのセルでもいいから適当に文字を入力する。(例えば、A1にaと入力する) そして、ファイル→名前を付けて保存で保存する。 こうしてできたエクセルのファイルを普通に立ち上げると、「このファイルはマクロが使われています」と、マクロを有効にするか、無効にするかを確認する画面が出てきてしまいます。 どうしてでしょうか。直す方法はあるのですか。よろしくお願いします。

  • マクロの無効、有効の問合せ

    初歩的な質問ですが、エクセルファイルを呼び出したときに、毎回、セキュリティ警告のマクロを有効にするか、無効にするか聞いてくるようになりました。マクロを作成したわけでも無いのですしマクロのリストにもでてきません、誰かこれを解除する方法を教えて!goo

  • エクセル マクロが無効になる

    エクセル マクロが無効になる エクセル2003でマクロを作り、2007や2010でそのファイルを開くと互換モードのファイルが開きマクロが無効になってしまいます。セキュリティセンターのマクロの設定の「すべてのマクロを有効にする」にするとマクロが動き出します。マクロの設定を開かなくてもマクロが有効になる方法はないのでしょうか。(このデータを職場のコンピュータの堪能でない人も使うため複雑な方法はできるだけ省きたいのですが)

  • EXCELマクロを無効にして開く方法

    掲題の通りなのですが、EXCEL2007で作成されたマクロ有効ファイル(XLSM形式)を マクロ無効の状態で開く方法が分からず困っております。 マクロの内容は Workbook_Open 処理で、特定セルに入力されている EXCELファイルを開き、自身は閉じるというものです。 Private Sub Workbook_Open() Dim FileName As String '1ファイル目 Range("A2").Select FileName = ActiveCell.FormulaR1C1 Workbooks.Open FileName:=FileName ThisWorkbook.Activate '2ファイル目 Range("A3").Select FileName = ActiveCell.FormulaR1C1 Workbooks.Open FileName:=FileName ThisWorkbook.Activate ・・・・・・繰り返し DoEvents ThisWorkbook.Close End Sub 上記の特定セルに設定してあるファイルパスを変更するためには マクロを無効にして開かなければなりません。 マクロのセキュリティを変更して、「すべてのマクロを無効にする」を設定して 該当のファイルを開けば良い事は分かっているのですが、他に分かりやすい方法で マクロ無効状態で開く方法があれば、ご教授頂ければと思います。

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

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

  • Excelのマクロが無効にされてしまう

    ESETはインストールされているPCで パスワード付きのExcelを開くとマクロが無効にされてしまいます。 パスワードを解除したらセキュリティの意味がありません。 (解除すればマクロは使えるようになります) どうしたら良いか分からず困っています。 どうぞご教授ください。 以下のメッセージが表示されます。 Excel このファイルには暗号化されたマクロが含まれていますが、 マクロを検査するウィルス対策プログラムが インストールされていないため無効化されています。 マクロを実行するには、暗号化を解除するか、 ファイルのアクセス制限を解除してください。 ※OKWAVEより補足:「ESETセキュリティ ソフトウェア シリーズ」についての質問です。

  • 【EXCEL】 ファイルを開いたままマクロを無効にしたい。

    こんにちは マクロを組み込んだEXCELファイルを開いていますが、 マクロが動いて欲しくない時があります。 そういう場合は一旦閉じてから、マクロを無効にした状態で開き、また閉じて、またマクロを有効にして開くというふうにしています。 他に何か良い方法はありますでしょうか。

  • [エクセル]マクロを無効にした場合、読み取り専用でファイルを開きたいです

    エクセルのマクロを使い初めの初心者です。 セルに入れた関数をユーザーが消したりしないために、マクロで関数の入ったセルにロックがかかった状態でファイルを開くようにしているのですが、マクロを無効にしてファイルを開くと、ロックがかかっていない状態になってしまいます。 マクロを無効にすると読み取り専用でファイルが開くような処理は可能でしょうか? よろしくお願いします。