コンピューター

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

投稿日:

このセルの値を複数のExcelファイルの同じセルに入れたい
複数のExcelファイルの同じセルの情報だけを一つのExcelにまとめたい
など、よく依頼されます。

特に1つセルの情報を複数のExcelファイルに入れたいといった場合、
どういうことなのかと思って聞いてみると、
定型の書式を作って、それぞれに入力作業を行った後になって、
この部分にこれを入れるのを忘れていた
作業後に、この部分に追記して欲しいと言われた
などの事情でお願いしますとのこと。

しかも、修正する数が5000ファイル以上ということで、
こちらに依頼する前にも同じようなのがあったらしいのですが
その時は、手作業で10日くらいかけて修正したそうで、
はっきり言って時間の無駄だと思いました。

一つのExcelファイルで処理を行う場合は、
Excel自体の関数を使ったほうが早い場合も多々ありますが、
さすがに大量のファイルを開いて、同じ処理を繰り返すとなると
VBAで書いたほうがはるかに簡単だし短時間で処理を
することもできます。

では今回の作業について詳細に内容を確認してみると、同じ書式のセルの値をとってくるだけではありませんでした。
前提条件として

・ファイルの数が大量で、しかも数100ファイルごとに保存フォルダが違う。
・書式自体は10種類あり、それぞれシート名も違う。
・書式によって取得するセルが違う。
 例えば
 シートAの場合は、A1とB10とD20
 シートBの場合は、A1とB12とC15
 この値を集計するシートの2、3、4列目にそれぞれ入れる。
・集計するシートの1列目には、取得元のファイル名を入れる。

目次

実際の作業

Excelファイルの保存場所とファイル名を取得

これについては、VBAで作業してもできますが、面倒なので
コマンドプロンプトから、取得します。
Excelファイルの保存先が「C:\test」だった場合、以下のコマンドを実行すると

C:\test>dir /s /b >ファイル名.txt

ファイル名.txtが作成され、その中にファイル名一覧が入っています。

C:\test\001
C:\test\002
C:\test\003
C:\test\001\Book1.xlsx
C:\test\001\Book2.xlsx
C:\test\001\Book3.xlsx
C:\test\002\Book3.xlsx
C:\test\002\Book5.xlsx
C:\test\002\Book6.xlsx
C:\test\003\Book7.xlsx
C:\test\003\Book8.xlsx
C:\test\003\Book9.xlsx
・・・

ここで取得したファイル名を、集計するエクセルのシートに貼り付けます。

VBAの準備

それでは、実際にVBAで処理を書いていこうと思いますが
その前に準備が必要です。
まずExcelファイルの上部にあるメニューから「ファイル」をクリックします。

左の一番下の「オプション」をクリックします。

「リボンのユーザ設定」から「開発」にチェックを入れて「OK」をクリックします。

これで、VBAを使用する準備ができました。

次回は、実際に作業を行っていきます。

 

-コンピューター

執筆者:


comment

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

関連記事

no image

Windows10でアップデートを実行したら更新が終わらず2時間かかった!

2020年2月10日のことですが、ノートパソコンで仕事をしていたところ、アップデートのメッセージが出ました。 「今すぐ再起動」「今夜に再起動」というメッセージが表示されていたので、すぐ終わるだろうと特 …

データ全消失?HPEのサーバー向けSAS SSDで復旧も不可!

タイトルについてTwitterでトレンドになっているので何なんだろうと 調べてみたら、これとんでもないね! 目次 記事 Hewlett Packard Enterprise(HPE)が11月29日に公 …

no image

オフィスソフトのMicrosoft365の1年オンライン版が超特価の4,467円!購入方法は?

※このキャンペーンは2020年5月12日12:00で終了したみたいです。   オフィスソフトのMicrosoft 365 Persinal 1年オンラインコード版が4467円(月額372円)という激安 …

ESETインストールできました!できなかった原因は?

前回の記事の続きです 目次 ESETサポートセンターからメール ESET サポートセンターからやっと回答メールが届きました。 ESET サポートセンター〇様 平素はESET製品をご愛顧いただき、誠にあ …

no image

【HP ENVY x360 13】で使用できるモバイルバッテリー【MacBook】も充電できる!

新しく購入したノートPC「HP ENVY x360 13」ですが、USB TypeCから充電ができるということで、持ち運びがしやすくなるので、小さくて45W以上の出力がある電源を探していました。 Am …