- ベストアンサー
エクセルマクロを有効にしないとファイルが開けないようにする方法
こんにちは、マクロで保存等制御しているのですが、マクロを無効にして立ち上げられてしまうと意味がありません。マクロを有効にしないとファイルが開けないようにする方法はありませんでしょうか? よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
マクロを強制的に実行させる方法はありませんので、お考えの事は不可能です。 それが可能であればウィルスを含むエクセルファイルを確実に配布して実行できる事になるので、すべてのエクセルは悪質なファイルとしてネット上で非難される事になるでしょう。 単純な方法としては、シートを1枚だけ表示させて、他のシートを非表示に設定すること。 xlSheetVeryHidden に設定すれば、メニューのシートの再表示にシート名が表示される事はありません。 ただし、VBE画面のシートのプロパティで操作は可能です。 知識がある人には無意味ですが普通の人には有効でしょう。 http://www.moug.net/tech/exvba/0040053.htm http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_sheet.html#visible http://www.nurs.or.jp/~ppoy/access/excel/xlA006.html
その他の回答 (3)
- hige_082
- ベストアンサー率50% (379/747)
絶対とは言いませんが、難しいでしょうね 理由は#2さんも言われてるように、マクロウィルス 私なら、対象ファイルにパスワードを設定し 対象ファイルを開くファイルを別に作成 このファイルのマクロを使用して、対象ファイルにパスワードを自動で入力し開く この方法だとファイルが2つになるが、マクロを使用しないと開けなくなる 参考程度に
- end-u
- ベストアンサー率79% (496/625)
マクロ無効化対策としては、他に IsAddin プロパティを制御する方法もあるようですね。 http://homepage2.nifty.com/kmado/kvba.htm (ここの E00M090 [マクロを無効にする]で開くと使えないxlsファイル )
- kigoshi
- ベストアンサー率46% (120/260)
直接の回答ではありませんが、保存制御する直前に、たとえば Sheets("Sheet1").Visible = False などとしておき、ThisWorkbookに Private Sub Workbook_Open() Sheets("Sheet1").Visible = True Sheets("Sheet1").Activate End Sub などとしておくと、マクロを有効にして開かないとSheet1が見えないという ことは可能になります。 ご参考になれば。