[[20120822173856]] 『シートの削除』(riko) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートの削除』(riko)

お世話になります。

 135枚のシートがあり、決まったシートを力技で削除し
3枚のシートにしております。
シート名に規則性は無く、ランダムです
ただし、枚数は135枚と決まっており
7枚目と56、57枚目以外を削除したいのですが可能でしょうか?
環境は、XP 2003 です。宜しくお願いします。   (riko)


 7枚目と56枚目と57枚目を選択した状態で右クリック、シートの移動またはコピーで移動先ブック名コンボボックスから新規ブックを選びOK。
 (コピーを作成するにチェックしても、しなくてもいい)
 こうすると、3枚だけの新規ブックができるので、元のブックは閉じて、この新規ブックを元のブック名で
 名前を付けてき保存するのはどうだろうか?

 (ぶらっと)

 ぶらっとさんの回答をコードにしただけですけれど、マクロの例です。
 これを個人マクロにおいておけば、アクティブなブックを3シートにして上書きします。
 別名で保存も可能ですので、その際は
     newWB.SaveAs savePath
 を
    newWB.SaveAs Replace(savePath,".xls","_3ws.xls")
 のようにすることで、対応可能です。
 (Mook)

 Sub Save3WSs()
    Dim wb As Workbook
    Set wb = ActiveWorkbook

    If wb.Worksheets.Count <> 135 Then
        MsgBox "この処理はシートが135のブックで実行可能です。"
        Exit Sub
    End If

    Dim newWB As Workbook
    Dim savePath As String
    wb.Sheets(Array(wb.Sheets(7).Name, wb.Sheets(56).Name, wb.Sheets(57).Name)).Copy
    Set newWB = ActiveWorkbook
    savePath = wb.Path & "\" & wb.Name
    wb.Close SaveChanges:=False
    newWB.SaveAs savePath
 End Sub


ぶらっとさま
Mookさま
感謝また返信遅くなり大変申し訳ありません
有難う御座いました

 名前を付けて保存は問題なく動作しました
しかし、135枚の内3枚を残しそのまま上書き保存したいのです。
自分の質問の仕方が悪いので致し方ありませんでした
結果として、全てのシートを元データからコピーしてから始めます
そして
ブックの名前を、20120824とすると
135枚のシートを開き3枚以外を削除
20120824で上書き保存です。
お忙しいところ申し訳ありません
ご教授のほど何とぞ宜しくお願い致します。
                        20120824 01:18 (riko)


 Mookさんの回答コードは、そのとおりになるよ?

 ただ、くだんのブックが開かれ、それを最前面に出した状態で実行するというもの。
 あと、「ブックの名前を、20120824とすると135枚のシートを開き」という表現が
 ちょっと気になるね。開くのは「ブック」で、シートは、そのブックの中に存在しているだけなので。

 (ぶらっと)


 もしかしたら、マクロの設定の仕方がわからないのでしょうか。

 一例ですが、
 ツール⇒マクロ⇒新しいマクロの記録
 保存先に「個人用マクロブック」を指定し、そのまま停止ボタンを押す。
http://koikide.net/kiroku.html

 Alt+F8 で「Macro1」を選んで「編集」をクリック。
 開いた Sub Macro1() 〜 End Sub を全部消して、
 代わりに上の Sub Save3WSs() 〜 End Sub を貼り付け。

 Excel に戻って、135シートあるファイルを開いて、Alt+F8 のマクロの実行から、
 Save3WSs を選んで実行です。
 Alt+F8 のオプションでショートカットキーを設定すれば、直接実行もできます。
 (Mook)

 追記:
 編集で開かない場合は、EXCEL から Alt+F11 で開いたウィンドウで
   PERSONAL.XLS(2003の場合) の下の 標準モジュール、ModuleXX(XXは数字)を選ぶ。
 や
   Macro1 を選んで、ステップインをクリックして、開いたウィンドウで
  「実行」⇒「リセット」をクリックしてから、作業をする。
 といった方法で試してみてください。

 (Mook)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.