[[20200416224751]] 『一覧から別々のファイルへ抽出をしたいです』(あべ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『一覧から別々のファイルへ抽出をしたいです』(あべ)

数百人の名簿一覧から特定の列のデータ(aかbかc)をそれぞれのエクセルに反映をしたいです。

 それぞれのエクセルは、数百人分あります。
 名簿一覧に記載された成績(aかbかc)を個人のエクセルにも入力する作業です。
 何かいい方法はありますでしょうか。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


・その人のファイルを開き、
・名簿一覧にある情報を適切なシートの既定のセルに書き込み
・ファイルを保存し
・ファイルを閉じる
という作業を、全員に対して繰り返し実施すればよいと思います。
具体的な情報が書かれていないので、ここまでしか言えません。
残りはそちらで検討してください。

(γ) 2020/04/17(金) 06:33


 (1)オートフィルタを設定します
 (2)特定の列の(a)を抽出します
 (3)(a)に対応したブックに貼付します

 (4)b,cも同様

でいいんじゃないですか?

(もこな2 ) 2020/04/17(金) 07:23


お返事ありがとうございます。
初心者ですみません、補足させてください

「成績一覧」というエクセルのS列に成績(aかbかc)が載っています
D列には個人名が載っており、900名(900行)分あります
 
このS列の成績を、900名分の別々のエクセルの「ap45」のセルに反映したいです
別々のエクセルは、D列と同じ値(個人名)がそれぞれのエクセル名です

これまでは「成績一覧」のエクセルを開いて、S列の成績を見て
900個のエクセルひとつひとつに、該当の成績を手入力しておりました。
大変な手間なので「成績一覧」S列に成績を入力すると、
自動で900個のエクセルに反映する仕組みを作りたいと思った次第です

ご教授頂けますと幸いです
(あべ) 2020/04/17(金) 10:56


マクロのラフなサンプルです。
「エクセル」はブックのことと解釈しています。
すべてのブックが同一フォルダにあるという前提です。
「成績一覧」の標準モジュールに書くという想定をしています。
ScreeanupdateやDisplayalertsなどの機能をつけると役立つと思うので検索してみてください。
ファイルが無かったりすでに開いていたり
シートがいくつもあったりする場合とかの
"かばい手"はwebでいろいろ調べてください。

上記がよくわからないという場合は手を出さないほうが無難です。
コメントアウトした行のシングルクォーテーションをなくすと
ブックを上書き保存してしまうので取扱注意です。

 Sub Sample()
  Dim wPath As String
  Dim ws As Worksheet
  Dim wb As Workbook
  Dim i As Long
  Set ws = ActiveSheet
  wPath = ThisWorkbook.Path & "\"
  'For i = 1 To ws.Cells(Rows.Count, "S").End(xlUp).Row
   Set wb = Workbooks.Open(wPath & ws.Cells(i, "D").Value & ".xlsx")
   wb.Worksheets(1).Range("AP45").Value = ws.Cells(i, "S").Value
   'wb.Close True
  'Next i
 End Sub

(ひでお) 2020/04/17(金) 11:42


ごめんなさい。
>それぞれのエクセルは、数百人分あります。
↑を見落としてました。a、b、cというブックに振り分けたいのではなく、たくさんのブックにS列のデータを転記したいんですね。
やっと理解しました。したがって「(もこな2 ) 2020/04/17(金) 07:23」はボツでお願いします。

さて、やりたいことは、こんな感じですよね?

 成績一覧.xlsm の 1番目のシート
   ___D___...__S_____
  1  名前     成績
  2  山田      a  ←「山田.xlsx」の「Sheet1」のAP45セルに転記
  3  田口      a  ←「田口.xlsx」の「Sheet1」のAP45セルに転記
  4  千葉      c  ←「千葉.xlsx」の「Sheet1」のAP45セルに転記
  5  羽柴      b  ←「羽柴.xlsx」の「Sheet1」のAP45セルに転記
  6  羽生      b  ←「羽生.xlsx」の「Sheet1」のAP45セルに転記
  7  上田      a  ←「上田.xlsx」の「Sheet1」のAP45セルに転記

この場合、すでにコメントがついていますが、私もマクロでの処理をお勧めします。
上記のようなレイアウトであれば、2行目から順番に

 (1) n行目のD列をみて、その人のブックを開く
 (2) 開いたブックのSheet1シートのAP45セルに n行目のS列を見て転記
 (3) 開いたブックを上書きして保存
 (4) 開いたブックを閉じる

という手順で繰り返し処理をするようにしてやればよいです。
ループ(繰り返し)処理が絡んでくるので、マクロの記録が使えず取っつきづらいかもしれませが、出来ないことではないとおもいますので、マクロでの対応を検討してみては如何でしょうか?

(もこな2) 2020/04/17(金) 12:58


もこな2様 ひでお様
おっしゃる通りでございます。
大変参考になりました。
ご丁寧にありがとうございます。
初心者ゆえ少し不安ですが、まずは挑戦してみます!

(あべ) 2020/04/17(金) 14:12


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.