◆これまでに感じたこと
これまでにいくつかのツールを作成してみた結果、VBScript は日々の業務作業を効率化するうえで非常に有効な手段だと感じています。
特別な開発環境を用意せずに Windows 標準機能だけで自動化処理を実装できる点は、運用作業や定型業務との相性が良く、今後も活用の幅を広げながら理解を深めていきたいと考えています。
◆本コードで実現していること
今回は、自動的にメールを作成する処理について、検証内容を紹介します。
G列に〇の有無によって本文の内容を異なるようにするように処理を追加しました。
<顧客管理一覧>

<メールの出力結果>

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
' ★★★★★★★★★★★★★★★★★★★★★★★★★★★
' ★ ここから Excel の B3 を読み込んでクリップボードへ ★
' ★★★★★★★★★★★★★★★★★★★★★★★★★★★
Dim xl, wb, ws, text1, textAll
' Excel 起動
Set xl = CreateObject("Excel.Application")
xl.Visible = False
' ファイルを開く
Set wb = xl.Workbooks.Open("C:\Users\sasio-tech.SASIO.JP\Documents\メール文自動作成\作業環境リスト.xlsx")
' シート1 の B3 を取得
Set ws = wb.Sheets(1)
text1 = ws.Cells(3, 2).Value ' ← B3
' ★★★ ここから追加:G3 をチェックして本文を切り替える ★★★
Dim textBody
If ws.Cells(3, 7).Value = "〇" Then
textBody = "当日連絡をしなければなりません"
Else
textBody = "ここに長文が表示されます"
End If
' ★★★ 追加ここまで ★★★
' Excel を閉じる
wb.Close False
xl.Quit
' 結合(B3 → 改行 → 長文)
textAll = text1 & "様" & vbCrLf & textBody
MsgBox textAll
' クリップボードに本文を入れる(改行対応版)
Dim clipCmd
clipCmd = "cmd /c echo(" & Replace(textAll, vbCrLf, "^& echo(") & " | clip"
shell.Run clipCmd, 0, True
WScript.Sleep 300
' 貼り付け(Ctrl + V)
shell.SendKeys "^v"
WScript.Sleep 300
' 下書き保存
shell.SendKeys "%f"
WScript.Sleep 300
shell.SendKeys "d"
MsgBox "下書き保存されました"
