業務効率化の道具箱(12)VBSなら面倒な環境構築なしで自作ツールを作れる:山浦恒央の“くみこみ”な話(165)(3/3 ページ)
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第12回は、Windowsであれば面倒な環境構築なしで使えるVBSのプログラム記述方法を紹介する。
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は、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は、3つの文字列が入った配列Itemsを繰り返し、メッセージを表示するプログラムです。実行すると、データA〜Cを順番に画面に出力します。
4.6 現在のフォルダパスを取得する
次は、フォルダパスの取得方法です。ここではプログラム実行時のフォルダパスを取得してみましょう(リスト6)。
Dim strFolderPath '現在のフォルダパス名を取得 strFolderPath = CreateObject("WScript.Shell").CurrentDirectory '取得したディレクトリ名を表示する WScript.Echo strFolderPath
リスト6は、フォルダパスを取得するプログラムです。CurrentDirectoryで現在のフォルダパス名を取得し、画面に表示します。
実際に実行すると、画面上にVBSファイルがあるフォルダパス名を表示します。
4.7 Wordを開く
次は、プログラムからWordファイルを開きます(リスト7)。
Set WordApp = CreateObject("Word.Application") WordApp.Visible = True Set WordDoc = WordApp.Documents.Open("任意のフォルダパス" + "\" + "ファイル名.docs")
リスト7は、VBS上から任意のWordファイルを開くプログラムです。Open()に任意のフォルダパスと作成済みのWordファイル名を入力して実行すると、Wordをプログラムから開けます(リスト8)。
Set WordDoc = WordApp.Documents.Open("C:\Users\xxxx\Desktop\VBS" + "\" + "doc1.docx")
これを実行し、作成済みのWordファイルが開けばOKです。
VBSはOffice製品との相性も良いため、例えば、Wordなどのファイルにアクセスして何らかの修正をすることが可能です。
5.終わりに
今回は、面倒な環境構築をしないで自作ツールを作る方法に着目し、VBSのプログラムの記述方法を紹介しました。環境構築が不要なVBSでも、自分専用の効率化プログラムを作成することが可能です。例えば、今回学んだことを発展させると、「プログラムを実行したフォルダのWordファイルを一括で置換できるプログラム」を作成できるでしょう。
なお、昨今のご時世としては、VBSを使用せずPowerShellを使用することを推奨されているようです。同様のことはPowerShellでも可能ですので、興味がある方は併せてPowerShellにも触れてみてください。
山浦先生の書籍が発売中です!
前々シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「山浦恒央の“くみこみ”な話」バックナンバー
- 業務効率化の道具箱(11)VBAでグラフ描画が可能な自動集計アプリを作ってみよう
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第11回は、VBAによる自動集計アプリのさらなる進化版として、データを転記し、グラフ描画を行うツールを作ってみる。 - 業務効率化の道具箱(10)VBAでさらに高機能な自動集計アプリを作ってみよう
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第10回は、第9回で紹介したVBAによる自動集計アプリのバージョンアップ版を作ってみる。 - 業務効率化の道具箱(9)VBAで自動集計アプリを作ってみよう
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第9回は、VBAによる自作ツール作成の例として自動集計アプリを作ってみる。 - 業務効率化の道具箱(8)ツールがないならVBAで作ってみよう
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第8回は、自作ツール作成の第一歩としてVBAを紹介する。 - 業務効率化の道具箱(7)ターミナルソフト「RLogin」を使ってみよう
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第7回は、ターミナルソフトである「RLogin」の導入方法や使い方を紹介する。 - 業務効率化の道具箱(6)Google Testを使ってみよう【その2】
ソフトウェア開発にとどまらない、PCを使う全ての人が対象となるシリーズ「業務効率化の道具箱」。第6回は、前回導入した「Google Test」の使い方と、「アサーション」「パス・カバレッジ」によるテストの方法を紹介する。