2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

« MHTMLファイルのファイル名に#があると、IEで開けない。(障害) | トップページ | Excel 4.0 マクロを調べる。 »

2007年9月 8日 (土)

WScript.ShellのAppActivate()で数字のタイトルが指定できない。

数字のタイトルは、プロセスIDと解釈されて、使えません。:-(

VBA/VBなどのAppActivate()は、型が文字列か数値かで判別します。

なら、Excel.Applicationで代替できるか?

残念ながら、Excel.Applicationには、SendKeys()は有っても、AppActivate()は有りません。:-(

ところが、Excel 4.0 マクロにAPP.ACTIVATE()があるようです。:-p

VBScriptでは、Excelを使って、

Set Excel=CreateObject("Excel.Application")
r=Excel.ExecuteExcel4Macro("APP.ACTIVATE(""123"")")

成功は、r=True
失敗は、r=Falseでなく、TypeName(r)="Error" または、VarType(r)=10 'vbError

PowerShellでは、VBを使って、

param($title)
[void][Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")
$erroractionpreference="silentlycontinue"
[Microsoft.VisualBasic.Interaction]::AppActivate($title)
$r=$?
$erroractionpreference="continue"
$r

成功は、True
失敗は、False

123ならプロセスID、"123"ならタイトル。

因みに、Excel 4.0 マクロには、SEND.KEYS()もありますが、SendKeys()があるので、使うメリットがありません。

« MHTMLファイルのファイル名に#があると、IEで開けない。(障害) | トップページ | Excel 4.0 マクロを調べる。 »