テキストエディタを用意する

テキストエディタとは「テキスト」を編集するためにプログラムのこと。ワープロと似ていますが、印刷やアウトライン表示など機能を省くことで軽快な動作を実現します。HTMLファイルを編集するのにFrontPageやHomePageBuilderを使っていた方も、HTAを作るならぜひテキストエディタを用意しましょう。
なおWindows98/Meには「メモ帳」という簡易テキストエディタが付属していますが、フリーソフトやシェアウェアのものとは操作性が違います。スクリプトを組むなら自分の好みにあったテキストエディタを見つけておきたいものです。

ちなみに私は「秀丸」を使っています。
HTMLタグやスクリプトで使われる単語(予約語)の色を変えたり、入力するファイルの種類に応じて動作を変更できるなど、プログラムやスクリプト作成に適しています。

注:秀丸はシェアウェア(4,000円)ですが、機能も期間の制限もなく試用できます。
とはいっても、お金を払わなくていいと言っているわけではありません。
気に入ったらちゃんと作者さんに送金しましょう。

他には「EmEditor」や「vivi」なんてのもあります。
ベクターテキストエディタあたりで見つけてください。

前のページに戻る このページの先頭に戻る



記述するスクリプトを決める

HTAはJScript (Microsoft製のJavaScript互換スクリプト)およびVBScript(Microsoft Visual Basic Scripting Edition)を使って記述します。
両方書くこともできますが、これから始めるならメインのスクリプトを決めた方がよいでしょう。
はっきり言えば、JavaScriptのルールで記述できるJScriptの方が参考書が多く、便利です。

前のページに戻る このページの先頭に戻る



動作確認

まずはHTAを利用できるかの確認です。
中身を何も書かずに、拡張子が「.hta」のテキストファイルを作成、そしてダブルクリックして実行してください。

記述コード
1
2
3





下の図のようなダイアログが表示されればOKです。
確認できたら、ダイアログ右上の閉じる(×)ボタンを押して終了し、次に進みましょう。
Windows98で何も表示されない場合は、WSHの機能がインストールされていない可能性があります。
コントロールパネルの「アプリケーションの追加と削除」で確認しましょう。



前のページに戻る このページの先頭に戻る



HTAを記述する

続いて簡単なプログラムを書いてみましょう。
これがHTAの基本となるコードです。

sample01.hta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<HTML>
<HEAD>
<TITLE>タイトル</TITLE>

<HTA:APPLICATION
APPLICATIONNAME="pctool01"
BORDER="dialog"
CAPTION="yes"
ICON="Mycomp51.ico"
ID="oHTA"
SCROLL="no"
SELECTION="yes"
SINGLEINSTANCE="yes"
STYLE="raised"
VERSION="1.00"
/>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="VBScript">
</SCRIPT>
</BODY>
</HTML>


基本的にはHTMLですが、5〜16行目は<HTA>タグ(<HTA>タグの詳細はこちら)です。
<HTA>タグを記述することで、外見と操作性をカスタマイズしています。
なお、<HTA>タグは省略しても、それぞれの規定値が自動的に補完されます。
まあ普通はこのぐらい書いておけばいいんじゃないでしょうか。

19〜22行目は<BODY>タグのエリアです。テキストやオブジェクトはこのエリアに記述します。
20〜21行目は<SCRIPT>タグのエリアです。スクリプトはこのエリアに記述しましょう。

ただ現時点では<BODY>タグ内に何も記述していないため、ダイアログの中身は真っ白のままです。



前のページに戻る このページの先頭に戻る



閉じるボタンを追加する

それではダイアログを閉じるボタンとスクリプトを追加してみましょう。
まずボタンはHTMLの<INPUT>タグを使います。 (<INPUT>タグの詳細はこちら

これを元に、今回は<INPUT type="button" name="cmdClose" value="キャンセル">という行を<BODY>タグに記述します。
実際にはこんな感じ→

sample01.hta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<HTML>
<HEAD>

<TITLE>タイトル</TITLE>
<HTA:APPLICATION
APPLICATIONNAME="pctool01"
BORDER="dialog"
CAPTION="yes"
ICON="Mycomp51.ico"
ID="oHTA"
SCROLL="no"
SELECTION="yes"
SINGLEINSTANCE="yes"
STYLE="raised"
VERSION="1.00"
/>

</HEAD>
<BODY>
<INPUT type="button" name="cmdClose" value="キャンセル" >
<SCRIPT LANGUAGE="VBScript">
</SCRIPT>
</BODY>
</HTML>


しかし、ボタンはあくまでも入力用フォームであって、ダイアログを閉じる機能は持っていません。 ボタンにダイアログを閉じる機能を持たせるには、対応するスクリプトを記述しなければならないのです。
VBScriptの場合、<INPUT>タグのnameで指定したオブジェクト名cmdCloseに続いて_OnClick()を付加したcmdClose_OnClickというプロシージャ(プロシージャの詳細はこちら)を作ります。
そして作成したcmdClose_OnClickの中にwindow.Closeというプロパティ(プロパティの詳細はこちら)を記述します。

なおスクリプト未対応のWWWブラウザでは、スクリプトの部分をエラーと認識してしまいますので、 <SCRIPT>タグ内に
<!--

// -->
という行を追加し、このエリアにスクリプトを記述してください。これでエラーを防ぐことができます。

またスクリプト未対応のWWWブラウザにも対応するために、<NO SCRIPT>タグを記述します。
<NO SCRIPT>タグ内にスクリプトを使っていることを明記し、代替ページなどを示しておきましょう。

またプロシージャ内ではインデント(インデントの詳細はこちら)を行なってください。

sample01.hta
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
31
32
33
34
35
<HTML>
<HEAD>

<TITLE>タイトル</TITLE>
<HTA:APPLICATION
APPLICATIONNAME="pctool01"
BORDER="dialog"
CAPTION="yes"
ICON="Mycomp51.ico"
ID="oHTA"
SCROLL="no"
SELECTION="yes"
SINGLEINSTANCE="yes"
STYLE="raised"
VERSION="1.00"
/>

</HEAD>
<BODY>
<INPUT type="button" name="cmdClose" value="キャンセル" >
<SCRIPT LANGUAGE="VBScript">
<!--
Sub cmdClose_OnClick()

     window.Close

End Sub
// -->
</SCRIPT>
<NOSCRIPT>
このページはScriptを使っています。こちらのページを参照してください。
This page is Written by Script. Please refer the page.
</NOSCRIPT>
</BODY>
</HTML>




前のページに戻る このページの先頭に戻る



ボタンの位置を指定する

前項目では<INPUT>タグを使って終了ボタンを作成しましたが、単に<BODY>タグ内に記述しただけではボタンがダイアログの左上に配置されてしまいます。そこで改行と段落指定を使ってボタンの位置を変更してみましょう。

改行には<BR>タグ(<BR>タグの詳細はこちら)および<HR>タグ(<HR>タグの詳細はこちら)が有効です。

次に<P>タグか<DIV>タグを使って、ボタンをダイアログの右側に寄せます。
<INPUT type="button" name="cmdClose" value="キャンセル"><P align="right"></P>でくくります。

sample01.hta
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
31
32
33
34
35
36
37
38
<HTML>
<HEAD>

<TITLE>タイトル</TITLE>
<HTA:APPLICATION
APPLICATIONNAME="pctool01"
BORDER="dialog"
CAPTION="yes"
ICON="Mycomp51.ico"
ID="oHTA"
SCROLL="no"
SELECTION="yes"
SINGLEINSTANCE="yes"
STYLE="raised"
VERSION="1.00"
/>

</HEAD>
<BODY>
<BR><BR><BR><BR><BR><BR><BR><BR><BR>
<P align="right">
<INPUT type="button" name="cmdClose" value="キャンセル">
</P>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub cmdClose_OnClick()

     window.Close

End Sub
// -->
</SCRIPT>
<NOSCRIPT>
このページはScriptを使っています。こちらのページを参照してください。
This page is Written by Script. Please refer the page.
</NOSCRIPT>
</BODY>
</HTML>


なお<P>タグと<DIV>タグでは上下の余白の幅が異なります。どちらを使っても構いませんが、混在させるのはミスにつながりますので、どちらか一方に固定した方がよいでしょう。



前のページに戻る このページの先頭に戻る



ウィンドウの外観を変える

HTAのウィンドウ(ダイアログ)は最初からアプリケーションのような外観をもっていますが、色とサイズを変えることで、さらにアプリケーションらしく見せることができます。

まず色は<BODY>タグを変更します。(<BODY>タグの詳細はこちら
今回は背景色を、他のアプリケーションと同じ色(カラーコード #D4D0C8)にします。
19行目の<BODY><BODY bgcolor="#D4D0C8">に置き換えます。

sample01.hta
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
31
32
33
34
35
36
37/FONT>
<HTML>
<HEAD>

<TITLE>タイトル</TITLE>
<HTA:APPLICATION
APPLICATIONNAME="pctool01"
BORDER="dialog"
CAPTION="yes"
ICON="Mycomp51.ico"
ID="oHTA"
SCROLL="no"
SELECTION="yes"
SINGLEINSTANCE="yes"
STYLE="raised"
VERSION="1.00"
/>

<BODY bgcolor="#D4D0C8">
<BR><BR><BR><BR><BR><BR><BR><BR><BR>
<P align="right">
<INPUT type="button" name="cmdClose" value="キャンセル">
</P>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub cmdClose_OnClick()

     window.Close

End Sub
// -->
</SCRIPT>
<NOSCRIPT>
このページはScriptを使っています。こちらのページを参照してください。
This page is Written by Script. Please refer the page.
</NOSCRIPT>
</BODY>
</HTML>




前のページに戻る このページの先頭に戻る



ウィンドウのサイズを変える

続いてウィンドウのサイズの変更方法です。ウィンドウが必要以上に大きいと使いにくくなりますし、逆に小さすぎるとフォームが表示されません。
そこでwindow.resizeToというプロパティ(プロパティの詳細はこちら)を使って、ウィンドウを適切なサイズに変更しましょう。

手順は、<SCRIPT>タグ内にwindow.resizeToと記述し、その後に横ドット数と縦ドット数を記述します。デフォルトでは横864ドット、縦609ドットなので、フォームの数に応じて変更してください。
今回は縦640ドット、横480ドットに指定しますので、window.resizeTo 640,480と記述します。

sample01.hta
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
31
32
33
34
35
36
37
38
<HTML>
<HEAD>

<TITLE>タイトル</TITLE>
<HTA:APPLICATION
APPLICATIONNAME="pctool01"
BORDER="dialog"
CAPTION="yes"
ICON="Mycomp51.ico"
ID="oHTA"
SCROLL="no"
SELECTION="yes"
SINGLEINSTANCE="yes"
STYLE="raised"
VERSION="1.00"
/>

<BODY bgcolor="#D4D0C8">
<BR><BR><BR><BR><BR><BR><BR><BR><BR>
<P align="right">
<INPUT type="button" name="cmdClose" value="キャンセル">
</P>
<SCRIPT LANGUAGE="VBScript">
<!--
window.resizeTo 640,480
Sub cmdClose_OnClick()

     window.Close

End Sub
// -->
</SCRIPT>
<NOSCRIPT>
このページはScriptを使っています。こちらのページを参照してください。
This page is Written by Script. Please refer the page.
</NOSCRIPT>
</BODY>
</HTML>


ちなみに、window_onloadというプロシージャを作り、その中に処理を記述するとアプリケーションの起動時に自動的に実行させることができます。

sample01.hta
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
31
32
33
34
35
36
37
38
39
40
41
42
43
<HTML>
<HEAD>

<TITLE>タイトル</TITLE>
<HTA:APPLICATION
APPLICATIONNAME="pctool01"
BORDER="dialog"
CAPTION="yes"
ICON="Mycomp51.ico"
ID="oHTA"
SCROLL="no"
SELECTION="yes"
SINGLEINSTANCE="yes"
STYLE="raised"
VERSION="1.00"
/>

<BODY bgcolor="#D4D0C8">
<BR><BR><BR><BR><BR><BR><BR><BR><BR>
<P align="right">
<INPUT type="button" name="cmdClose" value="キャンセル">
</P>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub window_onload()

     window.resizeTo 640,480

End Sub

Sub cmdClose_OnClick()

     window.Close

End Sub
// -->
</SCRIPT>
<NOSCRIPT>
このページはScriptを使っています。こちらのページを参照してください。
This page is Written by Script. Please refer the page.
</NOSCRIPT>
</BODY>
</HTML>


前のページに戻る このページの先頭に戻る



ウィンドウの位置を指定する

前のページに戻る このページの先頭に戻る



前のページに戻る このページの先頭に戻る



前のページに戻る このページの先頭に戻る

記述コード
1
2
3
4
5
6
7
8
9
<HTML>
<HEAD>
<TITLE>HTAを記述する</TITLE>
</HEAD>

<BODY>

フォームやテキストはここに記述します。

<SCRIPT LANGUAGE="JavaScript">
JavaScriptはここに記述します
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
VBScriptはここに記述します
</SCRIPT>

</BODY>
</HTML>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
HTAタグ記述例
<HTML>
<HEAD>
<TITLE>タイトル</TITLE>

<HTA:APPLICATION
APPLICATIONNAME="sample01"
BORDER="dialog"
CAPTION="yes"
CONTEXTMENU="yes"
ICON="sample.ico"
ID="oHTA"
INNERBORDER="yes"
MAXIMIZEBUTTON="no"
MINIMIZEBUTTON="no"?
NAVIGABLE="no"
SCROLL="no"
SCROLLFLAT="no"
SELECTION="yes"
SHOWINTASKBAR="yes"
SINGLEINSTANCE="yes"
STYLE="raised"
SYSMENU="yes"
VERSION="1.00"
WINDOWSTATE="normal" />


</HEAD>
<BODY>
<SCRIPT LANGUAGE="VBScript">ここにスクリプトを記述する </SCRIPT>
</BODY>
</HTML>