| ||
| ||
| ||
前ページへ [ステップアップ WSHへ戻る] 次ページへ |
Level.13 せっかくだからちょっと見やすく加工してみる | ||||||||||||||||
前回のLevel.12ではLevel.10までのスクリプトをHTMLと合体し、HTA(HTML Application)にしてみました。Level.10までは入力にInputBox、出力はMsgBoxかテキストファイルと簡素なものでしたが、HTAにすることでWindowsのアプリケーションっぽいインタフェースになったかと思います。 後は、そうですねぇ...メニューバーを付けるとか、ウィンドウ左上のアイコンを作るとか、そういう部品を揃えていけば、さらにそれっぽく見えますね。でも、そこまでやるとかなり凝った作りになってしまいますので、もうちょっと手軽に見た目を変える修正を施して見ましょう。 まずは、検索文字の色を変えることで、検索にヒットした部分を一見して分かるようにして見ます。
■ 文字列置換の方法ところで、スクリプトも100行を越え長くなって来たこともあり、全体を載せるとかえって見難くなってしまいそうですので、ここからは修正ポイントのみを紹介し、スクリプト全体はダウンロードできるようにしました。 さて、本題の検索文字を赤くする方法ですが、HTAは要はHTMLですのでWebページを作成したことがある方なら至って簡単。そう、<font>タグを使えばいいだけなのです。 検索文字列が「フォルダ」なら、これを「<font color=#FF0000>フォルダ</font>」といった文字列に変えてあげれば良いだけですね。 文字列の置換には、Regular Expressionオブジェクト(RegExp)を使います。これはすでに文字列検索で使用しているオブジェクトですので、新たに定義し直す必要はありません。 まず、RegExpオブジェクトを使った簡単な文字列置換の方法を見てみましょう。
上記のサンプルスクリプトでは、文字列(変数moji)内の"2003"を"2004"に変更しています。 前半部分を簡単に説明しますと、1〜2行目ではRegExpオブジェクトの定義と検索オプションの指定。4行目は検索用の文字列の定義、5行目は検索文字列"2003"をRegExpに指定しています。ここまでは、今までやっていた検索と変わりませんね。 文字列置換のポイントは6行目で、Replaceメソッドによって変数moji内にある、"2003"という文字列を"2004"に変更して結果を戻り値として返しています。他の言語を納めた方にはちょっと違和感のある書き方かもしれませんね。文字列置換に良くあるイメージは、"substr(検索対象文字列, 検索文字列, 置換文字列)"のように、3つのパラメタを伴うものですが、VBScriptでは、真ん中の部分である検索文字列がなく、Patternプロパティとして指定するようになっています。 それでは、実際のスクリプトを修正してみましょう。
■ 検索対象文字列を赤くする修正は至って簡単です。先に言いました通り、RegExpオブジェクトも既に検索用に定義済みですし、それに伴うオプションもそのままの状態で変更無しです。また、検索文字列を指定するPatternプロパティも、画面から入力された値を既にセットしていますので、これもこのままですね。ということで、残りはReplaceメソッドを使った置換文を1行書くだけで良さそうです。 では、置換文を何処に書くか?ですが、これは画面表示用の文字列を作成している部分の直前で良いでしょう。つまり、テキストファイル処理関数(FileSrh())内の下記の部分になります。行数で言うと、22行目辺りからですね。
追加したのは23〜24行目です。1行で書くこともできますが、ちょっと長くなるので置換文字列を定義する行と、実際の置換処理する行に分けてみました。 内容は先程の説明で十分かとは思いますが、一応コメントしておきますと、23行目で変数repStrに置換文字列を入れています。置換文字列は検索文字列を<font>タグで括るので、検索文字列が格納されたregEx.Patternを括ってみました。後は、24行目でReplaceメソッドを使って、テキストファイルから読み込んだ行(tmpLine)内にある、検索文字列を23行目で定義した置換文字列(repStr)で置換し、結果をtmpLineに戻してあげています。
■ さっそく実行さて、結果を見てみましょう。level13.htaをダブルクリックし、デフォルト入力のまま「検索」ボタンをクリックして下さい。
前回のLevel12と比較してみましょう。
どうですか?、ちょっとした修正ですが、結構見易くなっていますね。さらに、文字列置換は行いませんが、これと似たような修正として、ファイル名を<a>タグで括り実ファイルへのリンクを張るというのも使えそうです。
修正行は17行目のみで、元々<b>タグで括っていたものを、<a>タグでリンクにしただけです。 さて、今回はここまでです。次回も、今回同様ちょっとした修正でできる見た目の変更を紹介して見ようと思います。それでは、次回までご機嫌よう(笑。 |
前ページへ [ステップアップ WSHへ戻る] 次ページへ | |
※全ては自己責任でお願いします。 ※当サイトに関するご連絡は tomomo_c@hotmail.com までお願いします。 |
最終更新日 2004.10.28 |