Excelで、画像のようにA列にファイル名(ファイル名(仮):Aファイル)B列にシート名(シート名(仮):B)を記載した時に、同ファイルの別シートにAファイルのセルデータを値として貼り付けたいです。
ただし、Aファイルは100ファイルほどあり、各ファイルのシートBはすべて同じフォーマット(行数、列数、列タイトルは同じです)で貼り付け範囲はC4:AK50はすべてのシートで同じです。
Aファイルの値は、C4:AK50に、Bファイルの値はその次の行から(C51:AK97)に転記される感じです。以下、下行にCファイル、Dファイル~と続く動きです。
出来上がった転記先のシートのA列には各行にファイル名、B列の各行にシート名が入れば、各行の値がどのファイルのどのシート情報かわかるようになると助かります。
これらをマクロなどで、自動処理できるようにできませんでしょうか?
No.6ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Option Explicit
Public Sub DATA集約()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim wb As Workbook
Dim ws As Worksheet
Dim maxrow As Long
Dim row1 As Long
Dim row2 As Long
Dim bookName As String
Dim sheetName As String
Dim path As String
Dim wrng As String
Application.ScreenUpdating = False
Set sh1 = Worksheets("DATA集約対象先")
Set sh2 = Worksheets("DATA集約")
sh2.Rows("4:" & Rows.Count).ClearContents
maxrow = sh1.Cells(Rows.Count, 1).End(xlUp).row '1列目の最終行を求める
row2 = 4
For row1 = 2 To maxrow
bookName = sh1.Cells(row1, 1).Value
sheetName = sh1.Cells(row1, 2).Value
path = ThisWorkbook.path & "\" & bookName
Set wb = Workbooks.Open(path, ReadOnly:=True)
Set ws = wb.Worksheets(sheetName)
wrng = "C" & row2 & ":AK" & row2 + 46
sh2.Range(wrng).Value = ws.Range("B4:AJ50").Value
sh2.Cells(row2, "A").Resize(47, 1).Value = bookName
sh2.Cells(row2, "B").Resize(47, 1).Value = sheetName
row2 = row2 + 47
wb.Close
Next
Application.ScreenUpdating = False
End Sub
>このような具体的な聞き方で、かつ対価無しで回答を得ようとしていることがガイドライン違反であればおっしゃってください
公序良俗に違反していませんので特に問題ないと思います。投稿が不快ならその質問に答えないという回答者の選択肢は尊重すべきと思いますが・・・。
tatsumaru77さま
ありがとうございます、感謝です。外出中で実装はまだできていませんが、明日実装してみます。
VBAは全く書けない、わからない私で、丸投げして申し訳ないです。こういうことができるtatsumaru77さんは凄い!と思いました。しかも無報酬で、、。頭が下がります。私は65歳の爺さんですが、このような知識がある方を尊敬します。
ありがとうございます。実装後、また投稿します
No.7
- 回答日時:
ご自身の知識を高めるためにここを使っていただいているのであれば、具体的内容であってもいいと思うんです。
ただ、誰かに作ってもらって「どうやって動いているのか分からないけど、動作するコードを作ってくれたから、ありがたく使わせてもらおう」というのは、ここの趣旨とちょっと違うと思うんです。
知識を得るために使っていただいているなら、問題ないと思います。
ご指摘ありがとうございます。勉強になりました。いろいろな感じ方をするかたは当然いらっしゃいますね。
今回は助けてくれた方がいたので、本当に助かりました。その方への感謝もさることながら、いつもそのような方がいらっしゃるとは限らないということを認識し、甘え過ぎないようにもしなくてはいけないですね。kanta2006さん、ありがとうございました。
No.5
- 回答日時:
不明点です。
1.生成指定シートについて
ファイル名とシート名を指定するシートということですが、
①このシートのシート名は何でしょうか。
②ファイル名とシート名を指定するのは、1行目からですか。
それとも、1行目は見出しで、2行目からでしょうか。
それとも、提示された図のように4行目からでしょうか。
③ファイル名の指定のしかたですが、
フルパスで指定 例 C:\sample\Book1.xlsx
ファイル名のみ指定 例 Book1.xlsx
拡張子なしで指定 例 Book1
上記のどの方法でしょうか。
ファイル名のみ指定及び拡張子なしで指定の場合は、特定のフォルダ(例えばc:\sample等)内に
指定された全てのブックが格納されているという前提になります。
ばらばらのフォルダ内にブックが格納されているなら、フルパスで指定する必要があります。
又、拡張子なしで指定するなら、拡張子は.xlsx前提となります。(Boook.xlsmなどは指定できません)
2.生成先シートについて
①このシートのシート名はなんでしょうか。
②A列に設定するファイル名は、Book1.xlsxのように拡張子を含めますか、
それともBook1のように拡張子を含めませんか。
③ファイルAの内容をC4:AK50に転記するとのことですが、
転記元の範囲も、C4:AK50で良いのでしょうか。
C1:AK47
A1:AI47
A4:AI50
等が考えられます。
tatsumaru77さま 見ていただいてありがとうございます。kanta2006さんのご指摘のように、「丸投げ」的な私の質問で申し訳ないです。よろしいでしょうか?
tatsumaru77さまのご質問にお答えします。
*****
1.生成指定シートについて
ファイル名とシート名を指定するシートということですが、
①このシートのシート名は何でしょうか。
→[DATA集約対象先]としようと思います。
②ファイル名とシート名を指定するのは、1行目からですか。
それとも、1行目は見出しで、2行目からでしょうか。
→[2行目]としようと思います。
③ファイル名の指定のしかたですが、
◯ファイル名のみ指定 例 Book1.xlsx
→ファイル名+拡張子 です。としようと思います。
上記のどの方法でしょうか。
ファイル名のみ指定及び拡張子なしで指定の場合は、特定のフォルダ(例えばc:\sample等)内に
指定された全てのブックが格納されているという前提になります。
→はい、全てのブックを指定されたフォルダに集約します。フォルダ名は[集約FLD]とします。その同一フォルダ内にマクロをセットしたBookを置くイメージです。
2.生成先シートについて
①このシートのシート名はなんでしょうか。
→[DATA集約]としようと思います。
②A列に設定するファイル名は、Book1.xlsxのように拡張子を含めますか、
それともBook1のように拡張子を含めませんか。
→拡張子を含んで良いと思います。
③ファイルAの内容をC4:AK50に転記するとのことですが、
転記元の範囲も、C4:AK50で良いのでしょうか。
→転記元はB4:AJ50です。転記先はC4:AK50です。転記先のA列にファイル名、B列にシート名です。シート名は”2024-02” ”2024-03”などとなる予定です。4~47行のデータ転記が行われたあとにファイルBのデータが48行目から始まるイメージです。
このような具体的な聞き方で、かつ対価無しで回答を得ようとしていることがガイドライン違反であればおっしゃってください、、、。私は逆に「対価を払いますので作成ください」はkanta2006さんのおっしゃるように業務発注となるので「教えて!goo」には相応しくない、と思っていました、、、
No.4
- 回答日時:
例えば、自分でここまでやってみたけど、この部分をどう実現したらいいのか分からないので教えて下さい。
とかいうのは、具体的であっても全然OKです。ダメなのは、やりたい事だけを示して、丸ごと作ってもらうこと。
これは無償で業務委託していることになってしまうので、駄目です。
分からない事を教えてもらって理解するということと、丸ごと作ってもらって内容は分からないけど便利に使わせてもらってます、というのとは全く違います。
Q&Aサイトは知識を教え合うのが目的であって、誰かに作業をやってもらうのを目的にするべきではないんです。
ただ、この私の説教じみた回答も、本当はガイドライン違反なのですが。
元の質問に回答していませんので。
kanta2006さま 私は「教えてgoo」の使い方を正しく理解していないのですね。おっしゃるとおりかもしれません。
ただ、知識がある方に「対価は払えませんが、助けて頂けないですか?」は聞いてよいのかと思っていました。確かに、厚かましいですね、、。ご厚意に甘えていますね。
No.3
- 回答日時:
ここで誰かにマクロを作ってもらおうとされているのなら、それは作業依頼なのでガイドライン違反です。
ガイドラインを読んで下さい。
誰かにヒントを教わったり、やり方を教わったりして、最終的にマクロを自分で作るならOKです。
そもそも、誰かに作ってもらいたいなら、ChatGPTに聞けばコードを作ってくれますよ。
それなら誰からも違反だと言われる事はありません。
ChatGPTに依頼してはいかがですか?
ただし、ChatGPTに作ってもらうには、ChatGPTに質問を投げかける側の質問力が試されますけど。
ご指摘、アドバイスありがとうございます。申し訳ないです、知りませんでした。ここでこのような具体的な依頼はガイドライン違反なのですね?
親切で対価を要求しない回答者の方が答えていただいた場合もガイドライン違反となるのでしょうか?
だとすると今までの方にもご迷惑をおかけしたのかもしれません、、とても助かったので感謝していたのですが。
No.2
- 回答日時:
こんばんは
内容をイマイチ理解できませんけれど・・・
>これらをマクロなどで、自動処理できるようにできませんでしょうか?
処理のルールが決まっているのなら、マクロを作成すれば自動処理できるようにすることは可能です。
(多分違うだろうとは思いますが)「自動」の意味が、エクセルを開くことなく自動的に実行される(例えば、ある時刻になると)などである場合には、トリガーによってはエクセルのマクロだけでは無理な場合もあります。
そのような場合でも、タスクスケジューラ等を併用することで、可能にすることはできるでしょう。
(電源を落としたままでは、難しいですが)
わかりにくくてすみません。「自動」の意味は裏で動く(ある時刻になると発動する)ということではありません。シートにファイル名とシート名を入力し、マクロボタンを押すと別シートに書き込みされる、という意味です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) コードを直していただきたいです。 以下のコードはネットで拾ったものをほんの少しいじった物なのですが、 7 2024/01/10 22:50
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) Excel VBA マクロ あるフォルダー内の複数のファイルを統合したいです 1 2024/02/19 21:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
Excelでこういう年を切り替えられる簡易なカレンダーを作ったのですが、 年や月を変えると、色が付い
Excel(エクセル)
-
Excel 大なり小なりを表すとき、 例えば「10以上」なら、>=10 と表せますが、 この10の部
Excel(エクセル)
-
excelの不要な行の削除ができない!
Excel(エクセル)
-
-
4
エクセルで列をアルファベットではなく、数字の表示にするメリットって、なんでしょうか?
Excel(エクセル)
-
5
データの入力規則 Excelです。 例えば、 C1セルに、 A列のデータ(B列にあいうえお"と入っ"
Excel(エクセル)
-
6
Excelの関数で起きた現象の原因がわかりません。
Excel(エクセル)
-
7
エクセルのセル統合について
Excel(エクセル)
-
8
ExcelでA列をコピーしたいのですがコピー範囲内に空白セルがあるとそこで終わってしまいます。 全て
Excel(エクセル)
-
9
同一セルに入力規則のリストと参照する設定併用できるような設定はありますでしょうか!!
Excel(エクセル)
-
10
空白のないドロップダウンリストの作り方
Excel(エクセル)
-
11
エクセルの表の参照値から円を取って数字で扱えるようにしたい
Excel(エクセル)
-
12
Excelの関数に関する質問です
Excel(エクセル)
-
13
Excelの関数について質問です。
Excel(エクセル)
-
14
式の解読のお願いm(_._)m
Excel(エクセル)
-
15
Excelでエラーが出るのですが・・・
Excel(エクセル)
-
16
エクセル。計算結果の桁揃えをするにはどうする?
Excel(エクセル)
-
17
エクセルで2桁から5桁の数字があります。その数字のダブリを解消する方法を教えてください。
Excel(エクセル)
-
18
エクセルで比較 かつ 部分一致について
Excel(エクセル)
-
19
Excelで文字合成
Excel(エクセル)
-
20
エクセルのオートフィル?ドラッグして連続ででる値が壊れている。これはなに?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのセルの色を変えた行(す...
-
文字の色も参照 VLOOKUP
-
エクセルの保護で、列の表示や...
-
ExcelのVlookup関数の制限について
-
Excel の複数シートの列幅を同...
-
【条件付き書式】countifsで複...
-
エクセルVBAで、ある文字を含ん...
-
エクセルで、チェックボックス...
-
VBAで繰り返しコピーしながら下...
-
Excel VBA ピボットテーブルに...
-
Excel複数シートにあるデータを...
-
Excelでの並べ替えを全シートま...
-
エクセルのブック分割マクロを...
-
エクセル マクロ 標準モジュー...
-
SUMPRODUCTにて別シートのデー...
-
VBAで検索して、行をコピー&追...
-
EXCEL 関数を教えてください。...
-
エクセルの列の限界は255列以上...
-
エクセルで横並びの複数データ...
-
データチェックを行うエクセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の色も参照 VLOOKUP
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
Excel の複数シートの列幅を同...
-
Excel複数シートにあるデータを...
-
エクセルの列の限界は255列以上...
-
【条件付き書式】countifsで複...
-
エクセル マクロ 標準モジュー...
-
Excelでの並べ替えを全シートま...
-
SUMPRODUCTにて別シートのデー...
-
エクセルで、チェックボックス...
-
スプレッドシートでindexとIMPO...
-
VLOOKアップ関数の結果の...
-
Excel VBA ピボットテーブルに...
-
エクセルで横並びの複数データ...
-
Excelに自動で行の増減をしたい...
-
【VBA】ピボットテーブルを既存...
-
【VBA】複数のシートの指定した...
-
オートフィルタ使用時にCOUNTIF...
おすすめ情報
tatsumaru77さま
作成頂いたマクロ、完璧です!!実装、マクロ実行後、希望したものができました。素晴らしいですね。実は私はNPOで働いていて今回tatsumaru77さまがマクロを作成頂けたことで、多くの方に対し社会貢献を実施する為の事務処理の効率化が図れます。
tatsumaru77さまの貴重な時間を頂き、感謝感謝です。ありがとうございました。