[[20091210125623]] 『マクロ 外部ファイルの集計方法』(まるぴ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロ 外部ファイルの集計方法』(まるぴ)

 いつも参考にさせて頂いています。
 早速ですが、質問させていただきます。

 集計.xlsというファイルと同じ階層に約30人の営業マンの名前のフォルダがあります。
 各フォルダの中には、物品名.xls(例:りんんご.xls、みかん.xls・・・)という特定の様式のファイル(最多の担当で約100ファイル)が入れられています。

 物品名.xlsという特定の様式は、以下のようなものです。
 ・TODAY()が使われており、開いただけでも閉じる時に保存するか聞いてくる。
 ・複数のシートがあるが、必ずシート名「合計」が含まれていて、そのシートのA1〜A10にそのファイルのデータ(数値)が記載されている。
 ・フォルダの中のファイルは、複数の人間が必要に応じて随時追加・更新・削除を行っている。
 ・フォルダの中には、特定の様式以外のファイルは入れない。

 で、最初に戻って集計.xlsのファイルは経理の人間が管理するファイルで、
 営業マンの名前がセルC1〜AG1に記載(フォルダ名と全く同じ)、
 C2〜AG2に最終集計日、C3〜AG12にその担当営業の物品名.xlsの
 合計!A1〜A10の値の合計(フォルダ内の全ファイルの特定セルの合計)
 を記載したいと考えています。

 マクロを使用して対応したいのですが、検索では、ファイルのリンクを貼るか、複数の ファイルを1つに纏める方が良い、との結果しか見つけられませんでした。
 残念ながらどちらも今回の状況では困難です。
 なんとかお知恵を貸していただけないでしょうか。

 [エクセルのバージョン]
 Excel2003
 [OSのバージョン]
 WindowsXP
 - - - -
 ちょうど今日、こういうDMが届いていました。
 http://www.keyence.co.jp/req/u/mgsxfc8/show.jsp?motive=DM
 
宣伝の意思はありません。
この手の相談が多いので・・・製品化しちゃう人も出る、ということですね。
 
(1)金銭的コストをかける                 コスト  責任能力
   A) ソフトウェア開発会社に依頼する。          高    高
   B) 紹介したようなパッケージを探す。          ↓    ↓
(2)時間的コストをかける                  ↓    ↓
   A) 開発できるスキルのある人を自社で育て、自社開発。  ↓    ↓
   B) このような掲示板で他人の時間を使う。        低    低
 
「時は金なり」で時間も金銭的コストに置き換えることが出来ます。
(2)-Aは人によりけりのところもありますが。
「検索したら[まるぴ]さんの状況にフィットするマクロがある」と考えるのは、
甘いです。
 
集計が目的であれば、営業マンレベルでフォルダ、物品レベルでブック、また、
別のレベルでシートにと細分化してしまった時点ですでにカタストロフが始まっています。
これは「手段」の方から仕組みを作ってしまったためです。
(営業マンがExcelの特定の様式に記録する)
 
目的のひとつ(と思われる)、「経理の人間が管理するファイルに集計する」の
方から、逆算的に手段のほうを導き出すべきです。
 
まあ、こういうのも私自身が同様の失敗をしているからでして。
[みやほりんの失敗談]すでに目にしているかもしれませんが。
http://miyahorinn.fc2web.com/schooltxt/Ex060120.html
 
【根本的な解決方法】
Excelの集計(他)機能は一箇所にまとまった「リスト形式」のデータがあってこそ
発揮されますから、広義なデータベースである、リストを作ることに努力を集約す
べきです。複数のユーザーの入力をリスト形式にまとめる機能として
「データ追跡機能つきテンプレートウィザード」という、仰々しい名前のアドインが
用意されています。
 
しかしながら、マルチユーザーインターフェイスとしては、エクセルは多少貧弱です
ので、Access等のデータベースアプリケーションで開発するほうが無難と推測します。
 
が、現状の目の前の問題は絶望的なまでに多数のファイル群をどう処理するか、
ですので、(手作業が絶望的なら)それらを処理するやっつけプログラム
を作るしかありません。
 
【自分で開発】
次のようなステップでVBAスキルをつける
・ブックの取得方法
・シート取得方法、セル取得方法
・コードの構造化(条件分岐、繰り返し処理)
・ファイル名の取得
[[20070916182011]] 『ホルダ内に有るファイルの名前を所得』(ミチ) 
・フォルダ名の取得
[[20050711132657]] 『VBA:フォルダ名の取得』(いま)
 
おっと、ネックはTODAY関数。
開いたら、再計算されて開いた時点の日付になってしまう。なんてこったい。
マクロでセル参照埋め込むか、 ExecuteExcel4Macroか。
 
【掲示板で開発してもらう】
残念ながら、私は開発までお付き合いできる状態にない。
コードを作ってくれる人を待ちます?
とりあえず、役に立ったとは思えないので、未回答状態にしておきます。
(みやほりん)(-_∂)b


 私も回答ではないのですが
 コード自体は多少のスキルと過去ログを見て勉強すれば、すぐ作れてしまう程度のコードですが
 (それにしてもこの処理をするコードよりも多い文書を書かれるみやほりんさんてスゴイ)

 それにしても、さすがに1担当者に最大100ファイル×30人ですよね。。。
 そうなると私も単純に集計マクロで〜というレベルの問題ではないと思います。
 根本的に意識改革とか、会社にとって重要ならシステムとして開発すべきでは?
 と思ってしまいます。

 (momo)

 >コードよりも多い文書
コード書くの、時間がかかるんですよ、なまっちゃって。
あ、上のDMの話は便利そうなソフトですが、
購入後、「業務改善の提案をしたいのですが」なんて話が来そうですな。
能率の悪い使い方をしている会社を見つけ出す手段のような気がしてきた。
(みやほりん)(-_∂)b

 以下で、作ってもらったことあるよ。
http://www.formzu.net/fgen.ex?ID=P32513425


(みやほりん)(-_∂)b様 (momo)様 書き込みありがとうございます。

 フォルダを検索して、リンクを書き出すマクロで解決しました。
 システムの見直し。私も、それが正論だと思います。

(まるぴ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.