- 締切済み
エクセルVBA:毎月名前が変わるエクセルファイルを毎月異なるフォルダから開く
まず、私はマクロ初心者です。なにぶん複雑でVBAのマニュアルには載っていなかったり、マニュアルにあったとしても、私自身初心者のため応用がきかず、こちらに投稿させていただきました。 目的は在庫データの集計で、集計するためのフォーマット(ファイルA)があり、ファイルAから、とあるシステムから抽出する月度別の在庫データ(ファイルB)を、月度別のフォルダから自由にファイルを指定するVBAを作ることは可能でしょうか。 ただ、そのファイルBが少々曲者で、下記の条件があります。 *<ファイルBの条件>********************* 1.とあるシステムから抽出するデータ(ファイルB)は、自動でエクセルに変換されCドライブに保存さますが、ファイル名が、基本ファイル名、たとえば「物流在庫」の後ろに抽出年月日と時刻が「-200912021354」という風に数字で表記されてしまうため、毎月変わります。 2.Cドライブにいったん保存されたファイルBを、会社の共有パソコンへ移動させるのですが、(部門名)フォルダ→年度別フォルダ→月度別フォルダ→在庫データフォルダと複数のフォルダを経由して、最終的に在庫データフォルダの中へ移動させています。 ******************************** 担当者が変わっても誰でもこの業務ができるようにしたいので、ファイルBの名前を変える(抽出年月日+時刻部分を削除する)という作業は避けたいと思っています。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- FEX2053
- ベストアンサー率37% (7991/21373)
結局「フォルダ名、ファイル名」をどう作るかという問題じゃないかと。 フォルダ名は、「処理する月」がVBA起動時に決まっている筈ですから その変数から持ってくればオッケー。例えばダミーのシートを1枚 作って「=NOW()」で起動日を引っ張り、当月、前月の文字列を作って RANGE()でVBAに持ち込む、なんてのはよくやります。 (VBA内でnow関数を使っても良いんですが、その場合、何らかの理由で 前倒し、後処理があると使えなくなるという問題があります) 問題はファイル名ですが、確かOpenの処理をするとき「DATA*.XLS」と 言う形で読み込めたような気が・・・。これが出来れば「物流在庫200912*.XLS」 で読み込めますよね。