• ベストアンサー

特定のシートが削除されたときにラベルを非表示にしたい

end-uの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

特定のシートを削除したタイミングを捉えたいという事でしょうか? シート削除イベントそのものは無いですから、代替的なものを仕込む事になります。 例えばThisWorkbookモジュールのSheetActivateイベントが発生した時に『特定のシート』の存在チェックをするなど。 または 'ThisWorkbookモジュール Const chk = "特定のシート" Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)   If Sh.Name = chk Then     Application.OnTime Now, Me.CodeName & ".shtchk"   End If End Sub Private Sub shtchk()   Dim ws As Worksheet      On Error Resume Next   Set ws = Sheets(chk)   On Error GoTo 0   If ws Is Nothing Then     MsgBox "削除"   Else     Set ws = Nothing   End If End Sub こんなのでもいいかもしれません。 #SheetDeactivateが発生しないVBAコードでの削除には対応していません & #シート名変更の場合を考慮していませんが。

関連するQ&A

  • VBA 特定のシートでイベントを実行 

    EXCEL2010 VBAで特定のシートがアクティブになるとイベントを実行したいのですが可能でしょうか? 現在はすべてのシートでイベントが実行されてしまいます。

  • EXCEL VBA  特定シート以外のシート削除

    同一のブック内に存在する複数シートのうち任意のシートのみを削除することはVBAで可能でしょうか? (例)  消したくないシート:TEMP1、TEMP2の2シート  消したいシート:1、2、3....といった連番シート (VBAで作成したシート) 環境は、WIN XP PRO でEXCEL2003を使用しています。 宜しくお願い致します。

  • 特定のシートを削除する

    いつもお世話になっています。 INパラメータがA~Zあり、各パラメータごとにシートを作成し、 その中に各パラメータごとのデータ表を作成しています。 このとき、表示するデータが全くないパラメータのシートを 削除したいのですが、出来るのでしょうか? 最初にシートをパラメータの数だけ作り、(シート名はパラメータの名前と同じ) そこでシート分ループさせています。 表示データの有無はプログラムにより、判断できます(Flg=1が返ってきます)。 Flg=1ならそのシート(パラメータA)を削除して次のシート(パラメータB)へ・・・ といった感じなのですが・・・。 シートの削除の仕方は載っているのですが、特定のシートを削除するには どうしたらいいのでしょう。 どなたか知ってる方、教えてください!!

  • 複数のシートにまたがる列の削除について

    こんばんは、複数のシートを選択して特定の列を削除するVBAについて質問させてください。Sheet1とSheet2のA~C列を削除したく、以下のVBAを入力しましたが、削除されるのはSheet1のA~C列のみでSheet2に同様の処理が行われません。 手作業でやると複数のシートを選択のうえ列の削除ができるので、VBAでできないということはないと思うのですが、どのように記述すればよいのでしょうか・・・?!どなたかご教授よろしくお願いいたします! Sheets(Array("Sheet1","Sheet2")).Select Range("A:C").Delete Shift:=xlToLeft

  • エクセルの任意のシートをフォームに表示したい。

    いつも参考にさせていただいています。 宜しくお願いします。 Access2002,Excel2002でタイトルのようなことを 実現しようと思ってます。 現在やっていることは、 フォームに「非連結オブジェクトフレーム」を用意して エクセルファイルを表示させているのですが 任意のシートを表示させたいと思っています。 手動で任意のシートをアクティブにしてフォームを再表示すると アクティブなシートがオブジェクトに表示されるのですが、、 VBAの操作によりシートをアクティブにする ことは可能でしょうか。 なにかお気づきの方が居られましたら ご教授宜しくお願いします。

  • ExcelのVBAでシート内にある、特定の罫線だけを削除したい。

    ExcelのVBAでシート内にある、特定の罫線だけを削除したい。 2003を使用しています。ここのサイトで罫線に関する質問をし解決に至りましたが、もうひとつお願いしたいことがあるので、よろしくお願いします。 ある範囲(例としてA1セルからM50セルの範囲)内に色々な罫線や図形が表示されているのですが、 その中から特定(例として太さ5ポイントの普通の赤罫線)だけを削除するコードの記述が、色々試してみたのですが出来ませんでした。 どんな記述や展開をして書くのかもイメージがわきません。 よろしくお願いいたします。

  • Excelシートの改行削除

    環境:Excel2000+VBA Excelシートに入っているセル内の改行を全て削除 したいのですが、よい方法はないでしょうか? よろしくお願いします。

  • VBA シートの削除について

    VBAのコードの書き方について質問があります。 コマンドボタンをクリックした時、シート1~シート4を削除をしたいのですが、 シート1~シート4が存在するかはその時の状況で異なります。 シート1が存在し、シート2~4が存在しないのであればシート1だけ削除する場合もあれば シート1~シート4がすべて無い場合もあります。 いずれのケースにしてもボタンクリック後は”シートを削除しました”のメッセージを 表示させたいのですが、どうコードを書けばよいでしょうか? VBA初心者なのでコードを教えていただけると助かります。 よろしくお願いします!

  • 【VBA】特定シート 名前編集・削除を禁止したい

    いつも大変お世話になっております。 Excel2003を使用しております。 今回VBAでやりたいことは、 特定シートの名前編集・削除を禁止したいのです。 シート名 「データ」 シート名 「一覧」 この二つを名前編集・削除禁止にしたいと思っております。 保護する方法も考えたのですが、 現在様々なプログラムでシートを利用しており、 保護をかけると色んなフォーム上で保護解除をしないといけません。 データの参照・編集が出来ないと困るのです。 保護をかける 以外で何か、方法はありますでしょうか? 以上、 回答よろしくお願い致します。

  • エクセルのSheet削除について

    お尋ねします。 VBAでマクロを作成中に画像のように「Sheet15」というのが作成されました。 アイコンは「ThisWorkBook」と同じです。 右クリックして「オブジェクトの表示」を選んでも他のシートが表示されます。 エクセルの画面上にはシートとして表示されていません。 削除したいのですが、 右クリックで表示されるメニューの「Sheet15の解放」はグレーアウトして押せません。 削除する方法があれば教えてください。 マクロでの削除でも結構です。 よろしくお願いします。