• ベストアンサー

エクセル:ある任意のシートを除く他のシートの一括削除について

エクセルVBAについての質問です。よろしくお願いします。 エクセルの「○○.xls」にたくさんのシートを作っています。 ◆それをある任意のシートだけを残して(リンクがあるのでそのシートの全部を値だけ貼り付けてから) ◆そのほかのシートを一括削除して、 ◆別の名前をつけて「デスクトップ」に保存 ◆「○○.xls」を他のPCに保存してもそのVBAを実行するとそちらの「デスクトップ」に保存できるというイメージです。 このようなVBAを教えていただけないでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

残すシートの名前が「残すシート」の場合、こんな感じかな? ただ、「デスクトップ」に保存ですが、他のPCに保存の場合はPCごと(ユーザーごと)にパスが変わってしまうので自分で選んでもらうようにしてあります。 Sub test01() For Each sh In Worksheets If sh.Name = "残すシート" Then Cells.Copy Cells.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Else Application.DisplayAlerts = False sh.Delete Application.DisplayAlerts = True End If Next Application.Dialogs(xlDialogSaveAs).Show End Sub

yastaro
質問者

お礼

ご回答ありがとうございます。できました。完璧です。いつもいつもご指導感謝いたします。 追加質問があったのですが、こちらを先に締め切ってしまいましたので、改めて質問投稿をしました。 よろしければまた引き続いてご指導をお願いいたします。

関連するQ&A

  • エクセル:標準モジュールを一括削除して保存するVBA

    No.2169774の関連質問になってしまいます。 よろしくお願いします。 ◆あるエクセルファイルの任意のシートを残して、その他のシートの一括削除をして、新しい名前で保存する方法をNo.2169774で教えていただきました。 ◆その同じもとのエクセルファイルの任意のシート以外の他のシートを削除するだけでなく、『VBAprojectで保護をかけている標準モジュールをすべて一括削除すること』は可能なのでしょうか? ◆目的は、任意のシートのみを残して、VBAの書き込みもすべて削除してしまい、第三者があらたにVBAを書き込むことを含めて自由に使用できるようにしたいのです。 質問がわかりにくければ申し訳ありません。どうか、よろしくご指導をお願い申し上げます。

  • ★「フォルダ内の全エクセルシートを一括処理」★

    ★「フォルダ内の全エクセルシートを一括処理」★ エクセルのマクロのコードを教えていただけますでしょうか。 ★VBAの初心者です★ どなかた詳しい方、下記の内容を実行するためのコードを教えていただけませんでしょうか。 あるフォルダ内に入っている全エクセルシートの「sheet1」セルA1、B1、C1にある値を、デスクトップ上に保存されている別のエクセルシート”X” のF2、G2、H2、にそれぞれ貼り付けたい。 フォルダ内のエクセルシートは複数あるので、エクセルシートXのセルF2、G2、H2の次はF3、G3、H3、F4、G4、H4とそれぞれ1番ず つ下に貼り付けていきたい。 フォルダを検索するところから、全てのコピーが終了するところまで教えていただけると幸いです。 お忙しいところ恐れ入りますが、よろしくお願いいたします。

  • エクセル:シート1のセルA1が0でなければ任意のマクロを実行したい

    エクセルマクロ(VBA)初心者です。よろしくお願いします。 (1)エクセルのsheet1のセルA1の値が”0(ゼロ)”でなければ、そのシート上で任意のマクロを実行し、ゼロであれば実行せずにsheet2へとぶ (2)同じようにsheet2のセルA1がゼロでなければ実効し、ゼロでなければsheet3へとぶ・・・の繰り返し(sheet50まであります。) このようなマクロ(標準モジュール)の書き方を教えてください。 よろしくお願いいたします。

  • 複数のエクセルファイルに、決まったシートを一括挿入

    複数のエクセルファイルに、決まったシートを一括挿入 エクセルが100ファイルあるのですが、この100ファイルに「A.xls」のシートを一度にコピーできるソフトかプログラムがあるでしょうか 下記のようなイメージになります 1つ1つ「シートの移動とコピー」をするには多すぎて・・・ よろしくお願いします 001.xls←┬A.xls 002.xls←┤ 003.xls←┤ 004.xls←┤ 005.xls←┤ 006.xls←┤ 007.xls←┘

  • EXCELでの他ファイルリンクについて

    AというEXCELファイルからBというEXCELファイルへの外部リンクを張る場合、通常は =[B.xls]Sheet1!$A$1 というように記述するかと思います。 このBやSheet1という部分を、動的に表現するには どのようにしたらよいでしょうか? (どこかのセルの値を参照し、その名前に該当する ファイルないしシートへのリンクとしたいです) できるかどうかわかりませんが、 イメージ的には =[($B$2).xls]($C$3)1!$I$1 のようにしたいのです。 説明がわかりにくくてすいませんが 宜しくご教授ください。

  • Excelシート上のハイパーリンクの一括削除

    Excelシート上にあるハイパーリンクの一括削除はできるのでしょうか? 現在、ある列にハイパーリンクされたデータがあります。 これを、列全体を一括でリンク解除したいのです。 セル毎に、右クリック→ハイパーリンク(H)→ハイパーリンクの削除 で一つずつ解除出来ますが、これを列単位で一括して行いたいです。 よろしくお願いいたします。

  • エクセルでシートを一括で再表示するには

    EXCEL97を使っているのですが、 複数のシートを非表示にした後、全部再表示させたい場合、書式→シート→再表示だと、1枚ずつしか再表示できなくて時間がかかってしまいます。 非表示になっている全部のシート、あるいは任意の何枚かを一括で再表示させたい場合はどうすればいいですか?

  • *エクセル* 任意のSheetだけ1つを新規で保存したい

    エクセルを起動して画面の左下にShee1、Sheet2、Sheet3とデフォルトではなっていますが、この各シートの名前を変えて利用しています。 どんどん使っているとシートの枚数が増えてきてファイルが重くなってしまいます。任意のシートだけを一枚(2枚以上の場合も)保存することはできますか? 今は、任意のシートだけを新規で開いたエクセルにコピーして保存しているんですが・・・?

  • Excelシート内への一括リンク

    あるフォルダ[folder]内にある大量のファイル[file1.xls,file2.xls,…file30.xls]を Excelワークシートの各セルにフォルダ内のファイル名(拡張子なし)を挿入し、且つそのセル内のファイル名に対応するファイルへのハイパーリンクを一括で張るといったような処理をするにはどのようにしたらよろしいのでしょうか?そのような処理のできるマクロやVBAをお分かりになる方がいらっしゃいましたら教えてください。

  • VBA=エクセルシートの削除方法のプログラムについて

    エクセルシートの削除で、メイン以外の「コピー等で作成されたシートを全部削除」することは出来ますか? 出来るとすれば、どのようなVBAになりますか? 例えば、「原本」という名前のエクセルシートはどのような場合でも保存しておきたく、 原本以外に原本のコピー等で「カナ並替」「住所並替」等々のシートを作成したとします。 「カナ並替」「住所並替」等々のシートをそのまま残しておきますと、あとから追記入力しようとした人が、原本以外に入力してしまうミスを防ぎたいのです。 VBAでエクセルシートの名前で指定してデリートすればシートの削除が出来るのは分かっているのですが、「原本以外」という くくりで削除できる方法を知りたいのですが-・・・・数式で表せば「≠」ということになりますが・・この場合ですとシートが何枚出来ても一発で「原本以外」は全て削除されますので、非常に有効と考えています。 よく分からないのでよろしくお願いします。

専門家に質問してみよう