vbs/vba

VBS キーボードマクロ作成方法 Windows 操作 備忘録

こんばんは、ルーティンで行なう簡易的な作業はスクリプトに任せたいと思い日々過ごしています。

最近よく聞くRPAほど優秀ではないですが、簡易的なキーボードマクロならVBScriptで作成出来るなんじゃないかと思い作った備忘録です。

https://nw-engineer.work/rpa

VBS キーボードマクロ作成方法

VBSciptはWindows標準で使用できるスクリプトです。メモ帳さえあればコードを記述した後、「名前を付けて保存」の時にファイル名を拡張子.vbsにすれば作成が可能です。

VBSでコマンドプロンプトを開きRunasを実行

このスクリプトは、コマンドプロンプトでrunasコマンを打つVBSスクリプトです。

runasコマンドは、権限を操作するコマンドで管理者権限としてコマンドを実行できます。下記の記事を例にキーボードマクロで作成します。

runasコマンドの使い方 管理者権限でアプリケーションを実行する方法runasコマンドの使い方 管理者権限でアプリケーションを実行する方法。パソコンの管理者権限は色々なアプリケーションが実行可能ですが、実際の会社だと普段はユーザー権限で仕事をします。管理者権限だと実行不可のアプリケーションの場合、サインアウトして管理者権限で実行しないといけない場合があります。 ...

しかし、runasコマンドは手入力が少し多く面倒です。runasコマンドを実行する工程は下記になります。

  1. コマンドプロンプトを開く
  2. runasコマンドで管理者権限を実行するユーザー名を入力
  3. Enter
  4. パスワードを入力
  5. Enter
  6. 管理者権限のコマンドプロンプトが開く

これを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}”)

下記は環境合わせて変更してください

  • 7行目: ドメイン名\ユーザー名
  • 10行目: パスワード

VBSコードの説明

Dimで変数を宣言。Setで変数にオブジェクトを作成。

WshShell.Run(“cmd”) ・・・コマンドプロンプトを開きます。

WScript.Sleep(500) ・・・500ミリ秒待ちます。

WshShell.SendKeys(“”)・・・キーを送信します。

上記を使用すれば、キー送信→待つ→キー送信→待つ・・・の繰り返しが可能になり簡易的なVBSによる自作キーボードマクロが完成します。

コマンドプロンプトだけではなく、ウェブブラウザでもキーボード送信が利用可能です。うまく利用して作業を簡素化させましょう!

それではー!

ABOUT ME
なお
フルスタックエンジニアを目指すサラリーマン。インフラ、WEBを中心に色んなIT関連情報に手を出したいと思います。
ブログランキング

POSTED COMMENT

  1. なお より:

    返信が大分遅れて申し訳ありません。
    VBSを使用してCtrl+Alt+Delキーを送信する方法はありません。ユーザーが物理的にキーボードで操作する必要があります。
    セキュリティの一環としてプログラム設計されており、自動化スクリプトやマクロからの操作は制限されているみたいです。
    お役に立てず申し訳ございません。今後ともよろしくお願いします。

  2. mc より:

    ctrl alt delのキー送信を行うことも出来ますか?

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA