管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 01月 11日 19時 08分 48秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

HTAの話についてまとめたので、アップしておきます。

To: 【おじさま】 さん

>日本語版が出たら入れてみたい気がしますが、このところ WSH 自体に
>あまり触れていません(WSH に限らずプログラミング全体に)。

私も一時遠ざかっていたことがありますが、間をおくと勘が鈍りますね。

今回のバージョンアップは、マイナーバージョンアップにとどまるような気もします。
ところで、IE5.5・Windows Script5.5でバージョンがそろうのでしょうか。
#何でIE5.01・Windows Script5.1なんでしょう…。

To: abuku さん

> IE4がここまで関わっているとは知りませんでした。

世の中には、Windows98からIE4を分離するツールがあるくらいで。

>5.00.2919.6307ICだと思います。僕は友達に聞いて恐る恐るインス
>トールしてみました。あまり変化は無いと思いますが。

バージョンだけを見ても、あまり変わらないですね(^^;

> ここは思いきってWIN98にしてしまうというのはどうでしょう?

究極的にはそれがいいのかもしれませんね。

To: 悩み者 さん

>VBで入力する項目の所で、Windows標準のホップアップメニューを利用
>出来ないようにしたいのですが?どのように対応するか分かりますか?

テキストボックスで、「コピー」とかのメニューを出さないようにするということ
ですよね。
これは、APIを使って何とかする類ではなかったでしょうか。
どこかでサンプルを見たのですが、何処だったか…。
たしか、MSのサイトだったと思うのですが、VBのメニュー「ヘルプ」から飛べる
サイトを探してみてはいかがでしょうか。

To: Sido Muller さん

>>Set WSHSysEnv = WSHShell.Environment("SYSTEM")
>
> この行でやはり「書き込みできません」というエラーが出ます。

おかしいですね。SYSTEM以外のPROCESSとかではどうですか?

abuku さん 2000年 01月 11日 18時 08分 59秒
URL:http://www.geocities.co.jp/HeartLand-Gaien/6716/


こんにちは〜。

>IE4があるかないかで、Win95の"Win98度"(なんだそれは)が異なってきます。
>IE4をシェル統合でインストールしたWin95に、IE5を上書きインストールすると、
>かなりWin98+IE5環境に近づくと思います。
>IE4の有無が今回の不具合を生み出しているかどうかはわかりませんが。

 IE4がここまで関わっているとは知りませんでした。

>5.00.2314以上をお使いになることをおすすめします。
>また、現在、IE5.01というのが出ています。
>私はまだインストールしてませんので、ビルドバージョンは知りません。

5.00.2919.6307ICだと思います。僕は友達に聞いて恐る恐るインス
トールしてみました。あまり変化は無いと思いますが。

>IE5.01にはVBS5.1のスクリプトエンジンが同梱されているはずです。
>Windows Script 5.1相当のスクリプトエンジンだと思います。

 しかし、スクリプトエンジンが0.1遅いだけで文字化けが起こるとは
思えないんですけど・・。というか、因果関係は無いように思えますが
ここは藁にもすがりましょう(T_T)


 ここは思いきってWIN98にしてしまうというのはどうでしょう?
アップデートパッケージを使って・・。

#たかが文字化けだけに一万チョイもかけれられん!と言われたら
 それまでなのですが・・。

 会社にアップグレードパッケージはありませんか?>さむさん

悩み者 さん (XLG02433@nifty.ne.jp) 2000年 01月 11日 16時 51分 50秒

質問を書いてみます。分かる方教えてください。
VBで入力する項目の所で、Windows標準のホップアップメニューを利用
出来ないようにしたいのですが?どのように対応するか分かりますか?

悩み者 さん (XLG02433@nifty.ne.jp) 2000年 01月 11日 16時 46分 28秒

突然ですが、お聞きしたいことがあるのですが?VBについてです。

Sido Muller さん (kyx02150@nifty.ne.jp) 2000年 01月 11日 15時 49分 01秒

 管理人さんのサンプルをコピー&ペーストして実行してみたんですが

>Set WSHSysEnv = WSHShell.Environment("SYSTEM")

 この行でやはり「書き込みできません」というエラーが出ます。
 私のマシンの設定が悪いのかなぁ。

Sido Muller さん (kyx02150@nifty.ne.jp) 2000年 01月 11日 15時 44分 19秒

 管理人さん、ありがとうございます。

 私がきちんと読んでなかったんですね。(^_^;)
 リファレンスの方を読んでみたんですが、こちらも読み落としていたかも。
 早速試してみます。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 01月 11日 15時 02分 33秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

To: Sido Muller さん

>>Set WSHEnv = WshShell.Environment '1.WshEnvironmentオブジェクトを作成
>のところで、「書き込み禁止です」というエラーが出ます。

Lesson11を隅から隅まで読むと、実は解答があります。

以下、Lesson11から…
Win9xでは、Environmentプロパティに指定できる引数は、"Process"だけ(よって省略可)
なのですが、NTではそのほかに、"System"、"User"、"Volatile"の3つの引数が指定でき
るのです。

Set WSHShell = WScript.CreateObject("Wscript.Shell")
Set WSHSysEnv = WSHShell.Environment("SYSTEM")
MsgBox WSHSysEnv("NUMBER_OF_PROCESSORS")

のように、NTではEnvironmentプロパティの引数を省略できません。
#「指定できるのです」ではなく、「指定しなければなりません」としておくべきかも。

【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 2000年 01月 11日 14時 36分 07秒
URL:http://homepage1.nifty.com/~tomiyama/

管理人むたぐち さん

>実は知ってました(^^;

実は多分既にご存知だろうなと思っていました(^^;)。

日本語版が出たら入れてみたい気がしますが、このところ WSH 自体に
あまり触れていません(WSH に限らずプログラミング全体に)。

連休も家族サービスで終わってしまいましたし。

Sido Muller さん (kyx02150@nifty.ne.jp) 2000年 01月 11日 11時 39分 42秒

 自己レスです。
 リファレンスをみると、98/95、Win2000は有るのですが、NT4.0の記述はありません。
 どうもNT4.0ではサポートされてないような感じです。

Sido Muller さん (kyx02150@nifty.ne.jp) 2000年 01月 11日 10時 26分 05秒

 VBScriptを使うと、マシンの管理が自動化できそうで、興味があったんですが、なかなか良い参考書を見つけられず、今まで手を着けていませんでした。
 ここの掲示板は具体的で、理解しやすくありがたいです。
 早速質問なんですが、「Lesson11 環境変数と特殊フォルダ」の一番最初の例題を自分のマシンで実行してみたところ、
>Set WSHEnv = WshShell.Environment '1.WshEnvironmentオブジェクトを作成
のところで、「書き込み禁止です」というエラーが出ます。
 最新のWSH5.1を入れてるのですが、どこか設定し治さないといけないでしょうか。
 マシンはNT4.0SP5です。お願いします。
 

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 01月 11日 02時 42分 38秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

久しぶりに「オブジェクトの解説」更新しました。(というか、更新自体久しぶり)
といっても、前に書いたことの焼き直しですが(^^;

それと、スクリプトも一つ追加しました。まあダウンロードして笑ってやってください。
10行のVBSに、200行のHTAのインストーラーをつけるという暴挙に出ています(爆)

このVBS自体は、前にとあるニュースグループに投稿したものです。
このスクリプトの存在意義については、付属ドキュメント参照。

To: さくら さん

>このhoge.exeにパラメータを与えて起動させてやりたいのですが、
>そのパラメータが固定されたものではなく、tStringという変数に格納されているものな>のです。

wshshell.run "C:\PROGRA~1\hoge\hoge.EXE " & tString
が正解です。

ポイントは、
・パラメータはパスの後に記述するが、そのとき空白を一つ以上
いれなければならない
・変数名を""でくくると単なる文字列として扱われてしまう。
・「+」は、文字列同士だと連結演算子となるが、数値だと足し算になる。「&」の
方が確実(これは好みです)
・VBSでは、値を参照しない場合は、引数に括弧をつけないのが基本(と思う)。
ret=wshshell.run ("C:/PROGRA~1/hoge/hoge.EXE " & tString)
のように、値(この場合終了コードかな)を参照するときに括弧をつける。

さくら さん 2000年 01月 11日 02時 14分 03秒

はじめまして、さくらと申します。
runについて少し解らないことがあったのでご教示願います。

wshshell.run("C:/PROGRA~1/hoge/hoge.EXE")
通常、hoge.exeを起動させるにはこれでよいと思います。

このhoge.exeにパラメータを与えて起動させてやりたいのですが、
そのパラメータが固定されたものではなく、tStringという変数に格納されているものなのです。
こいつをhoge.exeに渡そうと
wshshell.run("C:/PROGRA~1/hoge/hoge.EXE + tString")

wshshell.run("C:/PROGRA~1/hoge/hoge.EXE & tString")
やら
wshshell.run("C:/PROGRA~1/hoge/hoge.EXE" + "tString")
など悪あがきをしてみたのですが、どうしてもパラメータが渡せません、どのようにしたらよいのでしょうか?



管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 01月 08日 16時 16分 32秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

To: Decorative さん

>推奨されていませんが、2つのスイッチ -f -q を実行するコマンドへ追加で可能です。

そんなオプションがあるのですね。
うーん、よくご存じですね(驚嘆)

というわけで、のなのなさん、これを試してみてはいかがでしょう。

To: abuku さん

>OSはWIN98ですけど・・・これって関係ありますかね?>むたぐちさん

IE4があるかないかで、Win95の"Win98度"(なんだそれは)が異なってきます。
IE4をシェル統合でインストールしたWin95に、IE5を上書きインストールすると、
かなりWin98+IE5環境に近づくと思います。
IE4の有無が今回の不具合を生み出しているかどうかはわかりませんが。

To: 【おじさま】 さん

>Version 5.5 ベータ 1 というスクリプトエンジンが出ているようです。

実は知ってました(^^;
どうも、正規表現のオブジェクトが機能拡張されているようですよ。
WSH自体は、たぶん2.0のままです。
参考:http://msdn.microsoft.com/voices/scripting.asp

To: さむ さん

>長い質問を3回も書き込んだみたいですみませんでした。

Y2Kのせいにしてしまいましょう。(この手は今年限り)

>OSは,WIN95「4.00.950B」です。
>IE5は,IE5「5.00.2014.0216」です。

IE5のバージョンが古いですね。
エクスプローラがやたら重くなるという不具合は出ていませんか?
(これは、IE4をインストールしていないWin95では関係ないかも)

5.00.2314以上をお使いになることをおすすめします。
また、現在、IE5.01というのが出ています。
私はまだインストールしてませんので、ビルドバージョンは知りません。

>ひょっとして,IE5に付属してインストールされたとすれば,
>前のバージョンはわかりません。(そんな事があれば,ですけど)

IE5.0には、VBS5.0のスクリプトエンジンが同梱されています。
「Visual Basicスクリプトサポート」とかいうのが該当します。
Windows Script 5.0相当のスクリプトエンジンです。

IE5.01にはVBS5.1のスクリプトエンジンが同梱されているはずです。
Windows Script 5.1相当のスクリプトエンジンだと思います。

Decorative さん 2000年 01月 08日 06時 59分 15秒

管理人むたぐち さん こんにちは。

"<..> #-nオプション以外に、ダイアログ非表示のオプションとかあるのかな? <..>"
推奨されていませんが、2つのスイッチ -f -q を実行するコマンドへ追加で可能です。


さむ さん こんにちは。

IE501(<>IE5) のインストール(最小構成OK)で奇跡が起きるかも・・・って私は信じています。

abuku さん 2000年 01月 08日 00時 05分 05秒
URL:http://www.geocities.co.jp/HeartLand-Gaien/6716/


むたぐちさん、さむさん

>OSは,WIN95「4.00.950B」です。
>IE5は,IE5「5.00.2014.0216」です。

 う〜ん・・・IE僕は5.01ですけど、それは関係無いと思います。
OSはWIN98ですけど・・・これって関係ありますかね?>むたぐちさん

ああ・・・でもWSH自体は実行できてるんだよなぁ・・・
ってことはOSは関係ないのかなぁ。


>WSHは,今回インストールしたのが初めてです。(Win95だし)
>ひょっとして,IE5に付属してインストールされたとすれば,
>前のバージョンはわかりません。(そんな事があれば,ですけど)

 確かIE5をインストールすると自動的にWSHも組み込まれる、というの
を聞いたような気がします。ですが、カスタマイズ(最少構成)等ですと
もしかしたら入っていないので、なんらかの原因があるのかも知れませ
んけど・・・(多分平気だとは思うのですが)

逆に質問みたいで申し訳ないっす。


【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 2000年 01月 07日 18時 58分 06秒
URL:http://homepage1.nifty.com/~tomiyama/

Version 5.5 ベータ 1 というスクリプトエンジンが出ているようです。
でも今のところ英語版だけ。Windows2000 用は他の Windows 用と別フ
ァイルになっています。落としてみたいけれど英語版だけなので落とし
ていません。

さむ さん 2000年 01月 07日 18時 55分 17秒

(はじめに)
長い質問を3回も書き込んだみたいですみませんでした。
ぜんぜん気がつかず,本人もびっくりしてます。


to むたぐちさん

ありがとうございます。
セーフモードで立ちあげてみましたが,ダメでした。
インストールしたフォントがあるので,これをアンインストールするのと,
IEの修復は今度やってみます。(今は時間がありませんので)

to abukuさん

横レス(っていうんですね)ありがとうございました。
OSは,WIN95「4.00.950B」です。
IE5は,IE5「5.00.2014.0216」です。

WSHは,今回インストールしたのが初めてです。(Win95だし)
ひょっとして,IE5に付属してインストールされたとすれば,
前のバージョンはわかりません。(そんな事があれば,ですけど)

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 01月 07日 16時 07分 52秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

To: abuku さん

> ちょこっとしたY2K問題はありましたね。

本当にちょこっとした問題ですね。
こんなに何も起こらないと、かえって不気味な気もします。
次の注意日は2月29日ですね。とはいえ、

閏年の条件:(4で割り切れる And 100で割り切れない) Or 400で割り切れる

今年は、例外(100年に一度)の例外(400年に一度)の年なので、別に4で割り切れる
ということだけで閏年の判定をプログラムされていても誤動作しないので、
特に心配はないでしょう。(2000も00も1900も19100も4で割り切れる)
100年後の2100年(平年)は知りませんが…。

#閏年の判定は、プログラミングの論理演算の例として最適です(^^;

To: abuku さん・さむ さん

> 僕が使用しているWSHはさむさんのおっしゃるDLL群と同一のものです。
> バージョンも全て同じでした。もちろんwscript.exeも同じです。
> (サイズも更新日時も同じです)しかし文字化けは起こっていません。

調べたところ、私も同じでした。

> 1.相性が悪いアプリがインストールされている
> 2.フォントの問題

2.が怪しいですね。
フォントキャッシュが壊れているのかもしれません。
その場合は、おきまりの対処法がありまして、Windowsを一度セーフモードで立ち上げると
たいてい直ります。
ただ、今回の現象がwscript.exeのエラーダイアログだけに起こるのであれば、
これが原因ではないかもしれません。

あと、IE5が関係している可能性もあるのではないでしょうか。
IE5の修復セットアップを試されるのもいいかもしれません(根拠はあまりありません)

なるべくエラーのでないスクリプト作りを心がけていただくというのは、だめですかやっぱり(爆)

To: のなのな さん

>アプリケーションの追加と削除を自動化したいと考えています。
>プログラム更新作業の自動化を図りたいわけです。

インストールに関しては、WshShell.Runで直接setup.exeを実行するので
構わないと思います。ただ、その後ショートカットの指定などが
あるので、自動化は難しいでしょう。

もし、のなのなさん作のアプリの更新作業ということであれば、
VBのセットアッププログラム自体をカスタマイズする(たとえば、ダイアログ等を
出さずに、自動でインストールするオプションをつける)
という手もあると思います。
ただ、VB5ではセットアッププログラムsetup1.exeがvbpファイルとして編集可能で
あるのに対し、VB6ではそれができないみたいですね。(自分でアプリを配布したことが
ないので、詳しくは知りません)

VBのアプリをインストールすると、レジストリに
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\ST6UNST #1
というキーが作られます。
ST6UNST #1 のうち、6はVBのバージョン、#1は、インストール順につけられる番号です。
このキーの、UninstallStringという値の名前に入った値のデータが、
アンインストールを実行するコマンドです。

このコマンドをWshShell.Runで実行させると、アンインストールウィザードが実行されます。
C:\WINDOWS\st6unst.exe -n "C:\Program Files\アプリ\ST6UNST.LOG"
という感じです。このコマンドは、一つのアプリで固有なので、
わざわざスクリプト中で、レジストリキーを読み込んで調べる必要もないでしょう。

この後SendKeysで適当なキーコードを送ってやるといいかもしれませんが、
VBのセットアッププログラムは、「削除しますか」というダイアログに
はAlt+Yを送ればいいですが、次に共有ファイルの削除の質問がある場合とない
場合があるので、これの処理が難しいですね。

アンインストールに関しては、st6unst.exeがおこなうので、これも変更
できません。#-nオプション以外に、ダイアログ非表示のオプションとかあるのかな?
(これはVB5のアンインストーラでも基本的に同じ)
自分でアンインストーラを作るしかないでしょう。

また、exeファイルの更新というだけなら、exeファイルを上書きするだけで問題は
ないと思います。他のdllや、とくにocxの手動上書きはまずいですが。
VB5でコンパイルされたexeに、VB6でコンパイルしたものを上書き、とかも当然不可です。

いろいろ書いてみましたが、あまり役にたつことは書いてないかも(^^;

abuku さん 2000年 01月 07日 10時 51分 14秒
URL:http://www.geocities.co.jp/HeartLand-Gaien/6716/


むたぐちさん

 お久しぶりです&明けましておめでとうございます。

 ちょこっとしたY2K問題はありましたね。むたぐちさ
 んのHPは平気っぽいのですが、知り合いのページで
 掲示板の書き込み時間が100年もしくは19100年にな
 ってしまうという事がありました。すぐ直せたみたい
 ですけど(^_^;)



 さむさん

 横レス失礼します。abukuといいます。

 >なんか怪しそうな気がします。wscript.exe だけが新しくなったste51jp.exe
 >をDL&INSTしてしまったのでしょうか?
 >そしてこれ(ste51jp.exe 5.1.0.4711)のバグ?

 僕が使用しているWSHはさむさんのおっしゃるDLL群と同一のものです。
 バージョンも全て同じでした。もちろんwscript.exeも同じです。
 (サイズも更新日時も同じです)しかし文字化けは起こっていません。

 やはり他の原因が考えられるのではないでしょうか?

 例えば・・・

 1.相性が悪いアプリがインストールされている
 2.フォントの問題

 ですかねぇ・・(あくまでも可能性です)

 ・OS
 ・以前のWSHをインストールしていたか(もしくは既にインストール済み)

  ↑この二つを教えていただけませんか?

のなのな さん (ri2a-nnk@asahi-net.or.jp) 2000年 01月 06日 22時 03分 18秒

アプリケーションの追加と削除を自動化したいと考えています。
プログラム更新作業の自動化を図りたいわけです。

プロセスとしては
1 旧プログラムを削除
2 新プログラムの追加

どちらもVBで開発し、ディストリビュージョンウィザードで作成したセットアップモジュールを実行できるものです。

今現在コントロールパネルを開くステップまではわかっています。
そのあとの、該当モジュールの削除と登録をユーザーがキー入力なしで行う方法を探しています。
なんとかWSHで済ませる方法がないでしょうか。 

さむ さん (sumxx@hotmail.com) 2000年 01月 06日 18時 29分 36秒

>ど素人ですみません。もう一度教えて下さい。
>>日本語版って,何の日本語版ですか?

>もちろんWindows Script 5.1の日本語版ということですが、

>>ste51jp.exe(....これの日本語版でしょうか)

>これです。これが正常にセットアップされていれば、問題はないはずなんですが…。


昨年の暮れ,WSHのエラー表示の文字化けについて,質問させて頂いた者です。

年末年始は田舎に帰っていたので,しばらくWSHをいじっていませんでした。
そんな訳で,結果報告が遅くなってしまいました。
で,相変わらず,エラー表示が文字化けしています。

むたぐちさんから「ste51jp.exe で間違っていない」という御返事だったので,
いろいろアンインストールしたり,再インストールしたりしましたが,効果が
ありません。

ste51jp.exe を実行して,WSHがインストールされる時に表示される
「著作権表示」(?) に同時にインストールされるランタイムとかが書いてあったので
いろいろ見ていると,たいていのファイルのバージョンが「5.1.0.4615」で
(正確には,vbscript.dll, vbsjp.dll, jsjp.dll, jscript.dll
scrrun.dll, scrnjp.dll, dispex.dll, wshom.ocx, wshext.dll)
一部のファイル(scrobj.dll, scojp.dll)だけが「1.1.0.4615」になっていました。
「x.1.0.4615」は,何かの符合(もしくはバージョンの付け間違い?)でしょうか?

話がそれましたが,wscript.exe だけが,「5.1.0.4711」になっているのです。

なんか怪しそうな気がします。wscript.exe だけが新しくなった ste51jp.exe を
DL&INSTしてしまったのでしょうか?
そしてこれ(ste51jp.exe 5.1.0.4711)のバグ?

私は,WSH1カ月未満の超初心者なので,快適に動作している他のみなさんより
新しいのをDLしてしまった可能性は充分あるような気がします...。
ちなみに,
サイズ :88.0KB(90,162バイト)
作成日時:1999.10.27
更新日時:1999.11.11
です。

どなたか,私の wscript.exe が古いかどうか,教えて下さい。

さむ さん (sumxx@hotmail.com) 2000年 01月 06日 18時 29分 26秒

>ど素人ですみません。もう一度教えて下さい。
>>日本語版って,何の日本語版ですか?

>もちろんWindows Script 5.1の日本語版ということですが、

>>ste51jp.exe(....これの日本語版でしょうか)

>これです。これが正常にセットアップされていれば、問題はないはずなんですが…。


昨年の暮れ,WSHのエラー表示の文字化けについて,質問させて頂いた者です。

年末年始は田舎に帰っていたので,しばらくWSHをいじっていませんでした。
そんな訳で,結果報告が遅くなってしまいました。
で,相変わらず,エラー表示が文字化けしています。

むたぐちさんから「ste51jp.exe で間違っていない」という御返事だったので,
いろいろアンインストールしたり,再インストールしたりしましたが,効果が
ありません。

ste51jp.exe を実行して,WSHがインストールされる時に表示される
「著作権表示」(?) に同時にインストールされるランタイムとかが書いてあったので
いろいろ見ていると,たいていのファイルのバージョンが「5.1.0.4615」で
(正確には,vbscript.dll, vbsjp.dll, jsjp.dll, jscript.dll
scrrun.dll, scrnjp.dll, dispex.dll, wshom.ocx, wshext.dll)
一部のファイル(scrobj.dll, scojp.dll)だけが「1.1.0.4615」になっていました。
「x.1.0.4615」は,何かの符合(もしくはバージョンの付け間違い?)でしょうか?

話がそれましたが,wscript.exe だけが,「5.1.0.4711」になっているのです。

なんか怪しそうな気がします。wscript.exe だけが新しくなった ste51jp.exe を
DL&INSTしてしまったのでしょうか?
そしてこれ(ste51jp.exe 5.1.0.4711)のバグ?

私は,WSH1カ月未満の超初心者なので,快適に動作している他のみなさんより
新しいのをDLしてしまった可能性は充分あるような気がします...。
ちなみに,
サイズ :88.0KB(90,162バイト)
作成日時:1999.10.27
更新日時:1999.11.11
です。

どなたか,私の wscript.exe が古いかどうか,教えて下さい。

さむ さん (sumxx@hotmail.com) 2000年 01月 06日 18時 29分 13秒

>ど素人ですみません。もう一度教えて下さい。
>>日本語版って,何の日本語版ですか?

>もちろんWindows Script 5.1の日本語版ということですが、

>>ste51jp.exe(....これの日本語版でしょうか)

>これです。これが正常にセットアップされていれば、問題はないはずなんですが…。


昨年の暮れ,WSHのエラー表示の文字化けについて,質問させて頂いた者です。

年末年始は田舎に帰っていたので,しばらくWSHをいじっていませんでした。
そんな訳で,結果報告が遅くなってしまいました。
で,相変わらず,エラー表示が文字化けしています。

むたぐちさんから「ste51jp.exe で間違っていない」という御返事だったので,
いろいろアンインストールしたり,再インストールしたりしましたが,効果が
ありません。

ste51jp.exe を実行して,WSHがインストールされる時に表示される
「著作権表示」(?) に同時にインストールされるランタイムとかが書いてあったので
いろいろ見ていると,たいていのファイルのバージョンが「5.1.0.4615」で
(正確には,vbscript.dll, vbsjp.dll, jsjp.dll, jscript.dll
scrrun.dll, scrnjp.dll, dispex.dll, wshom.ocx, wshext.dll)
一部のファイル(scrobj.dll, scojp.dll)だけが「1.1.0.4615」になっていました。
「x.1.0.4615」は,何かの符合(もしくはバージョンの付け間違い?)でしょうか?

話がそれましたが,wscript.exe だけが,「5.1.0.4711」になっているのです。

なんか怪しそうな気がします。wscript.exe だけが新しくなった ste51jp.exe を
DL&INSTしてしまったのでしょうか?
そしてこれ(ste51jp.exe 5.1.0.4711)のバグ?

私は,WSH1カ月未満の超初心者なので,快適に動作している他のみなさんより
新しいのをDLしてしまった可能性は充分あるような気がします...。
ちなみに,
サイズ :88.0KB(90,162バイト)
作成日時:1999.10.27
更新日時:1999.11.11
です。

どなたか,私の wscript.exe が古いかどうか,教えて下さい。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 01月 06日 18時 15分 31秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/


To: ゲーム作成者見習中 さん

>VBスクリプトで
>ボタンを押して別のページを開けるようにするには
>どーしたらいいのでしょう。

<html><body>
<input type="button" value="Go!" id="button1">
<SCRIPT LANGUAGE="VBScript">
Sub button1_onclick()
window.navigate "http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/"
End Sub
</SCRIPT>
</body></html>

こんなかんじですか。

一般的に、タグのid要素が、スクリプトで扱うオブジェクト名になります。
あとは、Scriptタグ内に、VBと同じように、
Sub オブジェクト名_イベント名(引数)
としてイベントプロシージャを記述するだけです。
この場合は、onclickイベント(クリックした時)を使います。
windowオブジェクト(現在のウィンドウそのもの)のnavigateメソッドで、
任意のページに移動できます。

今HTAの勉強をしているので、こういう質問にも答えられるようになりました(^^;

To: X さん

>あーASPじゃなかった。。。
>聞き流して下さい m(_ _)m

フォローどうもです。
ASPはやっぱり未知の領域です。

X さん 2000年 01月 06日 14時 49分 19秒

あーASPじゃなかった。。。
聞き流して下さい m(_ _)m


X さん 2000年 01月 06日 14時 44分 20秒

VBSじゃないけどこれじゃだめなんでしょうか?
(ボタンっていうのはサブミットボタンじゃないのかな?)

<FORM ACTION="○○.asp" METHOD="POST">
<INPUT TYPE="SUBMIT" VALUE="次">
</FORM>

(○○.asp又は○○.html)


ゲーム作成者見習中 さん (ygr@mail.goo.ne.jp) 2000年 01月 06日 13時 15分 49秒

VBスクリプトで
ボタンを押して別のページを開けるようにするには
どーしたらいいのでしょう。
どなたか教えて下さい。
尚、スクリプト始めて1ヶ月ほどなので
極力かんたんにお願いします。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 01月 03日 00時 57分 52秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

To: 【おじさま】 さん

>心配した(?) Y2K もとりあえず今のところは何も起こっていないようで
>すね。

明日(1/4)に何も起こらなければ、とりあえず心配はないでしょう。
私も含め、ちょっと悲観的になりすぎだったようです。

>今年も宜しくお願いします。

こちらこそよろしくお願いします。

To: Decorative さん

>一般的な英語(スラング)なのでしょう。

ははあ、スラングですか。それなら辞書に載ってるわけがないですね(^^;

>次のスクリプト(Newbie.wsf) で *確認* しました。(笑)

WSH2.0のwsfファイルはサンプルが少ないですからね。参考になります(笑)
"私の座右の書.ハッカーズ大辞典"というProgIDを「オブジェクト解説」に
載せておきます。(嘘)

それにしてもなかなか興味深い成り立ちをもった言葉ですね。

>p.s. 別件ですが、横の Scroll Bar は <body scroll="no">...</body> で消えますヨ。

またおおぼけを… > 私
できないと思いこんでました。

【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 2000年 01月 01日 12時 09分 34秒
URL:http://homepage1.nifty.com/~tomiyama/

新年明けましておめでとうございます

心配した(?) Y2K もとりあえず今のところは何も起こっていないようで
すね。

今年も宜しくお願いします。

Decorative さん 1999年 12月 31日 05時 55分 50秒

こんにちは、管理人むたぐち さん。Decorative です。

ご明察のとおり、"Newbie" == "初心者" だと思います。
タレントの早見優さんが、(記憶が正しければ)"Beginner" の
くだけた感じのスラングだと言っていたように思います。
一般的な英語(スラング)なのでしょう。

でも、"microsoft.public.scripting.wsh" 内のハッカー達が
使用する場合には、厳密には意味が違うかもしれません。

次のスクリプト(Newbie.wsf) で *確認* しました。(笑)
<job>
<script language="VBScript">
Dim oHacker
Set oHacker = WScript.CreateObject("私の座右の書.ハッカーズ大辞典")
MsgBox oHacker.Newbie
Set oHacker = Nothing
</script>
</job>

== 実行結果 ==
/n[y]oobee/ と読む。
元々はイギリスのパブリックスクールや軍隊のスラング 'new boy' (新入り)から。
USENET の新参者。この用語が最初に登場したのはニューズグループ(newsgroup)
talk.bizarre だが、今は広く使われている。新米(newbie)と見なされる基準は
とてつもなくまちまちだ。あるニューズグループで常連として尊重されている人が、
別のニューズグループでは新米と呼ばれる場合もある。長年 USENET にいるのにその形跡を
慎重に隠している人物に対して、新米というレッテルが重大な侮辱として使われることがある。

p.s. 別件ですが、横の Scroll Bar は <body scroll="no">...</body> で消えますヨ。
(http://msdn.microsoft.com/workshop/author/hta/reference/objects/hta.asp の Remarks を参照下さい)

良いお年を!

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 1999年 12月 31日 00時 22分 37秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

新たにキーワード・コメントが色分けできるエディタを発見。まあ、フリーじゃないですが。

・ViVi
ViViは、マクロがJavaScript互換なので、JavaScript使いにはたまらない
エディタでしょう。また、vi互換モードというのがあり、vi派には最適。
シェアウェア\3,000

・WZ Editor
こちらはC言語がベースのマクロを実装しています。
メーラ、ニュースリーダが付属しているのが魅力的。
市販ソフト\9,800

どっちも捨てがたい魅力があります。EmEditorもマクロを搭載したらいいんですが。
まあそうなると値段も跳ね上がるでしょうね(^^;
EmEditorは、マクロではなくプラグイン方式で開発が進んでおり、残念ながら
マクロ搭載の見込みはありません。
#クイックマクロ(キーボードマクロ)は割と使えます。

To: YOU さん

>一つ思ったのですが、横のスクロールバーは消せないのですか。

消せないと思います。そういう属性が、HTA applicationタグにないので。
HTAはでてきたばかりなので、これからってところなんでしょう。
まだアイコンすらないし。

To: Decorative さん

>私は Flash を持っていませんし、HTML Help も Read-Only の Newbie ですが、

この"Newbie"って単語、よく見かけるのですが意味がわからないです。
#ためしにmicrosoft.public.scripting.wshの記事に検索をかけると42件もヒットしました。
こっそり教えていただけませんか?
「初心者」くらいの意味合いなのかな?

>提示された内容が興味深く、ちょっと試して、現象を確認しました。

情報のご提供に感謝します。助かります。

>管理人 むたぐち さんが指摘されているように、.chm ファイルの
>絶対パス(location.href から取り出せます)を元ネタにして、

HTML Helpとはいえ、パスを取り出す方法は普通のHTMLと同じなんですね。

#ということはHTAでも同じ。hta.commandlineでコマンドラインオプションを
#取り出す方法が見えてきました。

To: 松田 出 さん

>突然ですがだいぶ前のお礼を申し上げようと思います。ファイルのソート法
>でお世話になりました松田です。

ご丁寧にどうもです。

>WSHの情報を入手するのがなぜか下手なので、こういう書籍情報もたいへん
>助かります。

もともと情報の絶対量が少ないですからね。

私としても、これからも質のいい情報をみなさまに提供していけるように、
精進していきたい次第です。

それではみなさま良いお年を。

YOU さん (matumoto_s@yamagishi.or.jp) 1999年 12月 30日 07時 49分 53秒

>管理人むたぐち さん

ネットワーク接続のHTA ダウンロードして使ってみました。
一つ思ったのですが、横のスクロールバーは消せないのですか。
ウィンドウサイズの変更をできないようにしたら、
スクロールバーは全く意味無いですよね。

Decorative さん 1999年 12月 29日 19時 09分 57秒

はじめまして、Decorative と名乗る者です。

みっちー さん へ。
私は Flash を持っていませんし、HTML Help も Read-Only の Newbie ですが、
提示された内容が興味深く、ちょっと試して、現象を確認しました。

Script を組むのを避けるような提案なんですが、Flash の .swf ファイルを
HTML Help の .chm ファイル内へ取り込むというのは、どうでしょうか?
各ページで、取り込む .swf ファイルだけ扱えるように設定すれば済むだけでしょうし、
相対パスを使っても取り込めます。設計時にリンケージが解決できれば楽なのでは?!

一方、外部ファイルとして .swf ファイルを配布するには、
管理人 むたぐち さんが指摘されているように、.chm ファイルの
絶対パス(location.href から取り出せます)を元ネタにして、
.swf ファイルを特定する Script が必要だと思います。

松田 出 さん (izuru_matsuda@hotmail.com) 1999年 12月 29日 04時 29分 45秒

TO:管理人むたぐち さん

突然ですがだいぶ前のお礼を申し上げようと思います。ファイルのソート法
でお世話になりました松田です。

>WSHクイックリファレンス 羽山博著 オライリー・ジャパン 3500円

WSHの情報を入手するのがなぜか下手なので、こういう書籍情報もたいへん
助かります。

いろいろありがとうございました。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 1999年 12月 29日 00時 32分 27秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

To: みっちー さん

>そのなかでFlashアニメーションを使用したいのですが、
>EMBEDタグを使用する場合に絶対パスでファイルを指定しなければ
>コンパイルしたときにリンクが外れてしまいます。

えっと、何か難しそうな話ですね(爆)
HTMLヘルプは作ったことがないもので。

code="../hogehoge.ext"のように、相対パスで記述できないというわけですか。
HTMLヘルプ(*.chm)は、自分自身のパスをどうやって取得するのでしょうか。
自分自身のパスが取得できれば、VBSを使って、そこからファイルのパスを生成することは
可能だとは思います。

みっちー さん (michi@geocities.co.jp) 1999年 12月 28日 17時 49分 33秒

こんにちは、初めまして。
Microsoft HTML helpを作っております
そのなかでFlashアニメーションを使用したいのですが、
EMBEDタグを使用する場合に絶対パスでファイルを指定しなければ
コンパイルしたときにリンクが外れてしまいます。

このデータはCD-ROMで配布する予定なので、
ファイル指定をVBSCRIPTでドライブや階層に関係なくリンクさせることは
できないでしょうか?

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 1999年 12月 28日 00時 28分 28秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

To: さむ さん

>ど素人ですみません。もう一度教えて下さい。
>日本語版って,何の日本語版ですか?

もちろんWindows Script 5.1の日本語版ということですが、

>ste51jp.exe(....これの日本語版でしょうか)

これです。これが正常にセットアップされていれば、問題はないはずなんですが…。

さむ さん 1999年 12月 27日 15時 10分 09秒

むたぐちさん,ありがとうございました。
実はスクリプトデバッガ(ie401dbg.exe)をDLしただけで,インストールを
してませんでした。
...でも,インストールしても同じです。これじゃないのか...。
全く,勘違いしてるようです。

ど素人ですみません。もう一度教えて下さい。
日本語版って,何の日本語版ですか?
WSH&VBS関係で,これまでにインストールしたのは
HTMLHELP.EXE
VBSdoc.exe
ste51jp.exe(....これの日本語版でしょうか)
WSHDOC.exe
we020lt.exe
ie401dbg.exe
こんな所です。
私の環境は,Win95 + IE5.0 + VB6.0 こんな所です。
よろしくお願いします。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 1999年 12月 26日 00時 35分 33秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

To: さむ さん

>って,文字化けしてます。(エラー:の所は,実際には半角カタカナ)

ちゃんと日本語版をインストールしていますか?

>バックアップをとる為の,簡単なスクリプトを書いてるんですが,
>終了したら,Msgboxを表示するようにしています。
>でも,バックアップ中は何も表示されないし,タスクバーにも何も表示されないし,
>実際には,きちんと実行されているので良いのですが,
>実行されているのを視覚的(?)に確認する方法は,WSHだけではできないのでしょうか?

これはFAQ化していますね…。#「テクニック集」の次のお題はこれに決まりですね。
過去ログを見てもらえばわかると思いますが、WSHの標準機能だけで実現するには、
cscript.exeを使い、WScript.Echoでメッセージを表示するしかないと思います。

もしくは、IEのコントロールを呼び出してメッセージ表示窓代わりにする手も
ありますが、コードが煩雑になり、動作も重いのでおすすめできません。

ファイルコピーに限って言うと、Shellオブジェクトを使えば、経過表示ダイアログを
表示させることができます。詳しくは、「オブジェクトの解説」をどうぞ。
まだいろいろ問題点もありますが…。

そういうことができるコンポーネントもどこかに存在すると思うのですが。

一番いいのは、WSHを見限って(おい)、HTAでスクリプトを作成してしまうことです。
HTAならウィンドウが表示されますし、もちろんスクリプティングランタイムや
WshShellなどの機能も呼び出せます。難点といえば、IE5が必要であることと、
HTMLにスクリプトを書く方法を知らなければならないことです。
HTAの参考例を、「ダウンロード」のところにアップしてますのでどうぞ。


さむ さん 1999年 12月 25日 13時 30分 09秒

二度めまして。
もうひとつ質問があります。

バックアップをとる為の,簡単なスクリプトを書いてるんですが,
終了したら,Msgboxを表示するようにしています。
でも,バックアップ中は何も表示されないし,タスクバーにも何も表示されないし,
実際には,きちんと実行されているので良いのですが,
実行されているのを視覚的(?)に確認する方法は,WSHだけではできないのでしょうか?



さむ さん 1999年 12月 25日 13時 25分 13秒

始めまして。だれか教えて下さい。
vbsファイルを実行した時に,コードにエラーがあると,
「Windows Scripting Host」ウィンドウのエラーが出ますよね。でも

スクリプト:c:\Progrm Files\WHWditor\xxx.vbs
行:55
文字:1
エラー:エヨクァッネgオン・U掲DjD.......(以下省略)
コード:800A01B6
ソース:Microsoft VBScript 欄Bィ鳶

って,文字化けしてます。(エラー:の所は,実際には半角カタカナ)

インストールで何か失敗したのでしょうか。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 1999年 12月 25日 00時 47分 04秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

例のネットワーク接続のHTAをとりあえず公開します。
これに機能を足していきたいのですが、どなたか、ネットワークドライブの接続履歴が
格納されたレジストリの場所と内容についてご存じの方はいらっしゃいませんでしょうか?
とにかく私はPCを1台しか所有していないもので、確認ができないのです…。

次の予定は、これらのスクリプトのバージョンアップと、HTA版CDプレイヤーです。
#ActiveX Control Padも入手しました。

To: 松田 出 さん・SIGNAL9 さん

>ASPをお使いなんですね。でしたらJScriptのsortメソッドを
>VBScriptから呼び出す方法の方が合理的かもしれません。

>#WSH2でも同様のことができるんではないでしょうか。

できます。wsfファイルというのに複数のスクリプティング言語で書いたスクリプトを
共存させることができます。
また、松田さんのおっしゃる、インクルードも可能です。これもVBS、JSどちらかあるいは
両方同時にインクルードできます。詳しくは、「WSH2.0の新機能」をご覧ください。
ここにはサンプルはありませんが、そんなに難しくないので、ヘルプ付属の例で
使い方がわかると思います。

>Dictionary自体は単にキー部分に数字以外が使える配列というだけ
>のものです。

了解しました。ヘルプには「PERLの関連配列と同等のもの」と記載されていますね。
MSはやはりUNIXを意識していますね。
ちなみに、Windows Script 5.5βでは、正規表現のオブジェクトに機能増強が
なされているようです。

>Sort(整列)には各種アルゴリズムがありますが、

以下、非常に参考になりました。
また、そこら辺の本を読んで、アルゴリズムの基礎から勉強してみたいですね。
どうせなら、私にとって未知の言語で。

本と言えば、雑誌の書籍紹介に、WSHの本がありました。
WSHクイックリファレンス 羽山博著 オライリー・ジャパン 3500円
だそうです。

>実は最初に試したのが、SIGNAL9 さんが紹介しておられたADOのレコードセ
>ットを使う方法でした。ASPでなじみのあるモノについ流れてしまって・・

ADOやらASPなどという言葉には馴染みがなくて…。
そういえば、WSHのメーリングリストがあり、そこでは私に答えられない、そういう系
の質問にレスポンスが期待できると思いますよ。
http://w33.mtci.ne.jp/~ktomo/wsh/ をご覧ください。

To: 【おじさま】 さん

>本当にそう思います。ソートなんて書きたくもない(^^;)。簡単に使える外部のが
>あれば迷わずそれを使いたいです。

同感です。が、ソートとかを書いていると、何かプログラミングをやっているような
錯覚に陥ってそれもまた良いです。(良いのか?)
スクリプトをプログラミング入門としてとらえるか、実用的な自動処理を構築するための
手段とするか、目的によっても異なってくるんでしょうけど。

松田 出 さん (izuru_matsuda@hotmail.com) 1999年 12月 24日 20時 24分 53秒

To: SIGNAL9 さん

心の師匠殿のページも拝見しました。ありがとうございます。VBSによるソート
という意味ではそのものずばりです。ある所にはあるもんですねえ、という感
じです。このページには他にも使いたくなる小物がいろいろありましたが、
WebDBではかなりの苦労人とお見受けします。

松田の環境では、システムファイル操作に限っては完全にASPの外でやること
になるため、「JavaScript の sort を VBScript から使う」の直接の適用は
できませんでしたが、今後の大きなヒントになりました。

また、WSH2についてですが、まだドキュメントを読んでいるところです・・・
これは別の点(インクルードができる等)でも大きく期待してます。

なかなかお目にかかれないものをいろいろご紹介いただきありがとうござい
ます。

SIGNAL9 さん 1999年 12月 24日 10時 17分 14秒

あ、すいません書き忘れたんでちょっと追加。
>松田 出 さん

ASPをお使いなんですね。でしたらJScriptのsortメソッドを
VBScriptから呼び出す方法の方が合理的かもしれません。
おなじくぼくの心の師匠(^^)のHPにあります。
http://www.geocities.co.jp/SiliconValley/4334/unibon/archive/javascriptsort.html

ASPになれていないと「えっ」と思われる手法ですが、これはMSの
マニュアルにもあるまったく合法的な方法です。ASP使いはよくや
る手ですので検討されてみてはいかがでしょう。
#WSH2でも同様のことができるんではないでしょうか。

SIGNAL9 さん 1999年 12月 24日 10時 04分 41秒

管理人むたぐちさん:
>こういう手もあるのですね。Dictionaryオブジェクトは
>使ったことがないですが、キー順でソートされるんでしょうか。

ちょっと説明不足でした(^^;)
Dictionary自体は単にキー部分に数字以外が使える配列というだけ
のものです。
Dictionary自体にキー順にsortするとかがあるわけではないですが、
FileSystemObjectから読み出すときに一定のハッシュの計算をする
ことで似たことができます。原理的にはみなさんがかかれているよ
うな配列を使ったソートと同じです(だから「小細工」^^;)

Sort(整列)には各種アルゴリズムがありますが、資源の消費量・速度・
安定(並び替えた後に同じキーだった場合、もとの並びが保持さ
れるかどうか)など、局面に応じて選択肢がいろいろあります(実際の
製品では局面に応じて内部的にアルゴリズムを切り替えているものが
多いようです)。学者さんの世界では一ジャンルなので、調べてみると
面白いですよ。

ただ、スクリプトでの実装は効率的に問題が多いので、COM(ActiveX)
などのネイティブバイナリで実装するのが普通でしょう。
その意味では出来合いのものがあれば利用すればよろしいと思います。

もっとも、世間では非常に特殊な整列処理が要求されるケースが多々
ありますし、自前以外の外部オブジェクトが使えない場合もあります
ので、コンピュータで飯を食ってこうと思っている人は、自分で実装
できないと後で困る場合もあります(いやマジで^^;)

【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 1999年 12月 23日 14時 04分 20秒
URL:http://homepage1.nifty.com/~tomiyama/

管理人むたぐち さん

>私もなんですよ。やっぱりプログラム手法をちゃんと勉強しないと駄目ですね(^^;

私、ソートって本当にダメなんです。どう読んでも頭が混乱してきます。

>競争してみますか?

やめときます。後で調べてみましたが、私が書いたのは「単純ソート」とかいう
らしくて、名前からしていかにも遅そうです。ずっと昔のCの入門書に書かれて
いたものでした。

>スクリプトを書くときは、こういう本筋とは関係ないところで延々と処理を
>書くより、外部のオブジェクトを利用するというのがスマートかつ合理的ですね。

本当にそう思います。ソートなんて書きたくもない(^^;)。簡単に使える外部のが
あれば迷わずそれを使いたいです。

松田 出 さん (izuru_matsuda@hotmail.com) 1999年 12月 23日 01時 24分 14秒

To: 管理人むたぐち さん、SIGNAL9 さん、【おじさま】さん

あまりにも迅速で丁寧な皆様のレスポンスに感激したり驚いたりしており
ます。皆様本当にありがとうございます。いろいろな事を知らなかったも
のだと気がつきました。

SIGNAL9 さんの最後のレスを読ませていただいてからしばらくそのマネを
しようとやっきになっていたため、その後のレスを読んでいませんでした。

実は最初に試したのが、SIGNAL9 さんが紹介しておられたADOのレコードセ
ットを使う方法でした。ASPでなじみのあるモノについ流れてしまって・・

管理人むたぐち さんと【おじさま】さんの「バブルソート」にも挑戦させ
ていただこうと思ったのですが、情報処理試験を思い出してしまい、肩に力
が入ってやらずじまいになったんです。ごめんなさい。でも捨てた訳ではあ
りません。MDACのバージョン等々に影響されない堅牢さを感じます。


To: SIGNAL9 さん

いろいろなサンプルやオブジェクトのご紹介ありがとうございます。最終的
には、ご紹介いただいた
http://www.geocities.co.jp/SiliconValley/4334/unibon/archive/adogetrows.html
にあるサンプルを大いに参考にさせていただきました。

たまたま環境にMDAC2.1が入っていたので「まずこれから」と思ったのです。
RecordSetのSortというのは、私の狭い経験範囲では一度も見聞きしたことが
なかったのですが、いとも簡単にソートできたのでちょっと信じがたいものが
あります。これは上記サイトで言われるようにMDAC2.xがあってはじめて可能
なメソッドなのでしょうか。ASP2.0の書籍では見たことがないのですが・・・

いずれにしましても、WSHをここまで使っている方々がやはりいるのだとわか
り、とても励まされた次第です。皆様今後ともよろしくお願いいたします。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 1999年 12月 22日 21時 30分 39秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/

To: 【おじさま】 さん

>ディスクに書き込まれている順番そのままだと思うのですが。松田さんの環境で
>はたまたま名前順で書き込まれていたのではないかと思います

そうかもしれませんね。あまり順番とか気にしていなかったので。

>ソートにもいろいろあるらしいのですが、私良く知りません(^^;)。

私もなんですよ。やっぱりプログラム手法をちゃんと勉強しないと駄目ですね(^^;

>雑誌などでソートの特集を組んでいることもありますが、
>読んでいると眠くなるので。

そういう系の雑誌は読みもしませんねえ…。

>ソートは管理人むたぐちさんのほうが良さそう。私のは田舎臭い。

競争してみますか?
サンプルとして、C:\Windowsでどうでしょう(笑)
いっぱいファイルがあって、時間がかかりますよ。

バブルソートっていうのは、チャート式(数学)で学びました(爆)

To: SIGNAL9 さん

>いわゆるソート処理ですが、スクリプトエンジンVer2の
>Dictionaryオブジェクトにいったん格納してしまい、
>キー順に読み出すような小細工も出来ますが

こういう手もあるのですね。Dictionaryオブジェクトは
使ったことがないですが、キー順でソートされるんでしょうか。

>以前ご紹介させていただいたbabaqさんのBASP21ですと、
>そのものずばり配列ソートのsortメソッドがあります。

やはりあるところにはありますね(謎)
スクリプトを書くときは、こういう本筋とは関係ないところで延々と処理を
書くより、外部のオブジェクトを利用するというのがスマートかつ合理的ですね。

【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 1999年 12月 22日 19時 18分 36秒
URL:http://homepage1.nifty.com/~tomiyama/

松田 出 さん

>で取得したmyItemがファイル名順に並んでしまっているのです。Filesコレク
>ションはファイル名順に並ぶというデフォルト的な性質があるのでしょうか。
>また、この性質は変更することができないものなのでしょうか。

試してみましたが、必ずしもファイル名順ではないようです。要するに FAT
そのものに書き込まれている順番ではないでしょうか。多分取得する際にわ
ざわざ何かの要素でソートするような面倒なことはしないと思います。ディ
スクに書き込まれている順番そのままだと思うのですが。松田さんの環境で
はたまたま名前順で書き込まれていたのではないかと思います(全く自信が
ありません)。

デフォルトが何であるにせよ、やはり一度配列変数に入れてご自分でソート
するしかないでしょう。ソートにもいろいろあるらしいのですが、私良く知
りません(^^;)。雑誌などでソートの特集を組んでいることもありますが、
読んでいると眠くなるので。

で、唯一使ったことがあるソートで書いてみました(何というソート法なの
かも存じません)。File オブジェクトそのものを配列変数に代入しています
のでメモリを食うかもしれません。実際にはお使いになる要素だけを代入し
たほうが良いと思います。昇順降順は13行目の不等号の向きを変えてくだ
さい。

ソートそのものに全く自信がありませんので、その部分はあまり参考になさ
らないでください。ソートのアルゴリズム自体は書籍などで適切な方法を調
べられたほうが良いと思います。

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder("C:\")
For Each objFile in objFolder.Files
ReDim Preserve objItem(intCount)
Set objItem(intCount) = objFile
intCount = intCount + 1
Next
intFileNum = UBound(objItem)
For intI = 1 To intFileNum
intJ = intI - 1
Set objFile = objItem(intI)
Do While intJ <> -1
If objFile.DateLastModified > objItem(intJ).DateLastModified Then
Exit Do
End If
Set objItem(intJ + 1) = objItem(intJ)
intJ = intJ - 1
Loop
Set objItem(intJ + 1) = objFile
Next
For intCount = 0 To intFileNum
strResult = strResult & objItem(intCount).Path & vbTab & objItem(intCount).DateLastModified & vbCrLf
Next
Call MsgBox(strResult)

あっ、ごめんなさい。既に管理人むたぐちさんがレスを書かれていますね。
折角書いたので一応これも書き込みます。 ソートは管理人むたぐちさんの
ほうが良さそう。私のは田舎臭い。

SIGNAL9 さん 1999年 12月 22日 18時 29分 29秒

たまにお邪魔しているSOGNAL9でございます。
>>Filesコレクションはファイル名順に並ぶというデフォルト的な性質があるのでしょうか。

>どうも、そうらしいですね。日付順のソートは、自分でしなければいけないようです。

いわゆるソート処理ですが、スクリプトエンジンVer2の
Dictionaryオブジェクトにいったん格納してしまい、
キー順に読み出すような小細工も出来ますが、やはり、
なんらかの外部オブジェクトを利用されると便利かと
思います。
以前ご紹介させていただいたbabaqさんのBASP21ですと、
そのものずばり配列ソートのsortメソッドがあります。
その他、ADO(MDAC2.1)が使える環境なら、メモリ上に
擬似的にデータベースを作ってしまうようなことも可能
です。良いサンプルがこちらで紹介されています。
http://www.geocities.co.jp/SiliconValley/4334/unibon/archive/adogetrows.html

Return