• ベストアンサー

EXCEL VBAマクロ中断でデバッグ(コード閲覧)できないようにしたい

EXCEL VBAで、ツール開発をしております。 エラー処理等、組み込んではおりますが、想定外のエラーが起きたときに、ご存知のとおりエラーメッセージウインド([継続] [終了] [デバッグ] [ヘルプ]ボタンが表示されるウインド)が出ます。 これを、出さないようにするか、あるいは[デバッグ]ボタンのみを非表示(グレーアウト可)させたいのです。 理由は、VBAコードを見られないようにマクロにパスワードをかけているのですが、エラーが出て[デバッグ]ボタンを押すと、パスワードを無視して簡単にVBAコードにアクセスできてしまい、すべてのコードが参照可能になってしまいます。 これを防ぎたいのです。 何か良い方法はございますでしょうか? お知恵をお貸しください。よろしくお願いします。

  • THUBAN
  • お礼率76% (771/1002)

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> エラーが出て[デバッグ]ボタンを押すと、パスワードを無視して簡単にVBAコードにアクセスできてしまい、すべてのコードが参照可能になってしまいます。 パスワードを設定して「プロジェクトを表示用にロックする」にチェックもいれてるんですよね? なら、編集のためなどで一回VBEを開けてませんか? 一度BOOKを終了して再度立ち上げたらそうはならないと思いますが。

THUBAN
質問者

補足

ありがとうございます。 パスワードを設定して「プロジェクトを表示用にロックする」にチェックも入れています。 確かに作成しているのが自分なので編集のため、一回VBEを明けていますね。 おっしゃるとおりやってみたら、[終了]ボタン以外はグレーアウトされていました。 問題なかったんですね。 念のため、No.1で返答したエラー処理も入れておこうかと思っております。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

内部にエラー処理ルーチンを作成されているかもしれませんが、処理対象外のエラー(あるいは全部?)に対してもエラー処理をして、   継続不能のエラーが発生しました。処理を中断します。        (エラー番号:××××) みたいな表示を出して、正常終了(処理を中断)してしまえばよいのでは?

THUBAN
質問者

補足

ありがとうございます。。。 ん~やはりそうですか・・ On Error GoTo Error_hoge  ・  ・  ・  Exit Sub  Error_hoge:  MsgBox ・・・ End Sub みたいに、Sub内の前後にエラー処理を入れるしかないんですかね? あと、Ctrl+Cでブレイクできないようにすることも必要なのかな。。。

関連するQ&A

  • VBA マクロ保護

    VBA マクロ保護 VBAProject 保護はツールにて保護パスワード設定しています! 私が作ったもので、コマンドボタンをクリックしたら指定された フォルダにコピー(例;Sheet1のみコピー)できるようにしています! そこのコピーのフォルダを開き、ブックを開いてみると シート保護はされていますが コードの表示にパスワード設定がなく、そのまま見えてしまいます。 そこで質問なのですが コードの表示を見れなくさせるために VBA記述でコピーするときにVBAProjectにパスワード設定させたいです。 ちなみにVBAProject本体には、パスワード設定しています。 どのようにすれば良いか?記述を教えてください!

  • 関数エラーによるエクセルマクロの処理中断

    そんなにエクセルVBAが得意じゃないです。よろしく教示くださいませ。 セルにエクセル関数を設定し、マクロを働かせて使用しています。 セルに想定外のデータが入力されると、関数エラーを起こしてしまうのですが、 このエラーが発生すると、マクロも中断になってしまいます。 関数エラーが発生しても、マクロが中断しないような、マクロ命令って あるのでしょうか。 実は、マクロで想定外データのチェックをかけてるのですが、その想定外データが入力されると、 警告は発するのですが、関数エラーが発生し、マクロが中断してしまうのです。 マクロに組み込むべき、コマンドはあるのでしょうか。

  • エクセル(2010)VBAの初歩的な問題

     エクセルVBA初心者です。エクセル2010で、マクロを記録したファイルを"△△.xlsm"として保存し、一旦そのファイルを閉じて、再度そのファイルを開いて、[開発]タブ-[コード]グループ-[マクロ]ボタンを押したときに出る「マクロ」ダイアログボックスで、保存した「マクロ名」が選択されている状態で、 [実行] [ステップ イン] ボタンは有効なのですが、 [編集] [作成] [削除] [オプション] の四つのボタンがグレーアウトして、押せる状態ではありません。また、この状態で、[実行]ボタンを押してみても、 「セキュリティの設定により、マクロが無効にされました。マクロを実行するには、このブックを再度開いて、マクロを有効にするようにする必要があります。マクロの有効化と詳細については、[ヘルプ]をクリックしてください。」 と表示されて、実行されません。[ヘルプ]ボタンを押してみると、長い説明が出てきましたが、そのどれも実行してみましたが、問題が解決されないで前に進めません。  どうすれば、一旦ディスクに保存したマクロ記録ファイルを再び開いて、マクロの操作の続きをできるようになるでしょうか。よろしくお願いします。

  • Excel VBAエラー”マクロシートに対する・・

    Excel VBAを勉強している者です。VBAプログラムで Sub Iro1() ・・・ End Sub Sub Iro2() ・・・ End Sub という処理のプログラムを作成しエクセルシートにボタンを作りマクロ登録をしようとすると ”マクロシートに対する参照を指定ください”とエラーが出ます。 すみませんが、解決方法を教えてください。

  • EXCELのVBAマクロについて

    ExcelのVBAマクロを使って 度 sinθ cosθ sinθ+cosθのデータを表示する課題が出たのですがやり方が全く分からなくプログラムコードにも詳しくないため困っています。 教えていただけたらありがたいです。

  • エクセルVBA(マクロ)の書き方で・・・

    VBA初心者です。よろしくお願いします。 エクセルマクロで、次のような関数を入力して、 =IF(月!$D4=稼動シート!$B$2,月!B4,"◆") 自動記録をさせると コードは、次のような「絶対参照セル」(←表現あっていますか?)の表示になります。 『Range("C4").Select ActiveCell.FormulaR1C1 = "=IF(月!RC4=稼動シート!R2C2,月!RC[-1],""◆"")"』 わたしのスキルでは、この記述コードを参考に別のコードを書こうにも理解と応用が効きません。 そこで、VBAコードにも 『Range("C4").Select  =IF(月!$D4=稼動シート!$B$2,月!B4,"◆")』 と単純に書いてはいけないのでしょうか?また、どうすれば実際のシートで入力した関数と同じような表現でVBAにもかけるのでしょうか? ご指導お願いいたします。

  • マクロのボタン(コード)について

    いつも大変お世話になっております。https://okwave.jp/qa/q9884968.html で質問した者です。 マクロのボタンにコードを入力しましたが、エラーが出てしましました。(エラーは【マクロを実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。】と出ました。) ネットでエラー検索し、 ①オプションのセキュリティーセンターでメッセージの表示にチェックを入れる。 ②マクロの設定で【警告を表示しすべてのマクロを無効にする】を選択する。 ③エクセルを開きなおす。 の3つのことをしてもエラーが出てしまいます。 私のやり方が何かおかしいでしょうか? 他の何かの設定でしょうか? (マクロのボタンを作成しそのボタン上で右クリックしマクロの登録マクロ名を選び、編集からコード入力をしました。) シート1に、1上がればオレンジに、1下がれば緑にのマクロが組んだままです。 これが悪さをするのでしょうか?

  • 既存Excel VBAソフトがOffice2007でマクロエラーが発生

    初めて投稿させて頂きました。 Excel VBAで開発されたソフトの改造を行っているのですが、初めてのVBAで悪戦苦闘しております。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Microsoft Office2007 SP1 改造元ソフトはOffice2000で開発されており、Office2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままOffice2007で動作させるだけでマクロエラーが発生します。 発生する箇所はVBAコードで定義されており、下記のマクロ実行時です。 Application.Run ("macro1") マクロエラーの内容は下記になります。 ------------------------------- マクロエラー [dbg.xls]マクロ(excel4.0)BV25 ------------------------------- この「macro1」はVBAのコードにはありません。 Excelの開発タブのマクロ一覧にはあります。 マクロ一覧で「macro1」を選択して、"編集"ボタンを押しても、マクロ一覧画面が消えるだけで何も表示されません。 この「macro1」がどこに定義されているか調べても全く判らず、ここで質問させて頂いた次第です。 Office2000やOffice2003ではマクロエラーが発生せずに正常に動作します。 Office2007のマクロセキュリティ設定を「すべてのマクロを有効にする」にしてます。 開発者向けのマクロ設定を「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックしても改善しません。 Office2000やOffice2003では動作しているので「macro1」はどこかに定義されているのだと思いますが、VBAコードにはありませんでした。 マクロ一覧にありますが、マクロ一覧の編集ボタンを押してもマクロが表示されません。 このマクロ「macro1」はどこで定義されているか、ご教授して頂けると助かります。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • エクセル:VBA:マクロコード

    エクセルVBAで、 (質問1) マクロでsheet1のデータを処理して、sheet2に結果を表示するマクロで最初にsheet2をクリアーするというのはどうコードしますか。 (質問2) マクロでsheet1のセル/データを使ったりsheet2のセル/データを使ったりしますが、データはどう切り替えるのですか。 常に今どちらのシートのことを問題にしているか宣言するのですか。 その場合、 例えば今sheet1を扱ってるとした場合にsheet2のデータCells(10, "D")をsheet1のセルCells(10, "D")に入れる場合、 Cells(10, "D")=Sheets("sheet2").Cells(10, "D")こうなりますか。

  • VBA 型が一致しません の行からデバッグするには

     今晩は、質問させていただきます。どうぞよろしくお願いいたします。 環境:Win7 Excel2010 OfficeSP2 でございます。  VBA実行中にエラーが起こると大抵の場合はメッセージボックスが表示されて、そこにある「デバッグ」ボタンを押すとエラーが生じている行が黄色くなり、デバッグモードに入ると思います。(添付図の左側) が、私の環境で起こります「実行時エラー13 型が一致しません」は いつも、何故か「OK」ボタンしかございません。(添付図の右側)  長い時間計算を回した後にこのエラーで止まられると、 ・Debug.Printなど対処を施す ・長時間、エラーが出る時まで計算を回す を何度も繰り返してエラー原因を特定せねばなりませんため、非常に非効率で悩んでおります。  「デバッグ」ボタンが付いたエラーメッセージボックスが出されるようにするには、何か方法があるのでございましょうか?  もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

専門家に質問してみよう