• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:1シート内にまとめられているデータを分割してコピーし、それを別の複数の)

シート内データを分割し別のシートへコピー・ペーストする方法

goo793wwの回答

  • goo793ww
  • ベストアンサー率80% (8/10)
回答No.3

掲題の件、興味がわき実践向きに試作してみました。 お役に立てば幸いです。 <説明> 1.教科シートのレイアウト 1行目は仕組みとして割付ていません…自由に利用して下さい。  A列 :生徒ID(数値入力可、但し文字列にマクロで強制します)  B列 :生徒名  C2~Z2 :試験日(例えば、1学期・2学期・3学期・05/01・06/01・・・) C3右側下側 :データ入力欄(成績データ) 2.教科シートのネーミング  自由(例えば、国語・数学・英語・・・が適当です)  特記:この名前は、VBAマクロの「配列:kyoukaSu」に記載されている必要があります。 従い、VBA配列の「教科名」は実状に合わせ加筆修正して下さい。 尚、この配列順で生徒別シートへ成績が転記されます。 3.生徒シート  無ければ生徒IDをシート名として自動生成します。  即ち生徒別シートは事前に用意する必要は有りません。 ※Excel2000,2003,2007,動作確認済みです。 ▼下記をコピー張付けして試行してみて下さい。  特記:回答内容は2000文字以内のようです…回答内容が分割されますが全て繋いで下さい。 '--------------------------------------------------------------------- Option Explicit Option Base 1 Sub データ振分() Dim myDic As Object Dim myKey As Variant Dim myVal As Variant Dim x As Variant Dim i As Long Dim xxRow As Long Dim r, c As Long Dim mySh As Worksheet Dim myFlg As Boolean Dim lastRow As Long Dim lastCol As Long Dim myL As Integer Dim myCnt As Long Dim BaSheet As String Dim kyouka As Variant Dim kyoukaSu As Long Dim kyoukaNo As Long Dim rtn As Integer '▼(1)教科名を配列に格納 kyouka = Array("試験日", "国語", "数学", "英語", "□□", "□□") '…★定数(教科を宣言する) kyoukaSu = UBound(kyouka) Application.ScreenUpdating = False '…画面更新停止 BaSheet = ActiveSheet.Name '…教科元シート名get '▼(2)アクティブSheet名が教科名と同じかを評価する

aw-dlay
質問者

お礼

その節はお世話になりました。 私のために、こんなにもよくして頂いて、誠に恐縮です。 次回、また質問することがありましたら、その際にも色々と教えてください。

関連するQ&A

  • エクセルで複数のシートからデータを抽出する方法

     複数のシートから特定の人のデーターのみを1つのシートに集め,A君~Z君まで順番にシートを作成する方法を教えてください。  例えば…, シート1に番号,生徒名,中間テスト国語,数学,… シート2に番号,生徒名,期末テスト国語,数学,… と一覧になったものがあり,これを個人カードに直したいと思います。 シート3に,A君の国語中間・期末,数学中間・期末,… シート4に,B君の国語中間・期末,数学中間・期末… シート5に,C君の国語中間・期末,数学中間・期末… というものを作りたいのです。 しかし,シートをコピーしてもA君のデータのままで,参照先が自動的に更新されてB君のデータにならないので,困っています。 どうすれば,シート4にB君のデータ,シート5にC君のデータ,…を反映させることができるのかぜひ教えてください。よろしくお願いいたします。

  • エクセルの1シートの内容を複数のシートに分割したい。

    前任者から引き継いだエクセルのファイルを見やすくしたいと思っています。 1ページにつき1つの表が作られているのですが、一枚のシートのページ数が膨大で、とても見にくいのです。ページ毎に(一つの表毎に)違うシートにしたいのですが、地道にコピー&ペーストをしなければならないでしょうか。 一発でバチッとページ毎にシートにできる方法はありますか? windowsXP, Excel 2002を使用しています。

  • エクセルVBA複数ファイルのデータを1つのシートに

    (1)サーバー上にある圧縮ファイルをダウンロード (URLはエクセルの一覧表をクリック)※図A (2)ダウンロードした圧縮ファイル(ZIP形式)を解凍する (3)エクセルファイルを開いて範囲を指定してコピー (コピーする範囲はB2:C101の100行2列のデータ)※図B (4)コピーしたデータを別ファイルのエクセルシートにペースト (シートは1枚、下に下に続けてペースト) 表にあるURL一覧の最後まで(1)~(4)を繰り返す (パソコン環境) Windows10 Google Chrome Excel2010

  • Excelでデータを取り出したいとき

    初めて質問させてもらいます。     A君   B君 国語  85   社会      87  数学  90  95 理科      83 英語  97 このような感じで、点数80点を超えた場合のみ点数を入力していくとした場合に、別のシートにA君・B君が取った点数を、教科などを気にせずに80点以上の点数を表にまとめるという形で抽出することは可能でしょうか? また、これと同じような表が複数個ある時に、それらすべてをまとめて表にする、ということもできるのでしょうか?? VLOOKUPなどでやってみたのですがどうしても空欄ができてしまい、表がどうしても見にくくなってしまいます。どなたがご助力お願いします。

  • エクセルで複数シート間での重複データを避けるための方法

    エクセルで複数シート間での重複データを避けるための方法 こんにちは いつもお世話になっています。 エクセル2003を使用しています。  Sheet1は表引き先です。A1に検索値(名前)を入れると、他のシート(教科別)からコード(数字)を引いてきます。具体的には、セルA2以下に教科名、セルB2以下にコードを引いてきます。 例えば 教科 コード 国語 1 算数 2 英語 3 こんな感じです。 Sheet2は国語、Sheet3は算数、Sheet4は英語で、それぞれA列に名前、B列にコードを入力します。 例えば、 新井 1 井上 2 上野 3 こんな感じです。 ここで質問です。Sheet1でのコードの表引きで各教科のコードが重複しないようにしたいのです。Sheet1での確認ではなく、実際に各教科ごとのシート(Sheet2-4)のコード欄に他の教科のコードが重複した時に、重複を知らせるようなプログラムを作りたいのです。どの教科から入力するかは不定ですが、必ず入力されます。 (ここでの「重複」とは、あくまでもSheet1の「名前」で表引きしたときの各教科のコードの重複のことです。つまり、例えばSheet2で「新井」と「井上」のコードが重複しても構いません。) わかりにくい表現でしたらお詫びします。情報の不足がありましたら教えてください。よろしくお願いします。

  • 【Excel】複数あるシート上の住所録を重複なく別のシートへまとめる方法を調べています

    はじめまして、こんにちは。 仕事でエクセルを使って困ってしまいました。 現在、社内の各部署が抱えている顧客住所録を、エクセルでシートごとにまとめているのですが(住所の入力フォーマットは共通です)、 これらをさらに別のシートへ重複なくまとめた「一覧表」を作成したいと思っています。 普段はコピー&ペーストでしのげるのですが、各部署の住所録は各人が随時アップデートされるため、その都度コピペをしていると手間となってしまいます。 そこで部署の住所録シートに入力があれば、自動的に「一覧表」シートへの入力も済まされている状態にしたいと考えているのですが、現在まで試行錯誤している次第です。。 そこで下記の要件を満たすにはどのようにすればよいかご指南をお願いいたします。  ・各シートにある住所録を、さらに新しい別のシート「一覧表」へまとめたい  ・「一覧表」へまとめられた住所録では、重複を省きたい。  ・各シートへ新規に入力した住所は、自動的に「一覧表」へも入力されるようにしたい。

  • EXCELの検索結果を別シートに貼り付けたい

    学校で事務を行っています。 成績の管理をエクセルで行っているのですが、特定の生徒について成績データを 取り出したく、質問をお願いします。m(_ _)m 作成した成績データSheetのうち、番号を指定した生徒について、成績取込Sheetに 教科コードが一致する教科の点数・生徒番号・生徒氏名をVBAを使用して貼り付け たいのですが、どのようすればよいでしょうか? よろしくお願いいたします。

  • マクロを使って、抽出したデータを別のファイルにコピーしたい

    VBA初心者です。 自動記録で、フィルターオプション設定を使い抽出したデータを、別ファイルにまとめようとしています。 自動記録ですので、実行はできるのですが、このままだとデータの更新があった時、 範囲の指定をやり直すことになりますので、少しシンプルで応用の効くコードにしたいと思っています。 集約するシート:テスト用 sheet1(集約) sheet2(条件) 元のデータ:金額一覧表(01~03) 金額一覧表(04~06) 金額一覧表(07~10) sheet1=ファイル名 <各データは2万~3万件> Sub 抽出_1() Windows("金額一覧表(01~03).xls").Activate Range("A1:R16824").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Workbooks("テスト用.xls").Sheets("条件").Range("A1:F27"), Unique:=False End Sub ------------------------------------------------ Sub データを転記_1() Windows("金額一覧表(01~03).xls").Activate Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Windows("テスト用.xls").Activate Sheets("集約").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False End Sub ---------------------------------------------------  又、金額一覧表(01~03)のデータを貼り付けた後、 金額一覧表(04~06)も同じようにデータ抽出コピーしようとしたのですが、 Sub データを転記_() の6行目に下記のようなコードを入れたところ、 7行目がデバックしてしまいました。 (実行時エラ-:1004   コピー領域と貼り付け領域の形がちがうため情報を貼り付けることができません) とエラーが出てしまいました。 6行目  Set sakiRng = Range("A65536").End(xlUp).Offset(1) 7行目  ActiveSheet.Paste  ←ここがデバック 何か指定し忘れているものがあるのでしょうか? お知恵拝借できれば幸いです。

  • エクセルで別シートにデータ抽出したい

    一覧表として作成したシートのデータのうち、ある条件のものだけ別シートにデータ抽出するにはどうしたら良いですか? 例えば、 NO. 担当 金額 1  佐藤 200 2  佐藤 100 3  鈴木 200 4  佐藤 400 とある「一覧表」シートのデータから 担当:佐藤のデータだけ抜き出した表を別シート(「個人別」シート)に作成したいのです。 できれば、「一覧表」に新データを追加する度に、「個人別」シートにもデータが自動反映するようなものが望ましいのですが。 そんなことは可能でしょうか? アクセスを使えば簡単にできるかとは思いますが、アクセスがないので、エクセルで代用できればと。 宜しくお願いいたします。

  • エクセルの複数ワークシートに、元シートのセルを参照させる方法

    用語の使い方が間違っているかもしれませんが・・・。こんなことを考えています。 「元シート」に成績一覧表をつくりました。そして、続く複数シートに、個票を人数分(40人分)作成してあります。     算数 国語 ひろし 50 60 はなこ 70 80 しんじ 40 20 ひろしの個票シート(算数の点数を表示したい枠)に=元シート!B2と入力し、次に、はなこのシートを開いて=元シート!B3と入力しました。この作業を40回も繰り返すのではなく、コピーのような機能で簡単に全員分の個票シートに一覧表を反映できる方法はないものでしょうか?教えてください。