そんなことを考えるだけ時間の無駄(本末転倒)の気がしないでもないですが
ユーザが使ってるExcelでマクロが有効なのか無効なのかを判断する方法ってあるんでしょうか?
※ Excel開いて設定確認するんではなくて他のプログラムなどで知る方法があるか
という意味です
マクロ作成者はユーザ環境確認できず 使用者もExcelに詳しい人ではないといった状況前提
現在漠然とした形で考えているのがマクロで適当なファイルを作成するようにしておいて
他のプログラムからExcelでそのファイルを開き一定時間内にファイルが作成されなかったら
マクロ無効になってるといった形でできるかな と思っているんですが他に方法あるでしょうか
No.5ベストアンサー
- 回答日時:
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のバージョンに依存してしまうので将来考えると実際にファイル動かして
確認する方がいいのかちょっと悩むところです
もう少し検討したうえでどの方法をとるか決めたいと思います
回答ありがとうございました
No.6
- 回答日時:
2003の頃は起動s時にマクロを無効のボタンを押して、動かないからみてくれとか言われたことがあったものですから、エクセルを操作しているユーザーから動かないと言われたときの確認のためかと思ってましたが違ったのですね。
> WEB等見てると何かの拍子に無効に切り替わる可能性があるように思えたため
レジストリにはフルパスで記載されていますから、フォルダ名を変更したとかファイルを移動した場合には同一ファイルでも無効になってしまいますので、そのあたりの事があるのではないでしょうか。
とりあえず、実行しているファイルでレジストリを確認するのが手っ取り早いのではないでしょうか。
>エクセルを操作しているユーザーから動かないと言われたときの確認のためか
>と思ってましたが違ったのですね。
はい
現在まだきちんと形になっているものではなく
テスト的に自分の環境で作ったマクロ動作確認してる時にそのマクロを
他の環境で操作させる時に問題になりそうな事案として 対処方法がないかを検討している
といったものです
初期設定=インストール 等は 行ったうえでユーザに渡すから 設定破壊でもしない限り
考えなくてもいいような気はするけど 一応考えてみるか といった程度の事案
No5の御礼にも書きましたが レジストリ参照だとバージョン依存の問題もあるため
実現するとしたらどういった形で実現するのがいいかをもう少し検討したいと思います
いずれにしてもレジストリの場所が分かりましたので助かりました
回答ありがとうございました
No.4
- 回答日時:
> これって私が漠然と館府が得てる方法と何か明らかな違いがあるんでしょうか?
一度をファイルを作成した後にマクロを無効にしたら、無効でも有効だと判断されてしまいます。
> ・わざわざファイルを分割する意味がよくわからない
質問にあった
> 使用者も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
- 回答日時:
No1です
書き忘れましたが、ユーザー側でファイル名に全角の空白とか入っているとエラーになるので、一応テストしてマクロ有効なのにエラーになる場合は、ファイル名や階層が深いところにあるとかパス名も確認してみてください。
No.2
- 回答日時:
こんにちは。
>そんなことを考えるだけ時間の無駄(本末転倒)の気がしないでもないですが
無駄ではないのですが、掲示板では、その質問はタブーですね。
>ユーザが使ってるExcelでマクロが有効なのか無効なのかを判断する方法ってあるんでしょうか?
>※ Excel開いて設定確認するんではなくて他のプログラムなどで知る方法があるか
あります。
もう何年も前になりますが、Micorosoft 自身が、それを図らずも明らかにしてしまったのです。
VBAの上級者なら、知っている人もいるでしょうけれども、VBAを勉強を深めていったら、いずれ知ることになるでしょう。たぶん、外部プログラムで、よほどあからさまでなければ、やってみたことはありませんが、アンチウィルスには掛からないと思います。
>他のプログラムからExcelでそのファイルを開き一定時間内にファイルが作成されなかったら
>マクロ無効になってるといった形でできるかな
ご質問者さんの想像の範囲にはありませんが、それは、セキュリティの切り替えも可能ですから、マクロを無効にしてあっても、マクロを有効にしてウィルスを放り込み、複製を作らせるというマクロ・ウィルスが可能になってしまいます。したがって、少なくとも、私は、この解答はできないのです。
>あります。
>もう何年も前になりますが、Micorosoft 自身が、それを図らずも明らかにしてしまったのです
一応あるんですか。
>VBAを勉強を深めていったら
実際どこまでやるか定かではありませんが現在事前調査をしている段階です
Cなどのプログラム経験はありますがVBA作成についても実質数時間絵ベルの人間です
>マクロを有効にしてウィルスを放り込み、
>複製を作らせるというマクロ・ウィルスが可能になってしまいます。
私自身はあくまで設定状態を確認したいだけなんですが
回答容姿次第では確かにそういった面はあるかもしれませんね(
(読めるなら書き込みもできるだろ といった意味で)
個人的にはマクロ動かす前提でそのファイル使うので
そんな対処ぐらいできるのが当然と考えてはいますが
(だからこんなこと考えてるだけ時間の無駄かな と)
もし何か南端にできるようなものであれば考えてもいいかなと思った次第です
回答ありがとうございました
No.1
- 回答日時:
判断するほうのファイルに記載するマクロ
Sub Example1()
MsgBox Application.Run("ユーザーファイル.xlsm!Example2")
End Sub
ユーザーファイルに記載するマクロ
Function Example2() As String
Example2 = "有効"
End Function
で、いいと思います。ユーザー側でマクロが有効だとメッセージが表示されますが、有効じゃないとエラーになりますのでそれで判断できるでしょう。
ただし、LAN内で使えるかどうかは私にはテストできないので不明です。
マクロ触った時間が実質数時間程度の知識なので何か勘違いしてるのかもしれませんが
これって私が漠然と館府が得てる方法と何か明らかな違いがあるんでしょうか?
・スクリプト記載のファイル開から動作を確認しようとしてるのは同じ
・わざわざファイルを分割する意味がよくわからない
有効じゃないとエラーになります とありますが 無効状態なら
初めから何も表示されませんよね?
エクセル上でのメッセージ表示などではなく
外部からどういった状態になってるか確認できる手法がないかを模索しています
という状態であまりメリット感じないんですが何か勘違いしてますか?
回答ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/01/27 13:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) マクロの付いたExcelが開けません 3 2023/02/01 10:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
Excelが勝手にシート移動してし...
-
エクセル終了時の保存確認メッ...
-
マクロを消すマクロは不可能?
-
excelでpersonal.xlsを常に開く...
-
エクセルマクロ実行中に別ファ...
-
Excelからnotesメールを自動で...
-
【マクロ】エラーが発生⇒実行時...
-
コピーしたファイルのマクロを...
-
VBA マクロ実行時エラー’1004Ra...
-
vbaでvbaのコードを書き込むこ...
-
新旧エクセル、マクロは互換不可?
-
Word用のマクロが急に働かなく...
-
excelのマクロ実行でブロックさ...
-
昨日まで動いていたエクセルの...
-
外部データを取り込むマクロ
-
エクセル「検索と置換」を閉じ...
-
excelが別プロセスで起動してし...
-
エクセルでマクロを有効にする...
-
エクセルでマクロを別のPCで利...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
excelファイルに使われているVB...
-
VBA マクロ実行時エラー’1004Ra...
-
コピーしたファイルのマクロを...
-
昨日まで動いていたエクセルの...
-
別のパソコンでエクセルのマク...
-
VBAを一度起動するとずっと出て...
-
マクロを消すマクロは不可能?
-
エクセルファイルを自身のファ...
-
アクセスでファイルを開いたと...
-
EXCEL マクロ クリップボードク...
-
Excelが勝手にシート移動してし...
-
Excelマクロ ファイル名が変わ...
-
excelが別プロセスで起動してし...
-
Excel2010 PERSONAL.xlsbの挙動...
-
エクセルマクロを有効にしない...
-
エクセル2013vbaで、見えない名...
-
エクセルマクロにてパワーポイ...
-
【マクロ】アクティブセルの行...
-
excelのマクロ実行でブロックさ...
おすすめ情報