コンピューター

Excelのマクロ(VBA)で時間のかかる作業を短時間で2

投稿日:2019年9月6日 更新日:

前回、VBAを使用する準備まで行いましたの実際にVBAを
記述していきます。

実際にVBAを記述する

VBAを記述する画面が表示

前の作業でExcelのメニューに「開発」が追加されています。
それをクリックすると「開発」で使用するリボンが表示されます。
その一番左にある「Visual Basic」をクリックします。

VBAを記述する画面が表示されます。

VBAを記述するためのモジュールを追加する

開いた画面の右上部分にある「VBAProject」の枠内で
右クリックをするとメニューが表示されます。
そこから「挿入」を選択すると、追加できるモジュール
「ユーザフォーム」「標準モジュール」「クラスモジュール」が表示されます。
今回は、「標準モジュール」を選択します。

標準モジュールに「Module1」が追加されVBAを記述する画面が表示されます。

処理を記述する

では実際に処理を記述していきます。
今回やりたいことは、
1.複数のExcelファイルの同一セルに値を挿入する。
2.複数のExcelファイルから、シート名に指定されたセルの情報を取得し、
  集計用エクセルファイルに入力する。
の2つになります。

ではここから実際の処理を記述していきます。
処理を記述するには、サブルーチンと呼ばれるものを作成します。
VBAを記述する画面に「sub 処理1」と記述して「Enter」キーを
押すと下記のように
()~End Subが自動で追記されます。

この間に、実際の処理を記述していきます。

1.複数のExcelファイルの同一セルに値を挿入する。

下図のように、すべてのExcelに同じように、赤で囲んだセルの中に
「商品11」「250」を追加します。

処理の記述自体は、以上です。
実行するには、Sub処理1~End Subの間をクリックした後に「F5」キー
を押します。
記述に問題なければ、処理が実行されます。

今回の処理については、10ファイル程度なのですぐに終わりますが、
数1000ファイルを処理することになると、いつ処理が終わるのか、
どこまで処理が進んでいるのか知りたいと思います。

そういう時、私がよく使用するのは
DoEvents
Debug.Print
の2つのコマンドです。

この処理を実行すると下記のようにイミディエイトウィンドウに
処理状況が表示されます。
1件処理するのに何秒かかるため、あと何分で処理が終わるというような
予想も出来ます。

最後に、処理を記述したExcel ファイルの保存についてですが、
以前のExcel2003までは、拡張子が「xls」となっていて、VBAを
記述したファイルでもそのままの名前で保存することができました。

ただし現在は、VBAを記述したファイルは拡拡張子を「xlsm」に
変更して保存する必要があります。
もし「xlsx」のまま上書き保存してしまった場合は、記述した内容が
全て消えてしまいます

簡単な内容であれば、また書き直せばいいやと思いますが、
複雑な処理を記述していた場合などは、目も当てられない状況に・・・

この部分は、特に気を付けましょう。
続いて2番目の処理を記述していきます。

2.複数のExcelファイルから、シート名に指定されたセルの情報を
  取得し、集計用エクセルファイルに入力する。

今度は、先ほどとは逆に、処理を記述しているExcelファイル自体に
読み込んだExcel ファイルの指定したセルの情報を入力していきます。

先ほどの処理に関しては、シート名が同じで、ファイル名のみが
違っていたため、簡単に記述することができました。

今回は、
・各ファイルによってシート名が違っている。
 ※ただし、シート名は各様式によって固定のため10種類の名称で判断する。
・各シートによって、読み込むセルの場所が違う。
となっていて、ちょっと面倒です。

シート名は、各様式ごとに違ってくるため、読み込んだExcelファイルの
シート名を取得し、条件に合っていた場合その様式名にあった
行番号、列番号を保存し、その値を取得するという処理を行います。
読み込んだExcelファイルは、保存せずにそのまま閉じます。

以上の内容で、今回の処理を行うことができます。

2つの処理でファイル数は、ちょうど10000ファイルほどあったんですが、
プログラムの記述と合わせて、大体5時間ほどで完了することができました。

手作業で10日くらいかかっていたということなので、
かなり短縮できたんではないかと思います。

-コンピューター

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Excelが2重に起動!解決方法は?

数か月前のことなんですが、ノートPCに必要なソフトをインストールしていたところ、なぜかExcelが2重に起動するようになりました。   通常に起動したExcelファイルのほかにSheet1というファイ …

新PCのRyzen3700Xと旧PCのCori7 8700Kをベンチマークで比較

Ryzen3700XのPCとメインで使っていたCorei7 8700Kをベンチマークソフトで比較してみました。 旧メインPCCPU :Intel Cori7 8700Kグラボ:NVIDIA GeFor …

no image

全国の小中学生に配布するPCがが27万8000円!酷すぎるスペックとは?

「全国の小中学生」がトレンドのなっていたので何かと思えば、全国の小中学生に配布されるPCが酷すぎるということらしいです。 スペックと値段をみてみると確かに何でこんなものが、27万8000円もするの?と …

no image

Zoomの背景を【Snap Camera】で変更

テレワークやオンライン飲み会など、会社だけでなく大学の新歓などでもZoomなどのオンライン会議アプリを使うことが増えていますね。   そんな中、Web会議や飲み会で 「顔はいいけど部屋を映したくない」 …

注文したパーツが届きました

前回までで選んだ自作PCのパーツが届きました。 記事内では、書いてなかったんですがOSにWindows10 ProのDSP版とケースファンと熊グリスも注文しました。 リンク   リンク   せっかくな …

こんにちは、やきやきです。

このブログは、日々の出来事や、気になったニュースなどの情報をお届けします。