Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What is going on with this article?
@kenta_nk

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

More than 1 year has passed since last update.

はじめに

業務中に発生した以下のような要望を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を確認すると、値がきちんと挿入されていることが分かると思います。

おわりに

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

7
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kenta_nk
新卒2年目の派遣エンジニア 4次受けの車載ECU開発現場にてExcelとにらめっこする毎日 WEB系エンジニアを目指して日々勉強中です。 スキルアップのために学んだことをQiitaに投稿していきます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
7
Help us understand the problem. What is going on with this article?