エクセル2003で指定されたシートを複写する方法

このQ&Aのポイント
  • エクセル2003において、特定のシートを複写する方法を教えてください。
  • マクロ(VBA)を使用して、指定されたシートのレイアウトをコピーし、新しいシートに反映させることができます。
  • 複数のシートを手作業でコピーするのは時間がかかるため、マクロを利用することをおすすめします。
回答を見る
  • ベストアンサー

エクセル2003にて指定されたシートを複写するには?

エクセル2003にて指定されたシートを複写するには? はじめて投稿します。過去ログを調べたのですが、該当する質問を 発見することが出来なったので、宜しくお願い致します。 【質問内容】 エクセル2003にて、「シート1」は、以下のようになっています。   A  B   C 1 10 りんご 秋田 2 20 みかん 青森 3 30 バナナ 岩手 4 40 キウイ 島根 5 50 イチゴ 鳥取 マクロ(VBA?)で実施したいのは、「10」「20」・・・と いった文字列を「シート名」として、「シート2」に保存されている レイアウトをコピーし、「10」「20」とシート名として、コピーし、 反映させた上で、「シート1」のA1である『10』を新しくコピーされた シートである「10」のA列の5行目に「10」を持ってきたいと思っています。 (※B列以降は、VLOOKUPで持ってこようと思っています。) 800シート近くになり、毎週の処理な上、ひとつひとつやるには、時間ばっかり 必要になるので、マクロ(VBA?)で解決したいと思っております。 (※例のように5シート分であれば、手でやるのですが、、、) すみませんが、ご享受の程、宜しくお願い申し上げます。

  • dgn6
  • お礼率88% (8/9)

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

  • ベストアンサー
  • soixante
  • ベストアンサー率32% (401/1246)
回答No.2

#1です。 とりあえず、シート2のレイアウトは無視した形ですが以下です。 Sub aaa() Dim Ws1 As Worksheet, Ws2 As Worksheet Set Ws1 = Worksheets("シート1") Set Ws2 = Worksheets("シート2") Dim Endrow As Long, r As Integer Endrow = Ws1.Cells(Rows.Count, 1).End(xlUp).Row For r = 1 To Endrow     Worksheets.Add After:=Worksheets(Worksheets.Count)    ActiveSheet.Name = Ws1.Cells(r, 1).Value    Cells(5, 1).Value = Ws1.Cells(r, 1).Value    Cells(5, 2).Value = Ws1.Cells(r, 2).Value    Cells(5, 3).Value = Ws1.Cells(r, 3).Value Next r Set Ws1 = Nothing Set Ws2 = Nothing End Sub B列以降も一緒に移してしまいました。適当にアレンジください。

dgn6
質問者

お礼

ご丁寧にありがとうございます。 会社のPCでしか検証が出来ませんが、 ご意見をもとに頑張ってみようと思います。 本当にありがとうございます。

その他の回答 (1)

  • soixante
  • ベストアンサー率32% (401/1246)
回答No.1

ちょっと分かりにくいですね。 もうちょっと補足情報が必要です。 ・シート1には、1行目から800行目までデータがあるのですか? ・「10」「20」から「8000」まで、800枚のシートを作成するのですか。 ・シート2のレイアウトというのは、どういうものなのですか。 条件がしっかり分かれば解決の糸口になるかもしれません。

dgn6
質問者

補足

すみません、回答が遅くなりました、、、 ありがとうございます。 >・シート1には、1行目から800行目までデータがあるのですか? そのとおりです。800行は最大ですが、400~800行までデータがあると 考えて頂ければ幸いです。 >・「10」「20」から「8000」まで、800枚のシートを作成するのですか。 メモリの問題等で難しいとは思いますが、 言われているとおり、800枚のシートを作りたいと思っています。 >・シート2のレイアウトというのは、どういうものなのですか。 シート2のレイアウトは、わかりづらいですね、、、すみません。 簡単に説明すると書式(文字の大きさ・書体)を設定されている もので、様式といった方がよかったかもしれないですね。 ご丁寧にありがとうございます。

関連するQ&A

  • エクセルの各シートのデータを自動的に複写する方法

    現在、エクセルでデータの管理を行なっていますが、複数のシートから必要なデータのみ(「郵便」と入れた列)を、特定のシートに複写する方法の計算式をご教示ください。 エクセルデータのシート例示状況は次のとおりです。 (1) sheet1      A        B    C     D     E   F 1 (株)東京 1000  500 200  100 郵便 (2) sheet2      A        B     C    D     E 1 神奈川県庁 50   20  100  郵便 (3) sheet3(このシートに各シートのデータに「郵便」と入れた業者名だけを順次下のセルに自動複写していく)    A        B     C    D    E 1 (株)東京 2 神奈川県庁 このように何とかならないか考えています。誠に申し訳ありませんが、一連の「計算式と手法」をご教示ください。お願いします。 やっぱり「マクロ」しかないですよね。(マクロはかなりの初心者です) なお、エクセルは2003です。 重ね重ねお願いします。

  • EXCELでシート名をセルの内容で指定出来るか

    検索してみましたが、探し方が悪いのか該当する質問がないようなので、質問させていただきます。 EXCELで複数のシートにあるデータを使用して集計表を作成するときの質問です。 使用する人がEXCELに慣れていない方のため、汎用性を持たせたいのですが、以下のような方法は出来るのでしょうか。 集計元シート(複数)> '1','2','3'…のように連番のシート名 集計先シート>'集計' 1.'集計'シートのセル A列 にシート名を入力します。 2.'集計'シートのセル B列 にそれぞれのシートの合計部分のセルNo(Ex.B11)を指定します こうしたとき、2.のB列 は [ B1 = '1'!B11 ]のようになりますが、この '1' の部分で '集計'シートの A1 の値を反映したいのです。 こうすると、シートが増えたとしても、上の式をコピーすれば(ドラッグでのコピー)式のシート名を変更する必要がないと思うのですが…。 ですが、思いつく方法を試してみてもどうもうまくはいきません。 本当にこういった方法は出来るのか、出来るのならその方法をご教授いただければありがたいです。 説明ベタで申し訳ありません。 これが出来るといろいろなものがうまくいくので、ぜひよろしくお願い致します。 (VBAはなるべく使わない方向でお願いします)

  • エクセルの1シートを項目別に別シートへ分ける方法

    エクセル2010で1シートのデータを項目別に別シートへ自動的に分割する方法で困っています。 検索するとマクロを使うと書いていますが、マクロはほとんど使ったことが無いのもあって、わかりませんでした。 シート1 A列(日付8ケタ+商品番号6ケタ) B列(売上額) 20130515000004           300 20130515000006           100 20130518000004           300 20130519000001           500 20130519000004           300 ・・・                   ・・・ をA列の日付部分上8ケタを使って日別にシートを分け、 シート名をuriage20130515(uriageと日付8ケタ)という名前にしシート名+CSV形式で保存したいです。 シート2 シート名:uriage20130515 A列         B列 20130515000004 300 20130515000006 100 シート3 シート名:uriage20130518 A列         B列 20130518000004 300 シート4 シート名:uriage20130519 A列         B列 20130519000001 500 20130519000004 300 このように自動で別シートに分割した上で、シート名CSV形式で保存まで自動でできるとありがたいです。 自動化できるならシートを分割するマクロ、シート名でCSV保存するマクロが一つのマクロになっていても、分かれていてもOKです。 このようなことはできますか? よろしくお願いします。

  • エクセルの2つのシートを比較

    エクセルで2つのシートのA列に値が入っています。 それぞれのA列を比較して同じ値であればシート1のB列をコピーしてシート2のB列に貼付。 ということはVBAで可能でしょうか? ※行番地はばらばらです。 ※A列の値がダブルことはありません。 例) シート1       シート2 A列   B列     A列   B列 111   あああ    111 222   いいい    333 333   ううう    555 444   えええ    444 555   おおお    666 結果 シート1        シート2 A列   B列      A列   B列 111   あああ    111   あああ 222   いいい    333   ううう 333   ううう    555   おおお 444   えええ    444   えええ 555   おおお    666 よろしくお願いします。

  • シート複写時、データの入力規則が別セルに複写される

    シートをコピーすると、データの入力規則が、違うセルにもコピーされてしまいます。 例えば、Sheet1のA列(A6からA20セルまで)に、データの入力規則として、「=JOB!$B$3:$B$1048576」という他のシートを参照してプルダウンリストを表示するようにしています。 このSheet1を、シートタブからシートのコピーをして、Sheet2に複写したとします。 すると、A列のデータの入力規則が、A列だけではなく、B列(B6からB20セルまで)も、データの入力規則「=JOB!$B$3:$B$1048576」になってしまいます。 B列は、従来どおりデータの入力規則がないようにしたいのですが、どうしたらいいでしょうか。

  • エクセル2003にて指定されたシートを複写するには?(2)

    エクセル2003にて指定されたシートを複写するには?(2) 同じ件で投稿してすみません。エクセル本を読んでも、ネットで探しても 丸2日進んでいないので、投稿させて頂きました。 以前、以下のURLで投稿したものです。 http://okwave.jp/qa/q5930740.html 【回答して頂いた内容】 Sub aaa() Dim Ws1 As Worksheet, Ws2 As Worksheet Set Ws1 = Worksheets("シート1") Set Ws2 = Worksheets("シート2") Dim Endrow As Long, r As Integer Endrow = Ws1.Cells(Rows.Count, 1).End(xlUp).Row For r = 1 To Endrow     Worksheets.Add After:=Worksheets(Worksheets.Count)    ActiveSheet.Name = Ws1.Cells(r, 1).Value    Cells(5, 1).Value = Ws1.Cells(r, 1).Value    Cells(5, 2).Value = Ws1.Cells(r, 2).Value    Cells(5, 3).Value = Ws1.Cells(r, 3).Value Next r Set Ws1 = Nothing Set Ws2 = Nothing End Sub と、ご回答を頂き、想定していた対応が出来ていますが、 問題が2つほどございます。 (1)ひとつは、シート名及びテキストをA列ではなく、J列から持ってくる必要がある。 (2)もうひとつは、1行目はタイトル行なので、2行目から開始する必要がある。 この2点を解消しようと、色々数字を入れて試したのですが、改善できないので、 どなたか、是非、アドバイス・ご享受を宜しくお願い申し上げます。

  • EXCEL VBA シートの名前を指定してコピー

    EXCEL VBA 初心者です。 とても困っています。 助けてください。 excel2010を使っています。 今,「原本」というシートがあり,それをマクロを使って同じブック内にコピーしたいと思っています。 コピーして新しく作られたシートの名前は「A1」のセルに入力されている値にしたいです。 コピーされた後のシートにはマクロボタンは削除したいと考えています。 また,コピーした後のアクティブシートは「原本」のシートにしたいのですが これを全部いれたコマンドはどのようになるのでしょうか。 似たような質問だったり,回答があるのですが, どのように組み合わせたらいいのかよく分かりません。 どなたかお助けいただけないでしょうか。 よろしくお願いします。

  • エクセルのマクロで行いたいのですが。シート1からシート3(ジャンル別の

    エクセルのマクロで行いたいのですが。シート1からシート3(ジャンル別の商品データ)にあるデータを入荷した商品名で検索し、その検索結果の行を入荷した数量分コピーして、シート4(印刷)に上から順に貼り付けます。その結果をバーコードラベルで印刷し、商品に貼り付けていきたのですがどなたか教えてください。現在は、いちいちシート毎で「Ctrl+F」で検索画面を出し、商品名を検索し、なければ別のシートで検索し、該当するものが見つかれば選択して、行をコピーして印刷シートに貼り付けています。とても時間がかかっています。 シート1から3の構成は、ジャンル別で分かれていますが、 A列:商品名、B列:メーカーコード、C列:自社コード、D列:売価、E列:原価、F列:登録日 です。バーコード印刷のマクロは出来てます。 複数のシートから検索し、コピーして、印刷シートに貼り付けるマクロです。 エクセルは2003で、OSはXPのSP3です。

  • 指定文字のみSheet1からSheet2へコピー

    ExcelSheet1に表ー1のように氏名の列に記号が入力されています。 B列の指定記号(A,C,F,H)のみSheet2にVBAコードにてコピーしたいのですが。 尚、A列氏名は元々入力されています。 因みに、Sheet2の先頭列がSheet1と同様ですがコピー位置がE1等、任意に設定したいのですが。 どなたか解る方よろしくお願いします。

  • エクセル 複数シートのデータを1シートにまとめるマクロ

    エクセルの複数シートにデータがあります。同じ条件の人のデータだけをひとつのシートにまとめたいのですが、マクロを教えていただけますでしょうか。それとも、マクロ以外に良い方法がありますか? エクセル初心者なので、あたりまえのことも知らないかもしれません。。。  【データ】 ●シート1からシート20まで、同じ配列でデータがあります。 ●1行目は見出しです。2行目から1人づつのデータです。(多くても65行までと思っています。) ●A列に到達度、B列に出欠をいれました。 ●C列からM列が氏名、課題、その他のデータです。 ●リストはシート21にあります。  【こんな作業でしょうか?】 ●シート1から20で A列が「C」または「D」ならば その行のA列からM列をコピーして シート21のA列からM列に形式を値にして張り付ける ●シート1から20で B列が「欠」ならば その行のA列からM列をコピーしてシート21のA列からM列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)

専門家に質問してみよう