
何をどうすればよいのか解らず。。お力を貸していただきたいです。
マスターのリストがあり、全部で36000行くらいあります。
カラムはA列~I列まであり、A~F列まではすでにデータが入っています。
各項目は
A列 B列 C列 D列 E列 F列 G列 H列 I列
フラグ1 フラグ2 フラグ3 No 商品 担当 結果 個数 注意事項
F列の担当者は全部で10名程度います。
担当者10名に36000行全てのデータが入ったリストを配布し、
自分の担当分の行を確認し内容に応じてG~I列を入力していきます。
(内容によっては何も入力しない場合もあります)
最終的に担当者ごとにブックが出来上がるのですが
配布前のリストの同じNoの行にG列~I列を上書きしてそれぞれの担当分の結果をマージして保存したいです。
VBAを作成するときに常に同じような内容を検索し、参考にさせていただき編集していたのですが
今回同じような内容のものが見当たらず、どのように記載すればよいのか解らず困ってしまいました。
添付は配布元のリストです。
どなたかお力添えいただけると嬉しいです。よろしくお願いいたします。

No.4ベストアンサー
- 回答日時:
なるほどですね。
謝る必要はありません。
少なくとも私に対しては、(承知で回答しています)
設計や要件がしっかり出来ていてVBAの書き方が分らない。と、ご質問される方がいらっしゃいますが、よくここは、作成依頼する所ではありませんと言われているのを見ます。
私も同感です。解っていれば、検索や自身である程度出来ると思うからです。
仕様が纏らずどうすれば良いか、~のようなことは出来るのかと言うのは、全体のロジックが纏っていないので当然で、うまく説明できないと思っています。本題から離れてしまいました。。すみません。
担当者は、電話対応などで担当者名(又は要件)でフィルタを掛け対応するのですね。
>G列に値が入っている場合はそのセルの行全体をコピー元ファイルの同じ
NOのところに貼付け・・
これがシンプルで良さそうです。
ただ、36000行が引っ掛かります。
担当者変更データを配列に入れるのが良いのか、作業用シートを1枚作っておき担当者変更データ行範囲を一旦貼り付け、処理を進めるのが良いのか、、ですね。もちろん他にも良い方法があるかも知れません。
その他もまれに変更する場合があるとの事なので行範囲コピペですかね。
書式を含まないなら、代入式でも良いかもですが。
後から、フォルダ内すべてを対象に変更できるので、
まず、1つのファイルに対して処理をするのはどうでしょう。
参考になるか分かりませんが、実行コードをサンプルします。
条件は、マクロ実行ブックに作業用シートを追加してください。
処理は、開くファイルをダイアログで選びます。
そのシートにG列に値がある範囲をフィルタで
可視セルをコピーして、作業用シートに貼り付けます。
Sub Sample()
Dim TgtFilePath As String
Dim TgtBk As Workbook
Dim MyBk As Workbook
Dim wokSh As Worksheet
Set MyBk = ActiveWorkbook
Set wokSh = MyBk.Sheets("作業用")
wokSh.Activate
TgtFilePath = Application.GetOpenFilename("Excelファイル(*.xlsx),*xlsx")
If TgtFilePath = "False" Then Exit Sub
Application.ScreenUpdating = False
wokSh.Cells.ClearContents
With Workbooks.Open(TgtFilePath)
With ActiveSheet
If .AutoFilterMode Then .AutoFilterMode = False
.Range("A1").AutoFilter Field:=7, Criteria1:="<>"
.Range("A1").CurrentRegion.Copy wokSh.Range("A1")
.AutoFilterMode = False
End With
.Close SaveChanges:=False
End With
Application.ScreenUpdating = True
'マスタファイルでの転記処理
End Sub
ありがとうございます。お礼がとても遅くなってしまいました。
丁寧に記載していただいたので、これを元に自分なりに色々工夫してみまし。
記載していただいた内容を自分で解読するのにこんなに時間がかかってしまうとは・・・・
とっても助かりました!!
ここは、ほんとに皆様親切でいつもいつも助けられています。
勉強不足の私にもとても優しく丁寧に教えてくださって本当にありがとうございました。
No.6
- 回答日時:
>F列担当者部分は最初空欄で後から記入したりする場合があるため固定では無い想定です。
ということですが、
No1(2行目)は、田中さんの割り当てですが、
田中さんのファイルの処理を行うとき(マクロを実行したとき)、(各担当者からファイルが送られてきて、マスターにまとめるマクロを実行したとき)
1)田中さんのファイルの2行目のF列は空白なのですか、それとも、田中と記入記入されているのでしょうか。
2)同様にマスターの2行目のF列は空白なのですか、それとも、田中と記入記入されているのでしょうか。
No.5
- 回答日時:
例えば、こんなやり方はいかがでしょうか?
担当Aさんのシートの全セルを選択し、コピーして、マスターシートにペーストします。ペーストする際、貼り付けのオプションで「空白を無視する」をチェックします。
これを担当Bさん以降、順次、同じ要領でペーストしていけば、ご希望のマージ結果になると思います。
マクロ化しなくてもマニュアル作業で十分、対応できる範囲だと思います。
No.3
- 回答日時:
補足ありがとうございます。
#1の手順では問題が出てしまいますね。コピペの範囲も変わってしまうので、一意のキーワードがあれば、それを関数で探し代入とかになるのかなぁ? D列&E列F列みたいな、、、36000行、10ファイル、、スタックの可能性も出て来るかも。。
まだ、設計段階なのでしょうか、管理番号のような列を加えた方が良いかもしれませんね。(名前と管理番号、空白でない等で処理していく場合)
処理的にマスターを名前でソートするなどすれば、範囲が特定出来て処理速度が上がると思います。
担当者に渡すリスト表は、36000行(他の担当が)あるリストを渡すとは考えにくいのでは、また、担当者リストのフォーマットや繰り返し未入力リスト(未入力部分のみ)を担当者に渡し、マスターに追加するような追加処理があるのか、など決めていく必要がありそうですね。。
各担当に渡す表を出力するVBAを先に作った方が良さそう。。
よく考えず、ざっくり#1を回答してしまいましたが、まだ要件定義が必要な感じがします。後から変更や追加となるとVBAの改修も大変になるかなと思います。
早々のご回答ありがとうございます。
>まだ要件定義が必要な感じがします。
おっしゃる通りです。
36000行全てを配布したいのは、業者から電話がかかってきた際に10名誰が電話に出ても入力対応ができるように他の担当者分のリストを全て配っておきたいという意図があります。
また、共有ファイルサーバが無いためメールで配布、メールで回収ということで皆が一斉に入力できるような環境が有りません。36000配っておくのが無難だろうという判断に至りました。
D列のNoを管理番号として割り振ってみました!
G列に値が入っている場合はそのセルの行全体をコピー
元ファイルの同じNOのところに貼付け
というのが理想でしたが、それで良いのか
また、何から検索すればよいのか・・・・と
親身に相談に乗っていただき、回答まで頂いているのに私の語彙力と説明力がなさすぎるため申し訳有りません。
No.1
- 回答日時:
こんばんは、
方法は色々あると思いますが、ロジックでいくつか解らない点があります
10名程度のファイルを一度に処理するのでしょうか?1ファイルずつ行うのでしょうか。それで取得方法が変わります。また、同じフォルダに集める場合は同じファイル名が使えません。。少し脱線しました。
本題
渡したマスターのリストの表組は、変わらないと言う事でしょうか、
差分で検証する事は出来ますが、、ここは、重要。
絶対に変わらないのであれば、だれが入力した物でも変わらないので、元マスター表のF列担当者に担当者名でフィルタを掛け、担当ファイルの同様箇所に担当者名でフィルタを掛け、可視セルに対してコピペ、10名(ファイル)程度繰り返す。こんな感じで出来そうですが、、
フィルタ、可視セルコピーなどで探せばすぐに参考コードが見つかると思います。
表組が崩れるとなると一意のワードを見つけるか作る必要があり、36000行なら、少々大変ですね。
確かにフィルタでできそうですね!!とても参考になりました!
ただ、元データ側で36000件F列に全て担当者名が入っているわけではなく、後から入力される場合があります。まれに変更も想定しております。
Noをキーにしたかったのですが、、、検索ワードも思いつかず。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
【VBA】特定の文字が入っている行の一部を抽出して別シートコピーするには
Visual Basic(VBA)
-
-
4
エクセルVBAで、ある指定した文字を含む行だけを選択したいのですが、、 例えば、1〜20行目までに"12181697"
Excel(エクセル)
-
5
VBA 何かしら文字が入っていたら
Visual Basic(VBA)
-
6
VBAで条件が一致する行をコピーしその1つ下へ挿入
Excel(エクセル)
-
7
特定の文字を条件に行挿入とそこからセルデータを追加するVBAについて
Visual Basic(VBA)
-
8
vba 隣のセルに値がある行だけ関数をコピー&ペーストしたい A1 100001 A2 100002
Visual Basic(VBA)
-
9
ある条件を満たすセルに対応する行のセル内容をコピーして・・
Visual Basic(VBA)
-
10
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
13
エクセルVBAで、ある文字を含んでいたら別シートに抽出したい
Excel(エクセル)
-
14
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
15
VBAを使って検索したセルをコピーして別の場所に貼り付ける。
Visual Basic(VBA)
-
16
VBA 条件が一致した場合のみコピーする
その他(ビジネス・キャリア)
-
17
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
18
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
19
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
20
特定の文字列があったらその行をまるごと別シートに反映させたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルで最初のスペースまで...
-
Excelで半角の文字を含むセルを...
-
EXCELで 一桁の数値を二桁に
-
Excel 文字列を結合するときに...
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
VBAでセル入力の数式に変数を用...
-
オートフィルターをかけ、#N/A...
-
Excel、市から登録している住所...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 同じ数字を他の列に自...
-
エクセル 同じ値を探して隣の...
-
エクセルのセル内の文字の一部...
-
文字列に数字を含むセルを調べたい
-
エクセルの表示画面(シート)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
Excelで半角の文字を含むセルを...
-
EXCELで 一桁の数値を二桁に
-
エクセル(勝手に太字になる)
-
エクセル 文字数 多い順 並...
-
エクセルで最初のスペースまで...
-
オートフィルターをかけ、#N/A...
-
エクセル 同じ数字を他の列に自...
-
エクセル 同じ値を探して隣の...
-
「B列が日曜の場合」C列に/...
-
エクセルで文字が混じった数字...
-
Excel、市から登録している住所...
-
エクセルの項目軸を左寄せにしたい
-
Excel 文字列を結合するときに...
-
エクセルの表から正の数、負の...
-
【VBA】特定列に文字が入ってい...
-
エクセルで、列の空欄に隣の列...
-
オートフィルターの絞込みをし...
おすすめ情報
ご確認いただきありがとうございます。
10名のファイルを1つのフォルダに集めて一度に処理する予定です。
ファイル名は名前_mmddにする予定なので問題ないかと思います。
本題部分ですが
表組みの変更ななく固定ですが
F列担当者部分は最初空欄で後から記入したりする場合があるため固定では無い想定です。
肝心な情報が抜けており申し訳有りません。