◆これまでに感じたこと
これまでにいくつかのツールを作成してみた結果、VBScript は日々の業務作業を効率化するうえで非常に有効な手段だと感じています。
特別な開発環境を用意せずに Windows 標準機能だけで自動化処理を実装できる点は、運用作業や定型業務との相性が良く、今後も活用の幅を広げながら理解を深めていきたいと考えています。
◆本コードで実現していること
今回は、自動的にメールを作成する処理について、検証内容を紹介します。
本記事で扱うコードでは、メールソフト「Becky!2」を自動操作し、新規メールの作成から下書き保存までを一連の流れとして実行します。
初期段階の検証として、差出人や件名、本文は固定値を使用したシンプルな構成とし、まずは自動メール作成の基本的な動作を確認できる内容としています。
人がキーボードで操作する代わりに、スクリプトから Becky!2 を起動し、画面操作を順番に再現することでメール作成処理を自動化しています。
また、実際の業務フローをイメージしやすいよう、Power Automate のような動きに見えるよう処理速度を意図的に調整している点も、本検証の特徴です。
<メールの出力結果>

Option Explicit
Dim shell
Set shell = CreateObject("WScript.Shell")
' Becky! を起動
shell.Run """C:\Program Files (x86)\RimArts\B2\B2.exe""", 1, False
' 起動待ち
WScript.Sleep 2000
' Becky! をアクティブにする(タイトルは環境に合わせて変更)
shell.AppActivate "Becky!"
WScript.Sleep 300
' メール(M) → 新規メールの作成(N)
shell.SendKeys "%m" ' Alt + M
WScript.Sleep 300
shell.SendKeys "c" ' 新規メールの作成(N)
WScript.Sleep 800
' 差出人を入力
shell.SendKeys "sasio@example.com"
WScript.Sleep 300
' 件名に移動(とりあえず TAB 1回にしてみる例)
shell.SendKeys "{TAB}"
WScript.Sleep 300
' 件名入力(検証用に英数字だけ)
shell.SendKeys "test_mail_subject_123"
WScript.Sleep 300
' 本文へ
shell.SendKeys "{TAB}"
WScript.Sleep 300
' ★ 本文に1文字入れる(重要)
shell.SendKeys " "
WScript.Sleep 200
' クリップボードに本文を入れる
shell.Run "cmd /c echo ここに長文が表示されます| clip", 0, True
WScript.Sleep 300
' 貼り付け(Ctrl + V)
shell.SendKeys "^v"
WScript.Sleep 300
' 下書き保存
shell.SendKeys "%f"
WScript.Sleep 300
shell.SendKeys "d"
MsgBox "下書き保存されました"
