• ベストアンサー

シート間のコピー

最近私の質問が多くて恐縮ですが。。。 表題ですが、1つのExcelBOOKに2つのシートを持たせ ており、更に別BOOKの数値を集計して、片方のシートに に集計結果を出力しているのですが、1つ目のシート集 計が終了した後で、その結果のある範囲のみ、2つ目の シートにコピーしたいのですが。。。 同一BOOK内の複数シートの処理はどのように処理させれ ば良いでしょうか? よろしくお願いします。

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

  • ベストアンサー
noname#4564
noname#4564
回答No.1

  > 最近私の質問が多くて恐縮ですが と本気で思っているのなら、たまには他人の質問にも答えてみましょう。 (1) 自分の理解やコミュニケーション能力の確認、向上につながる。 (2) 多くの人が疑問に思う(いわゆるひとつの「FAQ」ですネ)のはどんな問題なのか、把握できる。 → 類似する問題に直面したときに応用が利くので、似たような質問を繰り返さずに済む。 といったメリットがあります。 (というか、他人の発言を読まない人ほど、しょうもない質問を何度も繰り返す傾向が強いのが現実です) ・・・本題に戻りますが・・・。 > 同一BOOK内の複数シートの処理はどのように処理させれ ば良いでしょうか? 直接の答えではなく、問題解決の「考え方」ですが、Excelには「マクロ記録」という便利な機能がありますので、これを有効に活用しましょう。 (1) 「自分が実現したい動作」をマクロ記録する。 (2) 上記で記録したマクロ(VBA)コードを推敲して、完成品にする。 ポイント(ミソ)は(1)です。 これを知らないと、「自分が実現したい動作」が100あると、100回質問するハメになります。(^^; (「応用が利かない」の典型例) > 1つ目のシート集計が終了した後で、その結果のある範囲のみ、2つ目の > シートにコピーしたいのですが。。。 一例ですが、「Sheet1のC~F列、51~100行目をSheet2のE列31行目にペーストする」場合、下記の 要領です。 Public Sub Test() Sheets("Sheet1").Select ActiveSheet.Range("C51:F100").Copy Sheets("Sheet2").Select ActiveSheet.Range("E31").Select ActiveSheet.Paste End Sub 注意点ですが、「マクロ記録」ではプログラム作成者が必要としない動作まで記録されてしまいますので、適切な修正を加えないと完成度、品質の低いコードとなってしまいます。 極端な例ですが、「E列36行目のセルのフォントをMSゴシックの9ポイントに変更する」マクロをマクロ記録で自動生成すると、下記のコードになります。 1 Sub Macro1() 2 ActiveWindow.SmallScroll Down:=6 3 Range("E36").Select 4 With Selection.Font 5 .Name = "MS ゴシック" 6 .FontStyle = "標準" 7 .Size = 9 8 .Strikethrough = False 9 .Superscript = False 10 .Subscript = False 11 .OutlineFont = False 12 .Shadow = False 13 .Underline = xlUnderlineStyleNone 14 .ColorIndex = xlAutomatic 15 End With 16 End Sub このうち、2、6、8~14行目は不要(変更しないプロパティは定義する必要がないため)ですので、大幅に簡略化できます。↓ Public Sub Macro1() With ActiveSheet.Range("E36").Font .Name = "MS ゴシック" .Size = 9 End With End Sub ちょっと極端な例ですが、マクロ記録で生成したコードを利用する際はムダな箇所を省けないか、常に確認した方がよいでしょう。 長文、失礼しました。 m(_ _)m  

siamzou
質問者

お礼

大変ご丁寧なご回答、ありがとうございました。 確かに。。。他の質問の中で似ているものがないか はじめに検索は行うようにはしていますが、習慣付 いてはおらず、ただ質問していることが多い気がし ます。実は投げかけておいて、自分の中だけで解決 できたことも何度かあります。(もちろんどうしよ うもない事柄の方が多いですが。。。汗) おっしゃるとおり、回答側にまわってみるのもいい かもしれませんね。いつも適切なご指摘、ありがと うございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

nanashinogombeiさんの前半部分(1)、(2)、もっともだと思いました。 回答できずとも、質問に対して考えてみて、 他の回答者がどのような回答をするかを見ていくだけでも、 ずいぶん勉強になると思います。(一種の問題集ですね) 私も回答させて頂いてますが、かなり能力UPしてると思います? (上級者の方からすれば、まだまだでしょうが・・・) で、本題です。 Public Sub Test1()   Sheets("Sheet1").Range("C1:F10").Copy Sheets("Sheet2").Range("E5") End Sub Public Sub Test2()   Sheets("Sheet2").Range("E5:H14").Value = Sheets("Sheet1").Range("C1:F10").Value End Sub という書き方もできると思いますよ。 マクロの記録をしたら、その文をヘルプで確認し、 自分の物にする事が大切だと思います。 (#1さんの例でも何故必要ないか分からないと削除もできませんね)

siamzou
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル関数設定シートを別のブックにコピー方法

    ◇使用機器 Win7 エクセル2007 ◇前提 上記エクセルで次の通り設定してあります。 Book1 シート1=23年度金銭出納簿を記帳。 シート2=23年度費目毎に集計。(シート1をベース・SUMIF関数を設定) シート3=住所録 この書式のシート1・2をそっくり使ってBook2に、24年度のものを設定したい。即ち次のようにしたい Book2 シート1=24年度金銭出納簿を記帳。 シート2=24年度費目毎に集計。(SUMIF関数を設定)…シート3は不要 ◇自分でトライした内容結果 Book1シート1金銭出納簿のみ全部をコピーしてBook2・シート1に貼り付けした。 結果:シート2・3も一緒にBook2 シート2.3にコピーされてしまう。結局Book1と同じものが出来ただけです。 ◇教えて頂きたい内容 (1)Book1 シート1の内容のみBook2シート1にコピーする方法。(2・3は不要) (2)Book2シート1にコピーしたものを24年度の出納簿として使いたい。23年度の数値を消し、設定関数は生かしたい。 (3)費目集計も上記と同様にして使いたい。

  • EXCELシートのコピー

    あるExcelブックに統計表シート、グラフシート、グラフ用の数値シートがあります。 グラフシートだけ別の場所にコピーすると、コピーしたグラフシートのブックを開いたとき、このグラフシートはコピー元の数値シートにリンクしたままになりますが、このリンクを無効にしてシートコピーする方法はありますか。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3コピー元ワークシート3 という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3ワークシート という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • ExcelVBA シートコピーについて

    何度か試行錯誤したのですが、何故かうまくいかないので質問させていただきます。 エクセルで 「A」という名のBook内にSheet1にある値を参照して該当する値を返すSheet2があります。(ここまではVlookup関数などで処理できます。) このSheet2を全く新しいBookにコピーしてブック名を「B」、シート名をSheet2のB1の値にします。 このシートBにBook「A」のSheet2のA1の値を変化させたもの(添付画像のの場合だとだと1~3)をBook「B」のSheetの末に1つずつコピーしたいと考えています。 最終形はBook「B」に「山田」~「高梁」までのデータがシートごとに集約されたものを作りたいのですが、Sheetの貼り付けををする際にエラーが出てうまくいきません。 つたない説明で恐縮ですが、どなたかお知恵を拝借できないでしょうか。

  • あるシートのセルを、複数のシートにコピーするマクロ

    やりたい事としては、シート名「Sample」で指定した範囲のセルを、ブック内の複数シート(※)へコピーしたいです。 ※ 他にも同じ構成のブックがあり、そこでも汎用として使えるマクロが必要となっています。 各ブックでは、「Sample」というシート名は共通ですが、コピー先の複数シートのシート名は異なっています。但し、共通している部分としては、コピー先のシートを「Start」と「End」で挟んでいます。 シートの順序としては、  「Start」 「1」 「2」 「3」 「End」 「Sample」 のような構成で、各シートごとに1~3のシート名がばらばらです。 「Start」と「End」シートを活用して、シート名を指定せずにコピーする方法をご教示頂ければと思います。 宜しくお願い致します。

  • シートをコピーして参照先も変わる

    宜しくお願いします。 エクセル2010で、リンクが貼ってあるシートをコピーした際に、 貼り付け先のリンクを参照する方法はないでしょうか? たとえば ブックA(社員A用)  ・集計シート  ・食費シート  ・消耗品シート 集計シートには食費シートと消耗品シートの合計が計算できる式が入っています。 之を新しく入ってきた社員Bにも適用し ブックB(社員B)  ・集計シート  ・食費シート  ・消耗品シート というのを作りたいです。 すでに食費シートと消耗品シートは入力されているため、集計シートだけを挿入し、 社員Bの集計シートを作りたいのです。 Aの集計シートをコピーするだけでは、挿入したシートはAの食費シート等を参照してしまいます。 Aの集計シートをBブックに挿入した際に、Aと同じ形で集計できることをしたいです。 シートは上記以外にたくさんあり空の様式に食費シートや消耗品シートを子p-するというのは難しいのです。 コピーした際にリンク先を変える方法を教えてください。 宜しくお願いします。

  • エクセルマクロで複数シートのコピー

    マクロ初心者です。お世話になります。 アンケート集計に関するマクロの記述を色々調べたのですが、どうもよくわかりません。お手伝いいただけると助かります。 【ファイル前提】 (1)ファイルには複数のシート(最大で100シート)があります。(シート名は回答、回答(2)、回答(3)というような感じです。 (2)各シートともアンケート質問及び回答で構成され、どのシートも同じ形式です。 【実施したい作業】 (1)各シートの解答欄(C2:C100)をコピーし、新しいシート(集計用)にコピーをしたい。 (2)回答が列になっているので、行列を入れ替えて集計用シートに順番に貼り付けたい。 色々検索した結果、新しいシートを挿入して、繰り返し処理をすればいいような感じはわかるのですが、初心者のため、コードがよく読めません・・・ これから勉強します。よろしくお願いいたします。

  • 同一Bookに存在する複数sheetの一定範囲を縦列でコピー

    各先生方 お世話になります。 同一Book(○○月分集計.xls)内にシート名 ”集計” ”Aさん、Bさん、Cさん、Dさん、Eさん、Fさん・・・” が存在しております。 ※アルファベットのシート(人名)は月毎に数量が変動致します。 存在する複数のシートの内、”集計”以外のシートの一定範囲セルを”集計”シートのB3セルから「縦列」にコピーしたく望んでおります。 コピー元の対象範囲は各シート共通で、CB2セル~CJ131セル(列:9列分、行:130行分)です。 コピー元シートのコピーの順序は一切、制約をもちませんが、”集計”シート以外の全てのシートから範囲セルのコピーを行うことを条件としております。 (順序がB、C、E、D、A・・・  A、C、B、E、D・・・  のように都度ランダムに変更されても構いません) お手間を取らせて申し訳ございませんが、どの様なコードの記述にて可能となるのか、ご教授いただきたく宜しくお願い致します。

  • エクセルのシートのコピーについて

    お願いします。教えてください。 エクセルのシートを同じブック内に100シート以上コピーするにはどうしたらいいでしょうか? 1シートづつなら出来るのですが、複数する方法がわかりません。 それと、そのコピーしたシートの名前をNo.1・2・3・・・と番号を自動で付けることできませんか? エクセル2000です。 よろしくご伝授ください。

保存ボタンが表示されない
このQ&Aのポイント
  • プリンターの保存ボタンが表示されないという問題について質問があります。
  • 質問者はプリンターメーカーやプリンター型番、インクカートリッジの型番などを提供しています。
  • また、エレコムの用紙やらくちんプリントのバージョンについても詳細を求めています。
回答を見る