
EXCEL VBAで、ツール開発をしております。
エラー処理等、組み込んではおりますが、想定外のエラーが起きたときに、ご存知のとおりエラーメッセージウインド([継続] [終了] [デバッグ] [ヘルプ]ボタンが表示されるウインド)が出ます。
これを、出さないようにするか、あるいは[デバッグ]ボタンのみを非表示(グレーアウト可)させたいのです。
理由は、VBAコードを見られないようにマクロにパスワードをかけているのですが、エラーが出て[デバッグ]ボタンを押すと、パスワードを無視して簡単にVBAコードにアクセスできてしまい、すべてのコードが参照可能になってしまいます。
これを防ぎたいのです。
何か良い方法はございますでしょうか?
お知恵をお貸しください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
> エラーが出て[デバッグ]ボタンを押すと、パスワードを無視して簡単にVBAコードにアクセスできてしまい、すべてのコードが参照可能になってしまいます。
パスワードを設定して「プロジェクトを表示用にロックする」にチェックもいれてるんですよね?
なら、編集のためなどで一回VBEを開けてませんか?
一度BOOKを終了して再度立ち上げたらそうはならないと思いますが。
この回答への補足
ありがとうございます。
パスワードを設定して「プロジェクトを表示用にロックする」にチェックも入れています。
確かに作成しているのが自分なので編集のため、一回VBEを明けていますね。
おっしゃるとおりやってみたら、[終了]ボタン以外はグレーアウトされていました。
問題なかったんですね。
念のため、No.1で返答したエラー処理も入れておこうかと思っております。
No.1
- 回答日時:
内部にエラー処理ルーチンを作成されているかもしれませんが、処理対象外のエラー(あるいは全部?)に対してもエラー処理をして、
継続不能のエラーが発生しました。処理を中断します。
(エラー番号:××××)
みたいな表示を出して、正常終了(処理を中断)してしまえばよいのでは?
この回答への補足
ありがとうございます。。。
ん~やはりそうですか・・
On Error GoTo Error_hoge
・
・
・
Exit Sub
Error_hoge:
MsgBox ・・・
End Sub
みたいに、Sub内の前後にエラー処理を入れるしかないんですかね?
あと、Ctrl+Cでブレイクできないようにすることも必要なのかな。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
UserForm1.Showでエラーになります。
工学
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
6
エクセルVBAが途中で止まります
Visual Basic(VBA)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
9
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
10
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
11
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
12
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
13
VBA
その他(プログラミング・Web制作)
-
14
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
15
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
16
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
19
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
-
20
accessのレポートを20行固定にする方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
実行時エラー -'-2147417848
-
【マクロ】エラー【#DIV/0!】が...
-
ExcelVBA Range クラスの Page...
-
なぜエラーになるのでしょうか...
-
Outlook.ApplicationをCreateOb...
-
ASP.NET OleDbConnectionが定義...
-
マクロについて教えてください...
-
「コンパイルエラー:プロシー...
-
ハンドルされていない例外は・・・
-
「アプリケーション定義または...
-
ExcelVBAでのエラー回避
-
VBS実行時エラー オブジェクト...
-
INSERT INTOステートメント構文...
-
なぜこんな初歩的なVBAのIf文で...
-
1列目の何行目に検索文字がある...
-
ゴールシーク関数で、エラーを...
-
VBA:「中断モードでは入力でき...
-
VBで構造体を使うさ際の64k...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
【マクロ】エラー【#DIV/0!】が...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
実行時エラー48発生時のDLL特定...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー3001「引数が間違...
-
EXCEL/VBAで、自分のPCだけエラ...
-
VB6+SQL サーバー 2000 で 実行...
-
VBAのエラー発生場所をメッセー...
-
ADODB.Streamを使用してUTF-8を...
-
【Excel VBA】マクロをボタンに...
-
OLEDB.NETで接続できない
-
なぜエラーになるのでしょうか...
-
INSERT INTOステートメント構文...
-
Outlook.ApplicationをCreateOb...
おすすめ情報