
TechNet コラムへようこそ。このコラムでは、よく寄せられるシステム管理スクリプトに関する質問に Scripting Guys がお答えします。システム管理スクリプトについて質問がある場合は、scripter@microsoft.com (英語のみ) までお送りください。すべての質問に回答することはできないかもしれませんが、可能な限り対応いたします。
Hey, Scripting Guy! アーカイブも忘れずにチェックしてください。
今日の質問 : HTA ウィンドウをクリアする方法はありますか
| Q | Scripting Guy さん、よろしくお願いします。HTA ウィンドウをクリアする方法はありますか。 -- DF | |
| A | DF さん、こんにちは。実のところ、Scripting House を 1 つでも見たことのある方なら、ウィンドウをクリアする方法を知っているかどうか、我々に質問することはなかったでしょう。我々の中にはウィンドウのクリア方法を知らない者がいるのは明らかなのですから (仲間の弁護をさせていただくと、ぴかぴかに磨いたクリアな窓に正面衝突しないようにとの小鳥達への配慮なのでしょう。そもそも、我々はじゅうたんに頻繁に掃除機をかけるような人種でありませんが、小鳥がじゅうたんに激突するのは見るにしのびません)。 まず、次の 2 つのスクリプトを使って説明します。1 つはウィンドウ全体をクリアするスクリプト、もう 1 つはウィンドウの一部のみをクリアするスクリプトです。なぜ、2 つもスクリプトが必要なのかと疑問に思うかもしれませんが、それについてはまた後で説明します。お楽しみを台無しにしないためにね。 まず、簡単な HTA から始めましょう。ボタンを 1 つクリックすると HTA ウィンドウ全体がクリアされます。
<html>
<head>
<title>HTA Test</title>
<HTA:APPLICATION
ID="objTest"
APPLICATIONNAME="Clear Window"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head>
<SCRIPT LANGUAGE="VBScript">
Sub ClearWindow
document.body.InnerHTML = ""
End Sub
</SCRIPT>
<body>
<input id=runbutton type="button" value="Clear" onClick="ClearWindow">
</body>
そうです、これは、非常にシンプルなコードです。最初に、次のコード行を使用してウィンドウのタイトルを指定します。 <title>HTA Test</title> 他にも、HTA 自体のプロパティを設定するためのオプションのコード行がありますが、今日は、それらについては詳しく取り上げません。 詳しい情報については、「HTA Developers Center」(英語)、または Scripting Week 3 の Web キャスト「Going Beyond the Command Line with HTML Applications」(英語) をご覧ください。 ご覧のように、この HTA は単一の要素、すなわち、[Clear] ボタンで構成されています。 <input id=runbutton type="button" value="Clear" onClick="ClearWindow"> ボタンをクリックすると、ClearWindow というサブルーチンが起動します。 サブルーチンの中身はどうなっているのでしょうか。特別な仕掛けは何もありません。document.body オブジェクトの InnerHTML プロパティに何も設定しない ("") だけです。 document.body.InnerHTML = "" その結果、HTA ウィンドウがクリアされます。HTA ウィンドウをクリアしたければ、document.body.InnerHTML プロパティを空の文字列に設定するだけです。 しかし、その前に、この方法で、HTA ウィンドウが実際にどのようにクリアされるのかを説明したいと思います。たとえば、次の図は、ボタンをクリックする前の HTA の外観です。 ![]()
![]()
改訂したコードは次のとおりです。
<html>
<head>
<title>HTA Test</title>
<HTA:APPLICATION
ID="objTest"
APPLICATIONNAME="Clear Window"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head>
<SCRIPT LANGUAGE="VBScript">
Sub ClearWindow
DataArea.InnerHTML = ""
End Sub
</SCRIPT>
<body>
<input id=runbutton type="button" value="Clear" onClick="ClearWindow">
<p>
<span id=DataArea>This is the data area.</span>
</body>
このコードでは、主に 2 つの作業を行います。まず、<span> タグを追加し、このスパンに DataArea という ID を割り当てます。スパンとは、ご存知のように動的に変更可能な HTA の名前付きの範囲です。たとえば、スクリプトを使用してテキストや HTML 書式設定をスパンに追加できます。 また、すべてのテキストおよび HTML 書式設定のスパンをクリアできます。次に、HTA に加えた 2 つ目の変更ですが、ウィンドウ全体ではなく DataArea スパンのみをクリアするように ClearWindow サブルーチンを変更しました。
Sub ClearWindow
DataArea.InnerHTML = ""
End Sub
なぜこのように変更したのでしょうか。次の図は、改訂した HTA が初めて読み込まれるときの外観です。 ![]()
ボタンをクリックすると、HTA の外観は次のようになります。 ![]()
そしてもちろん、この HTA に小鳥が激突することもありません。これで心配事が 1 つ減りました。 |
Hey, Scripting Guy!- アーカイブもチェックしてください。