2017年12月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

« ▼ダイエット大作戦(体重変化なし、でも...) | トップページ | ¥Money(投信生活070512) »

2007年5月 8日 (火)

◆Excel VBA(複数の定型フォーマットブックを開いて一覧表を作るマクロ(第1回))

久しぶりのVBAネタです。
今日から数回に分けて、私の経験上いろいろな業種、部門で共通的に必要とされるのではと思われる話題として、複数の定型フォーマットブックを開いて一覧表を作るマクロについて書いてみたいと思います。
まず、ある担当者(ここは会社の社員でもよい)から取りまとめ者(部門でもよい)へ定型のExcelフォーマットを申請するというワークフローを想像してみてください。事務処理しかり、共通部品の申請しかり、各部署から特定の部署への作業依頼しかり、結構会社内もしくはプロジェクト内では一般的なフローではないでしょうか。
ここで、取りまとめ者(部門)の立場で考えてみます。大抵、取りまとめ者(部門)は申請されたExcelを開き、内容を確認し、正しければ何か処理をする、誤りがあれば申請元へ突返すといった流れですよね。申請Excelはそのまま保管でしょうか?取りまとめ者は受け取ったExcelをそのまま保管していても、内容を知るにはいちいちファイルを開かなければいけないので使い勝手が悪いですね。一覧化したくなりますね、うん。(話しの都合上ちょっと強引)

一覧化すれば、入力内容のチェックをマクロ化しておいてチェックを自動化したり、分析機能をマクロ化しておいて品質管理や統計分析などに利用することも可能になります。受け取った後の後続の処理へマクロで連動させることも考えられますね。
では、その一覧化マクロですが、今回は以下の要領で考えてみたいと思います。
<前提>
(1)申請されたExcelブックはある特定のフォルダに格納されている(固定とは限らない)
(2)申請されたExcelブックはファイル名が一定の基準に則っている(yyyymmdd_部署名_担当者名.xlsとする)
(3)申請されたExcelブックは当然同一フォーマットである
   入力項目はとりあえず以下としておく
   1 B列       C列
   2 申請部署: ┏━┓
   3        ┗━┛
   4 申請者名: ┏━┓
   5        ┗━┛
   6 承認者名: ┏━┓
   7        ┗━┛
   8 承認日  : ┏━┓
   9        ┗━┛
   10 機能名  : ┏━┓
   11        ┗━┛
   12 依頼事項: ┏━━━━┓
                 ┗━━━━┛

<仕様>
(1)予め一覧用ブックを用意し、その一覧用シートに実行ボタンを配置する
(2)処理をする前に、一覧をクリアするかどうかメッセージを表示
(3)格納フォルダを指定するダイアログを表示し、指定されたフォルダ配下の申請ブックの内、ある条件のものだけ1つずつ処理する
(4)申請されたExcelの入力内容は、一覧シートの最終行+1行目に追加貼り付けし、終わったら申請ブックを閉じる
(5)上記(3)(4)を繰り返す

仕様上、様々なインタフェースが考えられますが、読者の方の事情に応じていろいろカスタマイズしてみてください。フォルダが固定なのであれば、マクロ内に持ってしまえばよりシンプルになりますし、拡張性は保持したいがフォルダ指定が面倒ということであれば、フォルダパスをシートのどこかに持っておくことでも良いと思います。また、指定フォルダ内のブックを無条件にすべて処理したり、一度申請済みの申請書が再度申請された場合は上書きするといった実務上必要な機能が出てきそうです。さらに、実行方法ですが、一覧用ブックを開いたらカスタムメニューが追加されたり、カスタムツールバーが追加されたりといろいろ考えられますね。

今回は申請フォーマットにExcelを想定していますが、Wordの場合も当然可能です。
Wordの例は今回は割愛しますが、一覧化するロジックが知りたいというご希望があれば書いてみたいと思います。

それでは次回から実際のマクロを提示して解説していきたいと思います。

« ▼ダイエット大作戦(体重変化なし、でも...) | トップページ | ¥Money(投信生活070512) »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« ▼ダイエット大作戦(体重変化なし、でも...) | トップページ | ¥Money(投信生活070512) »