怠日記

写真・金魚・昆虫・プログラミングの趣味を語るサイトです。似たようなことをnoteにも書いたり書いてなかったり。

2024-07-01から1ヶ月間の記事一覧

VBScript - テキストファイルに書き込む(FileSystemObject)

FileSystemObject を使ったテキストファイルへの書き込み方法を解説する。新規作成、上書き、追記、それぞれの方法を載せる。ファイルを新規作成するDim fso Set fso = CreateObject("Scripting.FileSystemObject") ​ 'テキストファイルを作成する Dim ts Se…

VBScript - テキストファイルを読み取る(FileSystemObject)

テキストファイルから文字列を読み取る方法として次の3つがある。一括で読み取る1行ずつ読み取る1文字ずつ読み取るそれぞれの方法を解説する。テキストファイルを一括で読み取る次のスクリプトは、テキストファイルの内容を表示する。Dim fso Set fso = Crea…

VBScript - ファイルの更新日時を変更する

ファイルの更新日時を変更するには Shell オブジェクトを使う。サンプルスクリプト次のスクリプトは、ファイル(C:\path\to\folder\filename.txt)の更新日時をシステム日時に変更する。Dim shell Set shell = CreateObject("Shell.Application") ​ Dim fold…

VBScript - ADODB.Stream の Charset プロパティに設定できる内容を調べる

ADODB.Stream の Charset プロパティには文字セットを表す文字列を指定する。設定できる文字列はレジストリから調べられる。設定できる文字列を調べるシステムが認識できる文字セットの文字列を調べるには、Windows レジストリの HKEY_CLASSES_ROOT\MIME\Dat…

VBScript - テキストファイルの文字コードを変換する

Stream オブジェクトを使って、テキストファイルの文字コードを変換する方法を紹介する。サンプルスクリプト以下のスクリプトは、EUC-JP のテキストファイルを UTF-8 に変換する。With CreateObject("ADODB.Stream") '-------------------- ' テキストファイ…

VBScript - 廃止までのスケジュール

2024年5月22日に Micorosoft から VBScript の廃止スケジュールと推奨の移行先が発表された。いよいよ廃止に向けて動き出したようだ。ネタ元は以下のリンクから。VBScript deprecation: Timelines and next steps | Windows IT Pro Blog廃止までの計画VBScri…

VBScript - ついに非推奨へ

2023年10月、マイクロソフトは VBScript を非推奨にすると発表した。Windows の今後のリリースでは(当面)オンデマンド機能として提供されるが、最終的には廃止(= Windows からの削除)となるようだ。*オンデマンド機能(Features on Demand:FOD)→ ユ…

VBScript - コマンドライン引数の取得 | WScript.Arguments

スクリプトには外部から値を指定できる。スクリプトに指定された引数は WScript.Arguments に格納される。引数の型は文字列になるので、適宜変換して利用する。コマンドライン引数、またはドラッグアンドドロップで指定されたものが引数となる。Count で引数…

VBScript - フォルダ選択ダイアログの表示 | BrowseForFolder

フォルダ選択ダイアログを表示するには BrowseForFolder を使う。サンプルスクリプト次のスクリプトは、デスクトップをルートとしたフォルダ選択ダイアログを表示する。'シェルオブジェクト生成 Dim shellApp Set shellApp = CreateObject("Shell.Applicatio…

VBScript - 外部プログラムを実行する | ShellExecute

外部プログラムを実行するには ShellExecute を使う。使用例メモ帳を起動するメモ帳(notepad.exe)を指定することで起動できる。Dim shellApp Set shellApp = CreateObject("Shell.Application") ​ shellApp.ShellExecute "notepad.exe", "", "", "", 1指定…

VBScript - C# で作った COM コンポーネントを使う

C# で COM コンポーネントを作り、VBScript から利用してみます。C# で COM コンポーネントを作る以下の設定で新しいプロジェクトを作ります。プロジェクトテンプレート: クラスライブラリ (.NET Framework)ターゲットフレームワーク: .NET Framework 4.8…

VBScript - WScript オブジェクトでできること

WScript オブジェクトでできることを説明します。WScript オブジェクトを使うと、以下のようなことができます。WSH実行ファイル(cscript.exe/wscript.exe)の情報取得スクリプトの情報取得スクリプトの実行制御WScript オブジェクトは、WSH 固有の機能です…

VBScript - 多重実行を禁止する

こちらの記事で WMI を使ってスクリプトの多重実行を禁止する方法を紹介しました。しかしこの方法では Enter キーの連打等によって短時間に複数実行された場合、どちらも実行中と判定されてしまう問題がありました。今回は WMI ではなく一時ファイルを使って…

VBScript - 多重起動を禁止する(WMI利用)

スクリプトの処理中に、同じスクリプトを起動されたくないケースがある。多重起動を禁止するにはどうすれば良いのか。概要WMI (Windows の管理データ)の Win32_Process で Windows 上のプロセスを確認できる。この Win32_Process より自分自身のスクリプト…

VBScript - 環境変数の取得・設定

VBScript から環境変数を取得、または設定するには WshShell オブジェクトを使います。環境変数の種類と有効範囲環境変数には次の4つの種類があります。それぞれ、設定値が有効になる範囲が異なります。System:端末単位の設定。その端末を使うすべてのユー…

VBScript - Active Directory からユーザー情報を取得する

Active Directory からユーザー情報を取得するには、GetObject 関数に LDAP 識別名を指定します。サンプルスクリプト以下のスクリプトは、Active Directory から取得したユーザー情報を表示します。取得する情報は、ドメイン example.jp にある組織単位が Us…

VBScript - XML を読み込む

データベースの接続先やメールの通知先など、設定値を外部ファイルに持たせたいときがある。VBA であれば Ini ファイルが使えるが、VBScript には Ini ファイルを扱う機能はない。そんなときは XML で管理すると便利。VBScript で XML を扱うには MSXML2.DOM…

VBScript - コンソール入力

VBScript でコンソール入力を読み取る方法をまとめます。なお、この方法は CScript.exe でスクリプトを実行したときのみ使えます。WScript.exe で実行すると、実行時エラー(ハンドルが無効です)になります。標準入力を読み取る標準入力を扱うには WScript.…

VBScript - コンソール出力

VBScript でコンソール出力する方法をまとめます。 なお、この方法は CScript.exe でスクリプトを実行したときのみ使えます。WScript.exe で実行すると、実行時エラー(ハンドルが無効です)になります。 標準出力への出力 標準出力に出力するには次の2つの…

VBScript - ファイル転送(FTP)

VBScript の標準機能にファイル転送(FTP)はありません。VBScript で FTP によるファイル転送を行うには、主に以下の方法が考えられます。FTP をサポートした ActiveX コントロールを使う有名どころだと「BASP21 FTPオブジェクト」があります。ですが、現在…

VBScript - ループの先頭に戻す(Continue)

VBScript にはループを途中で抜ける Exit ステートメントはあるのだが、ループの先頭に戻すステートメント(ほかの言語で言う Continue に相当するもの)はない。IF 文の階層を深くしていけばループの先頭に戻す必要なんてないのだが、そうするとソースが読…

VBScript - Dictionary(連想配列)の使い方

キーとアイテムをペアで管理する配列を連想配列と言う。ところが連想配列は VBScript の標準機能には含まれていない。VBScript で連想配列を使うには Dictionary オブジェクトを使う。Dictionary オブジェクトの使い方Dictionary オブジェクトのインスタンス…

VBScript - テキストメールを送信する(CDO利用)

Description:CDO(Microsoft Collaboration Data Objects)を使って VBScript からテキスト形式のメールを送信する方法を説明します。Body:CDO.Message クラスを使って、VBScript からテキストメールを送信できます。送信までの手順は以下のとおり。CDO.Mess…

VBScript - IE11 を起動する

2022年6月15日をもって Internet Explorer 11(IE11)は起動できなくなりました。現在スタートメニューから「Internet Explorer」を開くと、IE11 の代わりに Edge が起動するようになっています。(ショートカットのリンク先 C:\Program Files\Internet Expl…

VBScript - .NET Framework の ArrayList クラスを使う

VBScript から .NET Framework の ArrayList クラスを使うことができる。サイズが動的に拡大されるので、配列を使うより便利だ。ArrayList クラスのオブジェクトを生成するCreateObject 関数を使ってオブジェクトを作る。Dim list Set list = CreateObject("…

VBScript - 外部ライブラリ(7-Zip)を使って ZIP 圧縮する(おすすめ)

VBScript から zip 圧縮する方法を説明します。Windows の標準機能(圧縮フォルダー)をスクリプトから利用するのはマイクロソフト非推奨なので、代わりに外部ライブラリ(7-Zip)を利用します。事前準備7-Zip は Windows で利用できる圧縮・解凍ソフトです…

VBScript - 圧縮フォルダー機能を使って ZIP 圧縮する(マイクロソフト非推奨)

VBScript から zip 圧縮する方法を説明します。Windows の標準機能(圧縮フォルダー)を使う方法です。手順は以下の 2 ステップだけ。とても簡単です。空の zip ファイルを作る。空の zip ファイルに圧縮したいファイルやフォルダをコピーする。留意事項:こ…

VBScript - Outlook メールの本文をテキストファイルに書き出す

Outlook メッセージファイルを HTML 形式で生成するスクリプトを書いている。メール本文にどのような HTML を設定するのが適切なのか、 Outlook で作ったメッセージファイルのソースを参考にしようと思ったが、どうしたら見られるのか分からなかった。仕方が…

VBScript - Outlook を操作する

VBScript から Outlook を扱う方法を整理する。スクリプトは以下の環境で実行している。Windows 10 Pro 21H2Outlook 2016Outlook オブジェクトの生成VBScript ではCreateObject関数を使って、 ActiveX オブジェクトを作成できる。以下のコードのように Outlo…

VBScript - データの更新が即時反映されないようにする(トランザクションの使い方)

トランザクションを使うことで、データの更新がデータベースに即時反映されなくなる。これにより一連の処理が成功したら反映、そうでないなら取り消しという制御ができるようになる。トランザクションの開始と終了Connection オブジェクトが持つ次の3つのメ…