質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

受付中

複数ブック、複数シートからの値コピー

m73
m73

総合スコア6

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

2回答

0リアクション

0クリップ

1250閲覧

投稿2018/05/11 07:16

編集2018/05/11 07:50

前提・実現したいこと

[実現したいこと]
VBAにて集計表を作成しております。
勉強をし始め、数日です。
複数ブックの複数シートから値のみコピーしたいと思っています。

[前提]
・集計元は1つのフォルダにまとまっている
・集計元は複数のブックにわかれている
またBookの名前もまちまちである。
Book1.xlsx、ABC.xlsx、111.xlsx・・・
・集計元の1つのブックには複数のシートが含まれている
シートの枚数、名前はブックによってまちまち
・各シートはブックが分かれていても全て共通のフォーマット

①集計元のブック(元データが記載されている)の各シートのA2のセルをコピー → 集計先のB列に貼り付け
②集計元のブック(元データが記載されている)のD2のセルをコピー → 集計先のC列に貼り付け
③集計元のブック、シート名をA列にはりつけ

ということをおこないたいです。
やりたいことと乖離してしまっているためご教示を頂きたいです。

発生している問題・エラーメッセージ

まず前提の①が行えるか試した所、以下を実行すると
1つ目のブックの各シートをコピーしましたが
2つ目のブックを開いたあと、1つ目の下データのブックの値に上書きされてしまいました。

また②の、集計元のブック(元データが記載されている)のD2のセルをコピー → 集計先のB列に貼り付けに関しても変数が複数になると理解がおいついておりません。

言い訳にするつもりではないのですが、
勉強が浅いため、作成したコードもお見苦しい点ばかりかと思います。
何卒お力お借りしたく思います。

該当のソースコード

VBA

Sub TEST() Dim myPath As String Dim myFile As String Dim i As Long myPath = ThisWorkbook.Path myFile = Dir(myPath & "\" & "*.xlsx") Do Until myFile = "" Workbooks.Open myPath & "\" & myFile Sheets("Sheet1").Select For i = 1 To Worksheets.Count Worksheets(i).Range("A2").Copy ThisWorkbook.Worksheets("Sheet1").Cells(i, 1).PasteSpecial _ xlPasteValuesAndNumberFormats Next i myFile = Dir() Loop End Sub

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

coco_bauer

2018/05/11 07:24

複数のシートを持つ複数のブックから、A2セルとD2セルの内容を収集するだけで良いのですか? 情報源となったブックの名前とワークシートの名前ぐらいは残さないと、後で困るのではないかと危惧します。
m73

2018/05/11 07:29

>coco_bauer様  仰られるとおりです、ご指摘切に感謝いたします。質問を一部編集させて頂きます。
m.ts10806

2018/05/11 07:41

プログラムコード(およびエラーメッセージ)は```で囲ってください。(わからなければ質問編集画面でコード部分を選択し<code>ボタンを押してください)正しく反映されているかどうかは質問編集画面のプレビューを見ながら編集していってください。
m73

2018/05/11 07:49

>mts10806様 失礼いたしました。ご指摘感謝いたします。早々に修正いたします。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。