エクセル初回起動時にデータを読み込んでマクロで動的に表示を作成した後は
マクロをもう使わないので削除したいって時のための方法です。
マクロが残っていると起動時にセキュリティの警告が出たり、
利用者にマクロを見られるという問題を回避したい場合に使えます。
コピーとかでシートを移すとすべて移した段階で
何故かマクロも移るという現象が起こるので一枚シートを残してやる必要があります。
Sub CreateNoMacroBook() Dim fname As String Dim ns As Integer Dim cnt As Integer 'マクロありブックの名前を取得 fname = ActiveWorkbook.Name 'マクロありブックのシート数を取得 cnt = ActiveWorkbook.Worksheets.Count 'すべてのシートをMoveするとエラーになるのでシートを追加 Worksheets.Add After:=Worksheets(Worksheets.Count) '新規ブック作成時のデフォルトのシート数を保管 ns = Application.SheetsInNewWorkbook '新規ブック作成時のシート数を変更 Application.SheetsInNewWorkbook = 1 '新規ブック作成 Workbooks.Add '新規ブック作成時のデフォルトのシート数に戻す Application.SheetsInNewWorkbook = ns 'マクロありブックのシートを新規ブックの"Sheet1"シートの前に移動 For i = 1 To cnt Workbooks(fname).Worksheets(1).Move Before:=Workbooks(Workbooks.Count).Worksheets("Sheet1") Next i '表示用に新規ブックの一枚目のシートをアクティブにする Workbooks(Workbooks.Count).Worksheets(1).Activate Application.DisplayAlerts = False '新規ブックのデフォルトシート"Sheet1"を削除する Workbooks(Workbooks.Count).Worksheets("Sheet1").Delete 'マクロありブックを保存せずに終了 Workbooks(fname).Close SaveChanges:=False Application.DisplayAlerts = True End Subできる逆引き Excel VBAを極める 勝ちワザ700
2010/2007/2003/2002対応 (「できる逆引き」シリーズ)