業務効率化の道具箱(12)VBSなら面倒な環境構築なしで自作ツールを作れる山浦恒央の“くみこみ”な話(165)(3/3 ページ)

» 2023年05月18日 07時00分 公開
前のページへ 1|2|3       
※本記事はアフィリエイトプログラムによる収益を得ています

4.4 For文を使用した繰り返し

 次は繰り返し(For文)のプログラムです。リスト4に1〜10までの合計を出力するプログラムを示します(リスト4)。

'変数宣言
Dim sum
'1〜10まで繰り返す
For i = 1 To 10
	'変数に加算する
	sum = sum + i
Next
'合計(55)を出力する
WScript.Echo(sum)
リスト4 繰り返しをするプログラム

 リスト4は、1〜10までを繰り返すプログラムです。「For i = 1 To 10」と書くことで、1〜10まで1ずつ加算する記述ができます。プログラムはこれをsumという変数に入れながら加算していくため、結果は合計である55を出力します。

4.5 For-Each文を使用した繰り返し

 次は、For-Eachを使用して配列をループするプログラムです(リスト5)。

Option Explicit
' 配列の作成
Dim Items
Items = Array("データA", "データB", "データC")
' ループ処理
Dim item
For Each item In Items
	' 配列から取得した値を表示
	MsgBox(item)
Next
リスト5 For-Eachを使用して配列をループするプログラム

 リスト5は、3つの文字列が入った配列Itemsを繰り返し、メッセージを表示するプログラムです。実行すると、データA〜Cを順番に画面に出力します。

4.6 現在のフォルダパスを取得する

 次は、フォルダパスの取得方法です。ここではプログラム実行時のフォルダパスを取得してみましょう(リスト6)。

Dim strFolderPath
'現在のフォルダパス名を取得
strFolderPath = CreateObject("WScript.Shell").CurrentDirectory
'取得したディレクトリ名を表示する
WScript.Echo strFolderPath
リスト6 現在のフォルダパスを取得するプログラム

 リスト6は、フォルダパスを取得するプログラムです。CurrentDirectoryで現在のフォルダパス名を取得し、画面に表示します。

 実際に実行すると、画面上にVBSファイルがあるフォルダパス名を表示します。

4.7 Wordを開く

 次は、プログラムからWordファイルを開きます(リスト7)。

Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open("任意のフォルダパス" + "\" + "ファイル名.docs")
リスト7 Wordを開くプログラム

 リスト7は、VBS上から任意のWordファイルを開くプログラムです。Open()に任意のフォルダパスと作成済みのWordファイル名を入力して実行すると、Wordをプログラムから開けます(リスト8)。

Set WordDoc = WordApp.Documents.Open("C:\Users\xxxx\Desktop\VBS" + "\" + "doc1.docx")
リスト8 フォルダパスとWordファイルの例

 これを実行し、作成済みのWordファイルが開けばOKです。

 VBSはOffice製品との相性も良いため、例えば、Wordなどのファイルにアクセスして何らかの修正をすることが可能です。

5.終わりに

 今回は、面倒な環境構築をしないで自作ツールを作る方法に着目し、VBSのプログラムの記述方法を紹介しました。環境構築が不要なVBSでも、自分専用の効率化プログラムを作成することが可能です。例えば、今回学んだことを発展させると、「プログラムを実行したフォルダのWordファイルを一括で置換できるプログラム」を作成できるでしょう。

 なお、昨今のご時世としては、VBSを使用せずPowerShellを使用することを推奨されているようです。同様のことはPowerShellでも可能ですので、興味がある方は併せてPowerShellにも触れてみてください。

山浦先生の書籍が発売中です!

 前々シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。

 前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。

 両書とも興味のある方は、Amazon.comや書店でチェックしてください!

【 筆者紹介 】
山浦 恒央(やまうら つねお)

東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)


1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科准教授、2016年より非常勤講師。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.