連携 WindowsScriptHostを使いVBやVBA制御

VB&VBA
FROG ふろっぐ
 
  • オプション

    本文印刷

    お気に入りに追加

  • 検索

    Googlewwwjp-ia
     

    Googlewwwjp-ia
     
  • 情報

  • 関連

[VB&VBA][連携 WindowsScriptHostを使いVBやVBA制御]
  • WindowsScriptHost
  1. WSH(Windows Script Host)-VBS-スクリプト言語
  2. WSHはスクリプト言語VBScriptやJScriptを利用可能
  3. COMオブジェクト(Windows機能)を制御可能
  4. VBScriptの拡張子[.vbs]
  5. JScriptの拡張子[.js]
  6. [.wsf]利用可能
  7. 記述編集にはテキスト・エディタを使用する又は
  8. Office付属するMicrosoft Script Editorを使用する
  9. 実行はダブルクリックで実行可能
  10. スクリプト・ホストは以下の2種類
  11. wscript.exe(WScript)入力-ダイアログ・ボックス、出力-メッセージ・ボックスつまり「GUIベース」
  12. script.exe(CScript)入力-コマンド・プロンプト、出力-コマンド・プロンプトつまり「コンソール・ベース」
WindowsScriptHost/01.jpg
  1. 上がVBScript[.vbs]
  2. 下がJScript[.js]
test.vbs内容記述
'// 全ドライブのごみ箱を空にする。

Set shell = WScript.CreateObject( "Shell.Application" )
For Each DesktopFolder In shell.NameSpace( 0 ).Items
If DesktopFolder.Name = "ごみ箱" Then
DesktopFolder.InvokeVerb "ごみ箱を空にする(&B)"
WScript.Quit 0
End If
Next
  1. 上のtest.vbsを実行すると
test.js内容記述
// メモ帳を起動する

// 変数定義
exec = "notepad.exe";
// 検索
var shell = WScript.CreateObject( "WScript.Shell" );
shell.Run( exec );

WindowsScriptHost/03.jpg
  1. 下のtest.jsを実行すると
  1. 編集記述は通常はメモ帳で十分(右クリック-編集)
  2. Microsoft Script Editorでも編集可能
  1. 実際のMicrosoft Script Editor画面
  1. TestVBS.vbsを実行する
TestVBS.vbs内容記述
'// エクセルVBAマクロを実行する

set obj = CreateObject("Excel.Application")
obj.Workbooks.Open("C:\Temp\test.xls")
obj.Visible = true
obj.run "TestSub"
test.xlsのTestSub内容記述
Option Explicit


Sub TestSub()
    MsgBox "成功!"
End Sub
  1. 通常の起動だとセキュリティ設定にもよるが
  2. 図のようなメッセージが表示される
  3. .vbsからの起動だと表示されない
VB/VBAからVBScript[.vbs]やJScript[.js]を実行する方法はコチラ
VB/VBAからShell関数を使い.bat/.vbs/.jsを実行する
Shell関数で実行したアプリ(タスク)の終了を認識する関数





Production Japan Import Application. Since 1998