- ベストアンサー
エクセル 複数フィートのコピー
こんにちは いつもお世話になっています。 複数シートを選択して右クリックから別のブックにコピーしたいのですが 全シートに関数が入っているので失敗しています。 データ(値)だけを一括コピーする方法を教えてください。 マクロが必要ならご紹介ください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 教えていただいたマクロで成功しているのですが、手を加えていただけないでしょうか。 > 気長にお待ちしております。よろしくお願いします。 なるほど、作れと(笑)。 さてさて、冗談はさておき、ご希望の処理 > Ctrl+右クリックで選択した複数のシートだけを対象として新規ブックにコピーしたい > 連続しているシートもあれば、とびとびのシートもある場合があるのですが > 「選択している複数シート」を対象にしたい 実は選択シートを新規ブックに完全コピーするだけなら、 先般のウダウダコードを書かなくても1行で終われます。 Sub Test2() ActiveWindow.SelectedSheets.Copy End Sub こんな感じです。 複数シートを選択して、右クリック→移動またはコピー、新規ブックへ と全く同じ作業です。 でも、このままだと関数や計算式をそのまま引き継いでしまいます。 これだと他ブックへのリンクが発生するので鬱陶しい・・という事ですよね。 なので、コピーした後に、値にしてやるコードを書きます。 Sub CopyBook2() Dim WS As Worksheet ActiveWindow.SelectedSheets.Copy For Each WS In ActiveWorkbook.Worksheets With WS.Cells .Copy .PasteSpecial Paste:=xlPasteValues End With Next Application.CutCopyMode = False End Sub なんだか少しスッキリしちゃいましたが、2010でちゃんと動きます。 お試しくださいませ。 ダメだったらまた補足でもくださいませ。 長い追記) マクロの記録と言う機能はご存知ですか? 自分が行った動きを、マクロとして記録してくれる機能(そのまま)です。 ひとまずその記録を眺めつつ、スッキリ書く方法を探すと、 それだけでかなり勉強になりますよ。 その上でわからないことは こんなコードを書いたが、なんせ上手く動かない。どうしたらいいだろう?とか もっとスッキリ書くにはどうしたらいいのでしょう?とか、 ビシバシ質問して良いと思います。 が、いわゆる「0からのコード作成依頼」は嫌われてしまいがちです。 日々のルーチン業務がかなり楽になりますから、 是非、これを機にお勉強くださいませ。
その他の回答 (1)
- tsubuyuki
- ベストアンサー率45% (699/1545)
複数シートを別ブックに一括で値貼り付け、 と言う機能は思い当たりませんので、マクロを紹介。 ・・と、いきたいのですが、条件が曖昧ですので、100%の答えは出せません。 なので、マクロを作るにあたってヒントになるようなコードをどうぞ。 以下のコードは元ブックの全てのシートを、新規ブックに値と書式を貼り付けます。 元ブックをアクティブにして実行してください。 ちなみに2010で動作確認しています。 Sub CopyBook() Dim OldBook As Workbook, NewBook As Workbook Dim WS As Worksheet, WSCount As Integer Set OldBook = ActiveWorkbook WSCount = OldBook.Worksheets.Count Application.SheetsInNewWorkbook = WSCount Set NewBook = Workbooks.Add i = 1 For Each WS In OldBook.Worksheets With WS WSName = .Name .Cells.Copy End With With NewBook.Worksheets(i) With .Cells .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats End With End With i = i + 1 Next Application.CutCopyMode = False Application.SheetsInNewWorkbook = 3 Set NewBook = Nothing: Set OldBook = Nothing End Sub より理想に近いものを望まれるなら、 ・複数シートとは全てのシートか一部のシートか ・(一部のシートの場合)連続した複数か連続しない複数か ・別ブックとは新規ブックか既存ブックか ・値だけで良いのか(列幅等の)書式も必要か くらいは最低でも記述された方が良かったと思いますよ。
お礼
tsubuyuki 様 ありがとうございました。 言葉足らずでご迷惑をおかけしました。 申し訳ありません。 教えていただいたマクロで成功しているのですが、手を加えていただけないでしょうか。 シートが多いものですから、Ctrl+右クリックで選択した複数のシートだけを対象として新規ブックにコピーしたいです。 >(一部のシートの場合)連続した複数か連続しない複数か とのことですが、たとえば、連続しているシートもあれば、とびとびのシートもある場合があるのですが、いずれにしても「選択している複数シート」を対象にしたいのですが。 書式は不要です。 気長にお待ちしております。よろしくお願いします。
お礼
tsubuyuki 様 ありがとうございました。お蔭様で解決しました。 御丁寧に説明していただき助かりました。 大切に使わせていただきます。 また、追記にてのご注意ありがとうございました。 マクロ記録を試したうえで質問すべきでした。 今後気を付けます。 更に、質問タイトルの入力ミスに今さら気づきました。 重ねてお詫び申し上げます。 簡単で恐縮ですが、お礼申し上げます。