
ExcelVBAで,スタッフ20人分の業務管理記録シートを作って業務記録をとっています。業務管理記録シートは,1日単位で集計し「2021-8-10管理記録」という元ファイル名に日付がついたファイル名にして新ファイルとしてフォルダに格納しています。(ここまではVBAで処理しています。)
このファイルには20人分シートがあり,シート名はスタッフの氏名にしています。
このファイルを5日分ごとに集計しているのですが,5日分のファイル(5個のファイル,月平均20個のファイル)から個人名ごとにマクロを使って,Aさんの業務記録というなスタッフごとのファイルとして取り出せないものかと考えております。
マクロコードをご教示いただけませんでしょうか。
出来ればコードの説明付きでお願いいたします。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
直接の回答ではありません。
スルーしていただいても構いません。
業務記録が1日にどの程度作成されるわかりませんが、1日に1ファイル作成されるのを、週または月または年に変更することをおすすめします。どの程度の期間にするかは、記録される量(ファイルサイズ)で決めることになります。
既存のデータ保存のVBAを上記のように修正すればよいと思います。
1ファイル1シートに全てのデータを入れるようにしておくことで、集計や抽出する場合はフィルタ機能を使用すれば容易にできます。(日付や氏名などは項目として入力しておく)
ご回答ありがとうございました。
アドバイスのとおり,個人の記録を取り出してファイル化するって,フィルター掛ければできますね。現在も,毎日20名分1シートにまとめられたファイルからマクロのフィルタ機能で個人名ごとにシートを作って集計しているのですから,集計期間を一週間として集計作業日に,1週間分の記録ファイルから,個人のデータを取り出して集計する方が作業時間の短縮につながりますね。
毎日,管理記録ファイルが上がってきたことから一日単位での集計に思考が向いていしまってました。現在は,同一ファイル内に個人別シート作成と記録の集計,新ファイルとして保存としていたのを,集計期間を5日として,元データから個人ごとの記録を取り出し,個人ごとにファイル化するマクロを書き換えてみることにします。
因みに,下記コードを書いたのですが,シート取り出しがうまく実行できませんでした。
Dim WorkSheet As String
WorkSheet = Dir(ThisWorkbook.Path & "\*.xlsm", vbNormal)
Do While WorkSheet <> ""
If WorkSheet <> "抽出.xlsm" Then
Workbooks.Open (ThisWorkbook.Path & "\" & TSheet)
ActiveWorkbook.Sheets("[個人名]").Copy after:= _
Workbooks("抽出.xlsm").Sheets(1)
Workbooks(WorkSheet).Close
End If
WorkSheet = Dir()
Loop
No.3
- 回答日時:
No.2です。
5行目末尾のTSheetをWorkSheetにすればよいのではないでしょうか?
もしくは逆の可能性もあります。(WorkSheetをTSheetにする)
googoo900様、何度も回答ありがとうございます。
最初のアドバイスを頂いて、コードを書き換えてみました。
元データから個人名でフィルターを掛け、個人名シートを作成する時に
データの集計もするようにし、同時に個人名のファイル作成までをコード化しました。
アドバイスが本当にありがとうございました。
おかげで、毎日の集計を止めて集計期間を半月と月末の2回に作業短縮できました。
この度は、本当にお世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトで作成日時...
-
アクセス 壊れた? 「ファイ...
-
リンクの張り付けかたを教えて...
-
.NETアプリを作ったときの .man...
-
Latexで図番号だけを「図1.1」...
-
VBSが起動しない
-
binファイルを解凍したいの...
-
ラッパーって何なんでしょう・...
-
#include <Windows.h>というヘ...
-
CSSファイルの日本語コメントが...
-
私のコンピューター上のファイ...
-
datファイルとtxtファイルって...
-
既に開いているエクセルを閉じ...
-
warファイルをEclipseでプロジ...
-
「ブルーファイル」と「グリー...
-
CSSを1ページに1枚作るのって変...
-
jarファイル
-
VBで「.tif」または「.pdf」...
-
exeファイルを開こうとすると「...
-
【C++】静的リンクと動的リンク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
コマンドプロンプトで作成日時...
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
リンクの張り付けかたを教えて...
-
.NETアプリを作ったときの .man...
-
jarファイル
-
コマンドプロンプトで、指定し...
-
「営業秘密の漏洩」について
-
自分で作成した重要ファイルを...
-
warファイルをEclipseでプロジ...
-
公文書のxmlファイルの開き方が...
-
ストレージにある全てのファイ...
-
C言語---ファイルに出力したデ...
-
HTMLからのBATファイル実行
-
ファイルが開かれているかどう...
-
監視ツールを入れさせられまし...
-
「ブルーファイル」と「グリー...
-
バッチ処理で追記コピーしたい
おすすめ情報