LoginSignup
8
13

More than 3 years have passed since last update.

【VBScript】Excelをひとつひとつ開いてなにかしらの処理を自動化する方法

Last updated at Posted at 2019-10-07

はじめに

業務中に発生した以下のような要望をVBScriptを用いて解決できたので、その方法をご紹介します。(Windows限定)
●大量にあるExcelをひとつずつ開いてデータを取得したい!
●大量にあるExcelをひとつずつ開いて修正したい!
●大量にあるExcelをひとつずつ開いて...etc

※本記事ではExcelをひとつひとつ開いて、特定のセルにコマンドライン引数で与えたデータを挿入するところまでをご紹介します。

私と同じく1日中Excelとにらめっこしている方の手助けになればと思います。

完成図

1.ファイル作成

VBScriptを書くためにvbs形式でファイルを作成します。
今回は"test.vbs"というファイルを作成します。

次にvbsファイルを連続実行するためにbatファイルを作成します。
今回は"test_run.bat"というファイルを作成します。

流れとしてはbatファイルからVBScriptを繰り返し実行していきます。
01_バッチ作成.png

2.VBScriptを書いていく

先ほど作成した"test.vbs"をエディタで下記のように修正します。

test.vbs
Dim excel_obj
Dim workbook
Dim worksheet

'Excelの機能を利用するために必要
Set excel_obj = CreateObject("Excel.Application")

'Excelを可視化
excel_obj.Visible = True

'開きたいExcelファイルを指定(絶対パス)
Set workbook = excel_obj.Workbooks.Open(WScript.Arguments(0))

'シートを指定(名前Or番号で指定)
Set worksheet = workbook.Sheets(1)

'シート(1)の"A1"セルに値を入れる
worksheet.Range("A1").Value = WScript.Arguments(1)

'上書き保存
workbook.Save

'ワークブックを閉じる
workbook.Close

'Excelを閉じる
excel_obj.Quit

3.batファイルを書いていく

"test_run.bat"をエディタで開きます。

タブ区切りで、"test.vbsのパス" "開きたいExcelのパス" "セルに入れたい値"を指定します。
下記のフォルダ構成ならば
batファイル作成.png

こんなかんじです。

test_run.bat
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_01.xlsx   test_01
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_02.xlsx   test_02
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_03.xlsx   test_03
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_04.xlsx   test_04
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_05.xlsx   test_05
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_06.xlsx   test_06
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_07.xlsx   test_07
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_08.xlsx   test_08
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_09.xlsx   test_09
C:\Qiita_Test\test.vbs  C:\Qiita_Test\abc_10.xlsx   test_10

4.実行

"test_run.bat"をダブルクリックして実行します。
実行するとコマンドプロンプトが起動し、順次Excelが立ち上がり、処理が実行されます。
コマンドプロンプトが閉じたら、すべての処理が終わった合図です。
実施後にExcelを確認すると、値がきちんと挿入されていることが分かると思います。

おわりに

今回ご紹介した内容は必要最低限の処理のみとなります。
これを応用すれば基本的なデータの取得、加工などができるようになると思います。
この記事がだれかのお役に立てばいいなと思います。

8
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
13