No.2ベストアンサー
- 回答日時:
>新規シートを削除した後に直前まで作業していたシートに戻るマクロがありましたら、教えていただけますか。
直前のシートを記憶しておけば戻ることができます。
ちょっと長くなりますが、次のコードを記述してください。
Dim NewSheetFlag As Boolean
Dim PreSheet As String
Private Sub Workbook_Open()
NewSheetFlag = False
PreSheet = ActiveSheet.Name
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not NewSheetFlag Then
PreSheet = ActiveSheet.Name
End If
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
NewSheetFlag = True
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
If PreSheet <> "" Then
Worksheets(PreSheet).Activate
End If
NewSheetFlag = False
End Sub
挿入タブ押下以外でもシートが削除されるのは、どこで挿入したかを認識することはできないのでしかたありません。
コードで対応するとしたら、マクロに「シートの挿入」を作成して、そこからシートを作成した場合は自動削除しないという方法をとるしかないでしょう。
ご回答ありがとうございました。
非常に助かりました。
これでもう、シートを探してタブの列をうろうろして挿入タブをクリックしてしまってシートを消して…という、一連のイライラ作業から解放されます。
本当にありがとうございました。
No.1
- 回答日時:
タブを消すことはできませんが、
新しいシートを作っても自動で削除するようにしておけば、見かけ上、挿入タブの機能を無効にできます。
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
この回答への補足
週末を挟みお礼が遅くなってしまいました。
ご回答ありがとうございました。
教えていただいた方法で自動削除ができました。
ですが二つ、作業上少々都合のよくない動きとなってしまいました。
1)ワークシートの挿入タブの直前のシート(シートタブの末尾)にアクティブなシートが移動してしまう
2)ワークシートの挿入タブ押下以外の方法でシートを挿入した場合も自動削除が実行される
新規にシートを挿入すること自体ほとんど無いので(2)は問題無いのですが、直前に作業していたシートへ戻れないとなるとまたシートを探す必要が出てきてしまいます。
新規シートを削除した後に直前まで作業していたシートに戻るマクロがありましたら、教えていただけますか。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- その他(Microsoft Office) ExcelのVBAコードについて教えてください。 2 2022/06/17 12:58
- Excel(エクセル) 計算式がたくさん入ったExcelのファイルを他のファイルからシートを挿入した際、計算式の中に他のファ 4 2023/08/15 11:28
- Excel(エクセル) Excel VBA 指定フォルダに格納されている全エクセルファイルに指定シートを挿入する方法について 1 2022/08/22 11:53
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルで複数のシートに画像...
-
エクセルのシート連番の振り直し
-
ワークシートそのものの色を変...
-
ハイパーリンクでジャンプした...
-
エクセル、特定のシートにパス...
-
エクセルで開くページを指定したい
-
accessへエクセルの複数のシー...
-
特定のシートのみ再計算させな...
-
エクセルで、シートの名前を変...
-
EXCELの図形(テキストボックス)...
-
エクセルのシー名を二段表示に...
-
【Excel VBA】データ貼り付け先...
-
エクセルでブック内の倍率がバ...
-
EXCELの「シートの見出し」のフ...
-
DATE関数 4月31日などのあ...
-
Wordで差し込み印刷時に表示す...
-
【Excel VBA】コンボボックスで...
-
エクセルを開くとメニューバー...
-
エクセル、別のシートの表をポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルで複数のシートに画像...
-
特定のシートのみ再計算させな...
-
エクセルでブック内の倍率がバ...
-
ワークシートそのものの色を変...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルの2つのシートを並び...
-
EXCELの図形(テキストボックス)...
-
ハイパーリンクでジャンプした...
-
エクセルのシート連番の振り直し
-
特定の複数のシートに同じ処理...
-
エクセルのシー名を二段表示に...
-
Wordで差し込み印刷時に表示す...
-
エクセルで、シートの名前を変...
-
エクセルでリンク貼り付けした...
-
エクセル、特定のシートにパス...
-
accessへエクセルの複数のシー...
-
Accessのテーブルを既存のExcel...
-
【Excel VBA】データ貼り付け先...
-
EXCELの「シートの見出し」のフ...
おすすめ情報