この記事は、Excel VBAを使って業務を自動化するための、VBAプログラミングを紹介していきます。
この記事は下記のUdemy(オンライン学習サービス)の講座を参考にして、実施しました。
Excel VBAのスキルを向上させたい人は、是非参考にしてみてください。
この内容は、私が実際にエンジニアの業務の中で作成した自動化プログラムを参考に作成してあります。その為、細かい所をぼかして書いてある部分もありますが、基本的な考え方は変えてませんので、参考にして頂ければ幸いです。
具体的な実装の内容を別の記事にしてまとめています。この記事ではどういった考え方でシステムを作るのか、システム設計の考え方についてご紹介します。
プログラムの設計を行う
基本ですが、最も需要な箇所です。自分が作りたいプログラムのイメージを固めます。この設計が固まっていないと、実装時に処理の内容がブレたりするので、きちんとイメージするようにしましょう。
個人で使用するVBAレベルであれば、そこまで大きな問題にならないかもしれませんが、今後、別の人にメンテナンスや改修を引き継ぐ必要なあるようなケースは、設計書をドキュメントとして残しておいた方が親切です。
今回は、ざっくり下記のイメージでVBAプログラムを組んでいきます。このプログラムの目的は、フォーマットの異なるテキストファイルと、Excelファイルの書式を揃え、内容が同一かどうかを判定する事です。
このプログラムを作成するにあたり、処理は大きく3つに分けられると思います。①インプットを取り込む処理、②取り込んだ情報を加工する処理、③アウトプットを出力する処理です。
これらをそれぞれVBAで実装していきたいと思います。
情報の入力箇所を作る
まず、情報の入力箇所をVBAで実装していきます。
プログラムの起動トリガーを作成する
まず、VBAプログラムを起動させるためのトリガーが必要です。今回は、分かり易くユーザーがボタンを押下して、プログラムを起動する事にします。下記のようなボタンを用意して、これを押すと処理が走るような形で実装してみます。
情報の入力方法は幾つかパターンが考えられます。
『ファイルを開く』ダイアログを使う
1つ目は下記のような『ファイルを開く』ダイアログを使うケースです
上記のような、ファイル選択ダイアログを使うパターンです。このパターンのメリットはVBAを使うユーザーが状況に応じて、インプットファイルを選択し易い点です。Excelのファイルメニューの『開く』を選択した時に出てくるダイアログなので、割と馴染みやすいかと思います。
ファイルパスを直接指定する
2つ目は、Excelのセルにフォルダとファイルのパスを直接入力するパターンです。このパターンのメリットは実装が比較的容易である事です。『ファイルを開く』ダイアログと同様にユーザーがインプットファイルを選択する事もできます。
今回のアプリケーションは入力するファイルが2種類あるため、後者のファイルパスをパラメータ指定する方法で実装しようと思います。
Power Queryでデータを取り込む
ExcelのPowerQueryを使ってテキストファイルとxlsxファイルのデータを取り込んでいきます。PowerQueryとは取り込んだデータをデータベース化して加工等の操作をし易くしてくれる、便利なExcelの機能です
Power Query (以前のバージョンの Excel でデータを取得& 変換と呼ばれる) を使用すると、外部データをインポートまたは接続し、そのデータをニーズに合った方法で(列の削除、データ型の変更、テーブルの結合など) 整形できます。 次に、クエリを Excel に読み込み、グラフやレポートを作成できます。 定期的にデータを更新して最新の情報に更新できます。
Microsoft公式ホームページより引用
Power Queryを使うと、Excel内でデータの検索、編集、テーブルの結合等を容易に行う事ができます。今回は、Power Queryの機能を活用してデータの加工を行う事はしませんが、データ取込の部分
だけこの機能を使います。
今回は、このPowerQueryを使って取込処理の実装を行います。
上記のようなイメージでデータを取り込み、取り込んだデータをVBAを使って加工・操作していくイメージになります。
データを加工する
ファイルの取込が完了したら、実際に取り込んだファイルをVBAのプログラムを使って加工していきます。今回の加工操作はExcelのシート上で行います。Excel上の式を使用して、データの加工を行うようなイメージです。
下記のようにExcel上に式を入れて、データを加工する事は経験したことのある人が多いのではないでしょうか。これをVBAプログラミングで自動化していきます。
ここでの実装内容は基本的に画面から実施できる事のマクロ化なので、『マクロの記録』機能を使って簡単に作成する事ができます。別記事にてどのようなメソッドで実装されるのかを紹介します。
情報の出力箇所を実装する
最後に、加工したデータを出力します。今回は、事前にパラメータで指定したフォルダに対して、テキストファイルの形式で出力します。
加工の出力先は、入力先と同じく、Excelのセルに直接指定するようにします。
下記のように指定したフォルダにテキストファイルが出力されるイメージ
テキストファイルの出力はExcelのAPIを使用して実装していきます。これは、基本的なExcel VBAのAPIであるOpenステートメントを使用する事で可能です。
まとめ
この記事ではVBAを使って、業務を効率化するにあたり、VBAアプリケーションの設計の考え方についてご紹介しました。内容自体は簡単なものですが、システムを開発するための設計の考え方の一例としてご参考になれば幸いです。具体的な実装方法、コーディングの内容については別記事にまとめますので、よろしくお願いいたします。
最後に VBAの学習について
この記事は、UdemyのVBAプログラミング学習講座で基礎的な知識を勉強した上で、作成しています。
VBAの知識を高めるために有用な講座なので、VBAに興味があるなら受けてみることをおすすめします。
こちらの記事でUdemyの紹介もしているので、プログラミングを学習している方はぜひ参考にしてみてください。
↓Udemyの受講はこちらから
コメント