Excel VBAを使って外部ファイルを操作する方法

こんにちは、小栁です。

今回は、ExcelVBAを使って外部ファイルを操作する方法を紹介します。

ここでいう「外部ファイルを操作する」
というのは、
Aというファイルから間接的にBというファイルに対して変更を加えたり、Bというファイルの機能を実行したりすることを意味します。

VBAを使えば操作したいファイルを直接触らなくてもやりたいことができるようになります。

当記事に掲載しているサンプルコードはマクロを実行するxlsmファイルの標準モジュール(module1)に記述してください。

このような画面です。

新規ファイルを作成する

用意するファイル
└test.xlsm

「test.xlsm」のマクロを使って新たに「target.xlsx」というファイルを作成します。

test.xlsm

プログラム実行後のファイル
(新しく「target.xlsx」ファイルが追加されます)
├test.xlsm
target.xlsx

外部ファイルを削除する

用意するファイル
├test.xlsm
└target.xlsx

「test.xlsm」のマクロを使って「target.xlsx」ファイルを削除します。

test.xlsm

プログラム実行後のファイル
(「target.xlsx」ファイルが削除されます)
└test.xlsm

外部ファイルのファイル名を変更する

用意するファイル
├test.xlsm
└target.xlsx

「test.xlsm」のマクロを使って「target.xlsx」のファイル名を「changed.xlsx」に変更します。

test.xlsm

プログラム実行後のファイル
(「target.xlsx」ファイルの名前が「changed.xlsx」ファイルに変更されます)
├test.xlsm
changed.xlsx

外部ファイルの拡張子を変更する

.xls→.xlsx
※「.xls」という拡張子は2003年以前のExcelのファイル形式です。

用意するファイル
├test.xlsm
└target.xls
※下のサンプルコードを使う場合、このとおりのファイル構成でないとエラーになります。

「test.xlsm」のマクロを使って「target.xls」の拡張子を「target.xlsx」に変更します。

test.xlsm

プログラム実行後のファイル
(「target.xls」ファイルの拡張子が「.xlsx」に変更されます)
├test.xlsm
target.xlsx

外部のExcelファイルを開く

用意するファイル
├test.xlsm
└target.xlsx

「test.xlsm」のマクロから「target.xlsx」を開きます。

test.xlsm

外部のExcelファイルのマクロを実行する

用意するファイル
├test.xlsm
└target.xlsm

「test.xlsm」のマクロから「target.xlsm」の「target_macro」プロシージャを実行します。

test.xlsm

target.xlsm

このようにメッセージボックスが表示されたら成功です。

最後に

今回紹介した方法を応用すれば、フォルダ内にある大量のファイルの名前を一度に変更したり、複数のファイルにあるマクロをメインのファイルからまとめて実行したりすることができます。ぜひいろいろな処理を試してみてください。

Excel/ExcelVBAでのお困りごとなどありましたらお気軽にご相談ください。


新規サービス開発のご相談はこちら

この記事を書いた人

アバター

koyanagi

ガジェットと料理が好きです。

最近はスマート家電に興味があります。

趣味は、ジャグリングとサイクリングです。