こんばんは、ルーティンで行なう簡易的な作業はスクリプトに任せたいと思い日々過ごしています。
最近よく聞くRPAほど優秀ではないですが、簡易的なキーボードマクロならVBScriptで作成出来るなんじゃないかと思い作った備忘録です。
https://nw-engineer.work/rpaVBS キーボードマクロ作成方法
VBSciptはWindows標準で使用できるスクリプトです。メモ帳さえあればコードを記述した後、「名前を付けて保存」の時にファイル名を拡張子.vbsにすれば作成が可能です。
VBSでコマンドプロンプトを開きRunasを実行
このスクリプトは、コマンドプロンプトでrunasコマンドを打つVBSスクリプトです。
runasコマンドは、権限を操作するコマンドで管理者権限としてコマンドを実行できます。下記の記事を例にキーボードマクロで作成します。
しかし、runasコマンドは手入力が少し多く面倒です。runasコマンドを実行する工程は下記になります。
- コマンドプロンプトを開く
- runasコマンドで管理者権限を実行するユーザー名を入力
- Enter
- パスワードを入力
- Enter
- 管理者権限のコマンドプロンプトが開く
これをVBSワンクリックで実行するキーボードマクロが下記になります。
Option Explicit
Dim WshShell
Set WshShell=Wscript.CreateObject(”Wscript.Shell”)
WshShell.Run(“cmd”)
WScript.Sleep(500)
WshShell.SendKeys(“runas /user:○○\administrator cmd”)
WshShell.SendKeys(“{ENTER}”)
WScript.Sleep(2500)
WshShell.SendKeys(“password“)
WScript.Sleep(500)
WshShell.SendKeys(“{ENTER}”)
WshShell.SendKeys(“exit”)
WshShell.SendKeys(“{ENTER}”)
VBSコードの説明
Dimで変数を宣言。Setで変数にオブジェクトを作成。
WshShell.Run(“cmd”) ・・・コマンドプロンプトを開きます。
WScript.Sleep(500) ・・・500ミリ秒待ちます。
WshShell.SendKeys(“”)・・・キーを送信します。
上記を使用すれば、キー送信→待つ→キー送信→待つ・・・の繰り返しが可能になり簡易的なVBSによる自作キーボードマクロが完成します。
コマンドプロンプトだけではなく、ウェブブラウザでもキーボード送信が利用可能です。うまく利用して作業を簡素化させましょう!
それではー!
返信が大分遅れて申し訳ありません。
VBSを使用してCtrl+Alt+Delキーを送信する方法はありません。ユーザーが物理的にキーボードで操作する必要があります。
セキュリティの一環としてプログラム設計されており、自動化スクリプトやマクロからの操作は制限されているみたいです。
お役に立てず申し訳ございません。今後ともよろしくお願いします。
ctrl alt delのキー送信を行うことも出来ますか?