ブログ記事19件
スクリプトファイルの形式ファイル形式:テキストファイル文字コード:シフトJIS(ANSI)改行文字:〈CR〉〈LF〉拡張子:.vbs変数、定数Dimステートメントで変数を宣言します。データ型はなんでも格納できるバリアント型(Variant)になります。DimvarNameDimwidth,heightConstステートメントで定数を宣言します。ConstHomePosition="A1"ConstPI=3.14ConstUnixEp
テキストファイルから文字列を読み取る方法として次の3つがある。一括で読み取る1行ずつ読み取る1文字ずつ読み取るそれぞれの方法を解説する。テキストファイルを一括で読み取る次のスクリプトは、テキストファイルの内容を表示する。DimfsoSetfso=CreateObject("Scripting.FileSystemObject")'テキストファイルを開くDimtsSetts=fso.OpenTextFile("C:\tmp\TextFile1.tx
VBScriptでWindowsの特殊フォルダを取得する方法は3つあります。FileSystemObjectのGetSpecialFolderを使うShellオブジェクトのSpecialFoldersコレクションから取得する環境変数から取得するFileSystemObjectのGetSpecialFolderを使うFileSystemObjectのGetSpecialFolderを使って特殊フォルダを取得できます。GetSpecialFolderは指定
FileSystemObjectを使ってファイルのバージョンを取得する方法を紹介する。目次ファイルのバージョンを取得するファイルのバージョンを取得する(GetFileVersionメソッド)ファイルのバージョンを取得するにはGetFileVersionメソッドを使う。存在しないファイルを指定すると実行時エラーが起きるので、事前にファイルの存在をチェックすること。例1:メモ帳のバージョンを取得するバージョンが返る。WScript.Echofso.GetFileVersio
FileSystemObjectではテキストファイルの文字エンコーディングとして、シフトJISまたはUnicodeの2種類が扱える。シフトJIS:コードページ932。Shift-JIS、shift_jisとも表す。メモ帳の文字コードで言うとANSIとなる。Unicode:コードページ1200。メモ帳の文字コードで言うとUTF-16LEとなる。現在の主流であるUTF-8は使えないので注意すること。UTF-8はFileSystemObjectで
VBScriptには標準でファイルを操作する関数は準備されていない。ファイルを操作するときはFileSystemObjectを使う。FileSystemObjectでファイルを扱う方法を紹介する。目次テキストファイルを作るファイルをコピーするファイルを移動するファイルを削除するテキストファイルを開くファイルオブジェクトを取得するファイルの存在を確認するテキストファイルを作る(CreateTextFileメソッド)CreateTextFileメソッドでテキストフ
VBScriptには標準でフォルダを操作する関数は準備されていない。フォルダを操作するときはFileSystemObjectを使う。FileSystemObjectでフォルダを扱う方法を紹介する。目次フォルダを作るフォルダをコピーするフォルダを移動するフォルダを削除するフォルダオブジェクトを取得するWindowsの特殊フォルダのオブジェクトを取得するフォルダの存在を確認するすべてのサブフォルダを取得するフォルダ内のファイルを取得するフォルダを作る(Create
VBScriptには標準でドライブを扱う関数は準備されていない。ドライブを扱うときはFileSystemObjectを使う。FileSystemObjectでドライブを扱う方法を紹介する。目次使用できるドライブオブジェクトのコレクションを取得するドライブオブジェクトを取得するドライブの存在を確認する使用できるドライブオブジェクトのコレクションを取得する(Drivesプロパティ)Drivesプロパティで、ローカルコンピュータで使用できるドライブオブジェクトのコレクション
FileSystemObjectを使ってパスを生成したり、パスからフォルダ名やファイル名を取得したりする方法を紹介する。目次パスを生成する完全なパスを取得するドライブ名を取得する親フォルダの名前を取得するファイル名を取得する拡張子を除いたファイル名を取得するファイルの拡張子名を取得する一時ファイル名(フォルダ名)を生成するパスを生成する(BuildPathメソッド)フォルダまたはファイルのパスを生成するにはBuildPathメソッドを使う。WScript.Echo
文字列や整数で指定された値を日付型に変換する方法を紹介する。目次日付として認識できるか確認する日付型に変換する整数の年/月/日を日付型に変換する日付文字列を日付型に変換する整数の時/分/秒を日付型に変換する時刻文字列を日付型に変換する日付として認識できるか確認するIsDate関数は日付として認識できるかどうかを返す。IsDate(Expression)Expressionには確認する式を指定する。日付または時刻として認識できる場合はTrueを返す。それ以外の
日付を計算する関数、日付と日付の間隔を求める関数を紹介する。目次日付を計算する日付と日付の間隔を求める日付を計算するDateAdd関数で日付の計算ができる。DateAdd(Interval,Number,Date)Intervalに追加する時間間隔を表す文字列を指定する(後述)。Numberに追加する時間間隔を表す値を指定する。プラスの数なら将来、マイナスの数なら過去の日時となる。Dateに計算の元になる日付を指定する。Intervalに指定できる値は以下
Date型の変数から日付や時刻の一部分を取得する関数を紹介する。目次日付の一部分を取得する時刻の一部分を取得する曜日を整数で取得する曜日を文字列で取得する月の名前を取得する日付や時刻の一部分を取得する書式設定した日付または時刻を文字列で取得する日付の一部分を取得するYear関数:年を取得Month関数:月を取得Day関数:日(月の何日か)を取得Year(Date)Month(Date)Day(Date)Date:日付(Date型の
現在の日付や時刻を取得する関数を紹介する。目次現在の日付と時刻を取得する現在の日付を取得する現在の時刻を取得する午前0時00分からの経過時間を取得する現在の日付と時刻を取得するNow関数は現在の日付と時刻を返す。Now戻り値は内部処理形式がDate型のバリアント。WScript.EchoNow'→2022/12/0314:44:36現在の日付を取得するDate関数は現在の日付を返す。Date戻り値は内部処理形式がDate型のバリアント。WSc
メッセージボックスを一定時間表示したあと自動で閉じるには、ShellオブジェクトのPopupメソッドを使う。スクリプトの実行方法(WScript.exe/CScript.exe)に関係なく、メッセージボックスが表示されます。使い方ShellObject.Popup(prompt,[time,][title,][buttons])引数prompt:表示するメッセージメッセージはCR、LF、CR+LFのいずれかを使って改行できる。time:メッセージボック
スクリプトの実行方法に応じた方法でメッセージを表示するにはWScriptオブジェクトのEchoメソッドを使う。cscript.exeでスクリプトを実行した場合、メッセージは標準出力に出力される。wscript.exeでスクリプトを実行した場合、メッセージはメッセージボックスで表示される。ただし、メッセージボックスのタイトルやボタンの種類、アイコンは指定できない。使い方WScript.Echo(prompt)引数prompt:表示するメッセージメッセージはCR、LF
VBScriptでメッセージボックスを表示するにはMsgBox関数を使う。スクリプトの実行方法(WScript.exe/CScript.exe)に関係なく、メッセージボックスが表示される。使い方MsgBox(prompt,[buttons,][title,][helpfile,context])引数prompt:表示するメッセージメッセージはCR、LF、CR+LFのいずれかを使って改行できる。buttons:後述のボタンの種類、アイコンの種類、既
文字をUnicodeのコードポイントで表記する方式を「数値文字参照」と言う。AscW関数を使って、指定した文字の数値文字参照を取得する方法を紹介する。数値文字参照の表記数値文字参照は“&#”+Unicodeコードポイント+“;”のように表記する。たとえば、“あ”のコードポイントは12354なので、これを数値文字参照で表すと“あ”となる。数値文字参照の取得AscW関数で取得したUnicodeコードポイントを、次のように編集するだけで数値
スネークケースをキャメルケースに変換するスクリプトを紹介する。スネークケース:単語と単語をアンダーバーでつなげたもの。例)sheet_nameキャメルケース:単語の頭文字を大文字、それ以外の文字を小文字にしてつなげたもの。先頭の単語の頭文字が小文字のものはローワーキャメルケースと言う。例)sheetNameそうでないものはアッパーキャメルケースと言う。例)SheetNameアッパーキャメルケースへの変換スクリプト次のSnakeToUpperCamel関数は、スネークケー
指定した数の空白を取得するにはSpace関数を使う。使い方Space(number)number:空白の数例text1=Space(0)'→0個の空白("")text2=Space(10)'→10個の空白("")String関数でも同じことができる。text3=String(10,"")'→10個の空白("")VBScript指定した数の空白を取得する
指定した文字を指定の文字数だけ並べるにはString関数を使う。使い方String(number,character)number:文字数character:文字または文字コード(ANSI/シフトJIS)もし2文字以上の文字列を指定した場合、先頭の1文字が使われる。例例:“A”を5個並べる。WScript.EchoString(5,"A")'→AAAAA例:文字コード65が表す文字“A”を5個並べる。WScript.EchoString(5,
指定した区切り文字で文字列を分割するにはSplit関数を使う。分割された文字列は1次元配列で返される(添え字の開始は0)。Split(expression[,delimiter[,count[,compare]]])expression:分割する文字列を指定する。長さ0の文字列を指定した場合、要素もデータもない空の配列が返る。delimiter:区切り文字を指定する。省略した場合、空白(”“)となる。長さ0の文字列を指定した場合、元の文字列全体を含む単一
文字のコードポイント、またはコードポイントに対応する文字の取得方法を紹介する。文字のコードポイントを取得する(ANSI/シフトJIS)文字のANSIコードまたはシフトJISコードを取得するにはAsc関数を使う。Asc(string)string:文字を指定する。2文字以上の文字列を指定した場合、先頭の文字が対象になる。例:文字のANSIコードを取得するWScript.EchoAsc("A")'→65WScript.EchoAsc("ABC")
アルファベットの大文字を小文字に、または小文字を大文字に変換する方法を紹介する。大文字→小文字アルファベットの大文字を小文字にするにはLCase関数を使う。全角のアルファベットも小文字に変換される。LCase(string)stringには変換元の文字列を指定する。例:半角も全角も小文字に変換されるWScript.EchoLCase("HelloWorld!")'→helloworld!WScript.EchoLCase("HelloWorld!
VBScriptでも正規表現を使って文字列の検索や置換ができる。VBScriptで正規表現を使うにはRegExpオブジェクトを使う。次のスクリプトはRegExpオブジェクトの使用例である。“IS1Is2IS3iS4”という文字列から大文字/小文字を区別せず“IS”を探し、見つかった位置と文字列を表示する。OptionExplicitDimreSetre=NewRegExpre.Pattern="IS"re.IgnoreCase
文字の並びを逆にするにはStrReverse関数を使う。StrReverse(〈元の文字列〉)例text=StrReverse("HelloWorld!")'→!dlroWolleHtext=StrReverse("HelloWorld!")'→!dlroWolleHトップVBScript文字の並びを逆にする
空白を取り除くにはTrim/LTrim/RTrim関数を使う。関数によって取り除く空白の場所が異なる。Trim関数は、先頭と末尾の空白を取り除く。LTrim関数は、先頭の空白のみを取り除く。RTrim関数は、末尾の空白のみを取り除く。なお、半角だけでなく全角の空白も取り除かれる。Trim(string)LTrim(string)RTrim(string)例:先頭と末尾の空白を取り除く。WScript.EchoTrim("HelloWorld!")
文字列を置換するにはReplace関数を使う。Replace(expression,find,replacewith[,start[,count[,compare]]])expression:元の文字列を指定する。find:検索する文字列を指定する。replacewith:置換する文字列を指定する。start:文字列の先頭を1として、検索開始位置を指定する。省略した場合、先頭から検索される。count:置換する回数を指定する。省略した場合は既定値(-1
文字列の中にとある文字列が含まれているか検索するには、InStr関数またはInStrRev関数を使う。先頭から検索するときはInStr関数を、末尾から検索するときはInStrRev関数を使う。どちらの関数も、最初に見つかった文字の位置(先頭からその文字までの文字数)を返す。見つからない場合は0が返る。先頭から検索するInStr関数は、指定された文字列をある文字列の先頭から検索する。InStr([start,]string1,string2[,compare]
文字列の一部を取り出す関数として次の3つがある。Left関数:先頭から指定文字数を取り出す。Right関数:末尾から指定文字数を取り出す。Mid関数:指定位置から指定文字数を取り出す。先頭から指定文字数を取り出す文字列の先頭から指定文字数を取り出すにはLeft関数を使う。Left(string,length)stringには抽出元の文字列を指定する。lengthには取り出す文字数を指定する。戻り値として抽出した文字列が返る。lengthに0を指定し
文字列を比較するにはStrComp関数を使う。StrComp(〈比較する1つ目の文字列〉,〈比較する2つ目の文字列〉[,〈文字列の比較モード〉])1つ目の文字列が2つ目の文字列より小さい場合-1が返る。1つ目の文字列と2つ目の文字列が同じ場合0が返る。1つ目の文字列が2つ目の文字列より大きい場合1が返る。例ret=StrComp("abc","ABC")'→1ret=StrComp("1","100")'→-1ret=