
VBAでの処理についてご教授願います。
○ブックの種類
1.元ブック…名称例:サンプリング_20211201.csv(数字部分には日付が入ります)
2.集計用ブック
○元ブックの内容
A10~A8649に必要なデータが入っている
○求めたい処理結果
1.元ブック1のA10~A369の平均を集計用ブックsheet1のA1に計算する。
元ブック1のA370~A729の平均を集計用ブックsheet1のA2に計算する。
以下を繰り返し、360個毎の平均を計算する
2.元ブック2のA10~A369の平均を集計用ブックsheet2のA1に計算する。
元ブック2のA370~A729の平均を集計用ブックsheet2のA2に計算する。
以下を繰り返し、360個毎の平均を計算する
3.上記の処理を元ブック全てに行う。
最終的に縦は24個、横は元ブック数の数値が入った集計用ブックが完成する。
元ブックは全て同じフォルダに入っている。
元ブックの数は都度異なる。
拙い説明となっておりますので、不明点はご質問いただければと思います。
よろしくお願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
No3です
No3のうち3の部分が少々わかりにくいかと思い、ごく簡単なサンプルを作成してみました。
指定したフォルダから「サンプリング_数字8桁.csv」に合致するファイル名をActiveSheetに書き出す例です。
実際には、書き出す代わりに、そのファイルに対してなさりたい処理を行えばよいことはお分かりになると思います。
Sub sample()
Dim reg
Dim c, file
Const folderPath = "C:\Users\hogehoge\temp" ' ←指定フォルダ
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "^サンプリング_\d{8}\.csv$"
Set c = Range("A1")
file = Dir(folderPath & "\*.csv")
While file <> ""
If reg.test(file) Then
c.Value = file
Set c = c.Offset(1)
End If
file = Dir()
Wend
End Sub
No.4
- 回答日時:
No.2です。
#3様のアドバイスにはいつも丁寧かつ的確だなと感じて参考にさせて頂く事があります。
ところで今回の元データってやっぱ日付順になるのでしょうか?
名称はあくまで例となってますが、"_"以降が重要なのかな。
あと#3様の回答にもありますが、本来は集計Sheet1に列を変えて書き込むとかですかね?
Excel VBAでAVERAGE関数を使って平均値を求める
https://lilia-study.com/excel/excel-vba/workshee …
Offsetプロパティでセル範囲を取得したい?
https://www.relief.jp/docs/excel-vba-cells-area- …
同じセル範囲をずらしていくならまずは最初のセル範囲をセットし平均値を求める式に当てはめ、Offsetにより範囲を移動させるとか?
No.3
- 回答日時:
こんにちは
>最終的に縦は24個、横は元ブック数の数値が入った集計用ブックが完成する。
説明の1.2.を読む限りでは、縦1列のシートしか作成されないように読めますけれど?
まぁ、内容は質問者様がきちんとわかっていれば良いことですけれど・・
何を知りたいのかが記されていませんけれど、手順として、まず
1.「一つのブックの集計を転記するプロシージャ」を作成してみましょう。
これができれば、7割方はできたようなものと思います。
次に、
2.上記のブックや書き出し先を変数にして可変にしておきます。
一方で、
>元ブックは全て同じフォルダに入っている。
>元ブックの数は都度異なる。
とのことですので、
3.「フォルダ内の(対象となる)ブックを順に探す」プロシージャを作成します。
上記ができれば、3.と2.を組み合わせれば完成できると思います。
VBAに関する情報はネットに溢れていますので、うまく検索しさえすれば、たいての情報は得ることができます。
コツとしては「漠としたやりたいこと」ではなく、処理を分割して具体化し、「単純なキーワードにして」検索することでしょうか。
作る際のコツとしても、「一気に全部」を作成するのではなく、処理をいくつかの部分に分けて、それぞれを一旦作成して想定通りに処理できることを確認したうえで、組み合わせて全体を作成するようにすれば、「作っては見たもののうまく動かず、どこが悪いのかわからない」なんてこともなくなると思います。
調べてもわからないことなどがあれば、その点について具体的に質問をなされば、適切な回答を得やすいものと思います。
No.2
- 回答日時:
csvはExcelブックではなく一種のテキストファイル。
なのでA10とかのセル座標は存在しないかと。
取り敢えず10行目からが該当しそうに感じますが、9行目まではどうなっているのか?でしょうかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Excel(エクセル) エクセル ブック間のコピー 5 2022/04/24 08:11
- Visual Basic(VBA) Excelマクロ 該当する値の行番号取得などのやり方について 4 2022/07/07 09:46
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2022/03/24 16:07
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 【VBA】複数ブックから特定のシートを抽出して一つのブックに集約するマクロについて 3 2022/09/04 15:05
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
別ブックから入力規則でリスト...
-
エクセルを共有するとPCによっ...
-
エクセルで参照しているデータ...
-
【マクロ】アクティブセルの時...
-
Excelの新しい空白のブックを開...
-
Excel(2010)のフィルターが保...
-
フォルダ内の複数ファイルから...
-
Excel 一枚のシートにある全て...
-
ワードやエクセルで「時間が来...
-
別フォルダにある同じ名前のブ...
-
「ブックの共有」を有効にして...
-
Excelで指定範囲のデータ...
-
フォルダ内の複数ブック・シー...
-
Excelで複数ブックの同一セルに...
-
【マクロ】【VBA】同じフォルダ...
-
エクセル 複数のブックを一度...
-
Excelでブックの共有を掛けると...
-
指定ファィルの指定シートをシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】アクティブセルの時...
-
Excelの新しい空白のブックを開...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
Excelファイルをダブルクリック...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
Excelの警告について
-
Excelで複数ブックの同一セルに...
-
フォルダ内の複数ファイルから...
-
同じフォルダへのハイパーリン...
-
エクセルにおける,「ブック」...
-
別ブックから入力規則でリスト...
-
エクセルで別ブックをバックグ...
-
エクセルでウィンドウの枠固定...
-
エクセルファイルを開かずにpdf...
-
「ブックの共有」を有効にして...
おすすめ情報