エクセル一つのワークシートだけプログラムを無効にする方法

このQ&Aのポイント
  • エクセルVBA初心者がブックの複数のワークシートでプログラムを書いている中で、特定のワークシートのプログラムを一時的に無効にする方法を教えてください。
  • 要望は以下の通りです。マクロは削除せずに使えるようにしたい、Sheet1のマクロはそのまま使えるようにしたい、有効/無効を簡単に切り替えられるようにしたい。
  • OSはWin2000、エクセルは97です。
回答を見る
  • ベストアンサー

エクセル 一つのワークシートだけプログラムを無効にしたい

こんにちは。 エクセルVBA初心者です。 ブックの複数のワークシートにVBAでプログラムを書いています。 Sheet1のモジュールにマクロ1~4 sheet2のモジュールにマクロ5~7 と言った具合です。 Sheet2で作業するのにプログラムが動作すると邪魔なので、Sheet2のプログラムだけを一時的に無効にしておきたいと思ってます。 このときの条件(というか希望)として、 ・マクロはまた使うので消さない ・Sheet1のマクロはSheet2の確認作業で使うのでそのまま使えるようにしておきたい ・有効/無効を簡単に切り替えたい があるのですが、このような要望をかなえる方法を教えて下さい。 尚、OSはWin2000、エクセルは97です。 よろしくお願いします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 シート内の邪魔にならない場所にフラグを立てておくのはどうでしょうか。 仮に、Z1をフラグに使用するとして、Z1に何か入力されていたら、マクロは実行しないというようにする場合、マクロの一番先頭に、 If Len(Range("Z1").Value) > 0 Then   Exit Sub End If 以下、マクロ処理 という風にしておきます。

kyama9270
質問者

お礼

ありがとうございます。 試してみましたが、これなら簡単でとても使いやすいです。 他にも応用できそうなので、いろいろ使わせていただきます。

関連するQ&A

  • エクセル ワークシート操作

    エクセル VBAにてブックを閉じるときに作業をして追加した ワークシートを昇順、もしくは降順(名前、日付など)に 並び替えてから閉じるように する方法がわからないのですが? どのようにやるのでしょうか?

  • Excel シート上に配置したボタンを無効にするに

    Excelブックのワークシート上には いくつかのボタンが配置されていて 各ボタンをクリックすると 対応するマクロが呼び出されるようになっているのですが、 Excelブックを配布するユーザー毎に 使用するボタンと使用しないボタンがあります。 配布前に、シート上のボタンを手(VBAではなく)で 無効(グレー表示)にして、 ユーザーがクリックしても何も起きない (ボタンが押し込まれたりマクロが呼び出されたりしない) ようにしておきたいのですが マクロはいじらずに このようなことは可能でしょうか。 必要のないボタンを消す方法もありますが ボタンが消えてしまうと画面の表示の 見た目が悪くなるので、 ボタンが表示されていて機能しないように しておきたいです。 (Windows7 ,Excel2010)

  • EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作り

    EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作りました。そのワークシート上での定数や、プロシージャや関数をワークシートのモジュールに置いています。そして、その定数や関数などをユーザーフォームのイニシャライズなどで使いたいと思いますが、ユーザーフォームのモジュールはワークシートのモジュールとは別なので、使えません。他への影響を考えると、標準モジュールには、置くのは不適切だと思います。 特定のワークシート上でのみ使うユーザーフォームと、そのワークシートとで、共通の定数や関数などを使う方法は、あるのでしょうか。どのようにすればよいのでしょうか。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3コピー元ワークシート3 という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3ワークシート という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • エクセルのワークシート

    エクセルのワークシート エクセルのブックを開いたときに、シートが3枚あったら そのまま開いて、 3枚なかったら1枚追加する、ということをしたいのですが どのようにすればよいか、教えていただけないでしょうか。

  • VBAで別のExcelブックのボタンのマクロ登録

    Excelブック1とExcelブック2があります。 Excelブック1はVBAで 1)Excelブック2を開いて 2)Excelブック1のワークシート(Sheet1)と  モジュールシート(Module1)を  Excelブック2にコピーします。 3)ワークシート(Sheet1)にはコントロール(ボタン)が貼り付けてあって  このボタンをクリックするとモジュールシート(Module1)の中の  Excute_Button()というプロシージャ(マクロ)を呼び出すため  Excelブック1のVBAで  wb.Worksheets("Sheet1").Shapes.Range(Array("Button 1")).Select  Selection.OnAction = "Excute_Button"  と記述してボタンのマクロの登録をします。   (wbはExcelブック2を指しています) 4)Excelブック2を保存して閉じる。 という処理をしています。 この後、Excelブック1を閉じて、 Excelブック2を開いてワークシート(Sheet1)のボタンをクリックすると Excelブック1が開いてしまいます。 Excelブック2のボタンのマクロの登録のマクロ名を見てみると Excelブック1のファイル名!Excute_Button となっています。 Excelブック1のVBAで、ここを単にExcute_Buttonだけにするには どのようにすればよいでしょうか。

  • VBAでブック内のワークシートを名前をつけて保存

    エクセルVBAで作業中のブックの一部のワークシート(2枚)を名前をつけて保存する方法を教えてください。 (例)  《ブックA》  sheet1 sheet2     sheet3 10/5     10個 10,000円    4個 25,000円 東京     25個 18,500円    6個 42,000円 というブックから『10/5 東京』というブックでsheet2,sheet3の内容を 保存したいのですが・・・ VBAは勉強し始めでほとんどわからないので教えてください。

  • エクセルのワークシート

    エクセルのブックをワークシート一枚ずつ別々に保存する方法はありますか?教えてください!

  • エクセルからACCESSへマクロでワークシート変換していますが・・・

    ACCESSで作ったクエリを一度エクセルにエクスポート(マクロを使ってワークシート変換)後、エクスポート先のシートとは別シート(同一ブック内)で集計し、集計結果をACCESSへインポート(マクロを使ってワークシート変換)させたいのですが、前回の集計結果がインポートされてしまい、新しい集計結果が反映されません。 一度エクセルのブックを開けば新しい集計結果が取り込めます。 何故でしょうか? またブックを開かずに最新のエクセルの集計結果をACCESSに反映させる方法はありますでしょうか?

専門家に質問してみよう