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

To: あまがいめぐみ さん

> WSHShell.Run ("MSBACKUP"),3,True
> の起動して最大化ところから反応しなくなります。

WSHShell.Run ("MSBACKUP"),3,False
でOKだと思います。
Trueを指定すると、起動したプログラムが終了するまで待つ、という
意味になりますので、ここでは不適切です。

> それから、WSHが使えるデバッカーってありますか?

スクリプトデバッガというのがあります。
10-16 管理人むたぐち 2000-03-06 12:37 を参照してください。

あまがいめぐみ さん (amagai@is.tsukuba.ac.jp) 2001年 07月 10日 19時 15分 03秒

はじめまして あまがいと申します。
事務のおばさま方に簡単にバックアップをしてもらおうと思って、
書いていたのですが、もう詰まってしまいました。(なさけない)

<やりたいこと>「マイクロソフトバックアップ」で勝手にバックアップ
'----------------------ここから------------------------------
Dim WSHShell
Set WSHShell=WScript.CreateObject("WScript.Shell")

'メッセージ表示
WSHShell.Popup "バックアップを始めます",2,"定期バックアップ",vbInformation
WSHShell.Run ("MSBACKUP"),3,True
WScript.Sleep 2000
WSHShell.SendKeys "%S"        '「開始」する。ctrl+S
'----------------------ここまで------------------------------

..というものですが、
WSHShell.Run ("MSBACKUP"),3,True
の起動して最大化ところから反応しなくなります。

....不思議なことに。「メモ帳」を立ち上げておいた状態で、
WSHShell.SendKeys "%S" を WSHShell.SendKeys "%FX" と変更し、
もう一度、スクリプトを実行します。
当然、また起動>最大化でとまりますが、自分で「マイクロソフトバックアップ」を終了すると、「メモ帳」(アクティブウィンドウ)に対してWSHShell.SendKeys "%FX"(ファイルF>終了X)を実行します。

ちなみに、同じような構文で「メモ帳」で起動と終了を試してみましたが、これは通ります。
「マイクロソフトバックアップ」のでは WSHShell.SendKeys が使えないということなのでしょうか???

それから、WSHが使えるデバッカーってありますか?
フォローよろしくお願いいたします。

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

チャットでちょっと思いついたネタを、早速スクリプト化してみました。
くかかせけめめてててるすらんるくにほくらるみいるませめもなかちきなそくにめてとくめにみしいさるくかもり
てにみしらてと とそすにせかにみき くらとか りちこらすちからすん
…復活の呪文みたいだ。

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

WinXPの価格が決定したようです。(英語版ですが)
http://ascii24.com/news/i/net/article/2001/07/09/627733-000.html
…にしても、Win9xからとWin2000からのアップグレードが同じ値段なのは、
納得いかないんですけど。

まっ、私は買うならアカデミック版かOEM版を買いますから、関係ないですけどね。
いいだろー。(とか言ってみるテスト)


To: 土屋 さん

> > まあ、ExecWB使っても、結局はSendKeysしないと保存できないので同じといえば同じですが。
>
> 私の場合、ExecWBを使うとmhtや完全Webを選択できないダイアログが出てきたので、
> ExecWBだとSendKeysすら使えないのでは、と思ったのです。
> 何か技があるのかなあ。

うちでもそうです。
正しくは、
「まあ、ExecWBを使って仮にmhtや完全Webを選択できるダイアログが出せたとしても、
結局はSendKeysしないと保存できないので同じといえば同じですが」
です。失礼しました。

> で、今回は、DAO経由で、CSVファイルにアクセスする方法なんぞを。

こういうこともできるんですねえ。
ありがとうございます。堪能しました(^^;

Win2000ならデフォルトの状態で動作するようです。

> (普通、こんなことする人いないかなあ。でもソートや一括更新など便利なことも、、、)

使いようによっては、便利に使えそうです。
たしかに、ODBCとか面倒なことを考えないで、ローカルで使えるのがいいですね。

そういえば、Tabular Data Control (TDC)をWSHから直接呼び出す方法は
やっぱりないんでしょうか?
これでも、CSVファイルを扱えるわけですが。(しかもIE4さえあればいい)
18-38 管理人むたぐち 2000-07-27 08:02

土屋 さん 2001年 07月 09日 21時 59分 06秒
URL:http://www2.jan.ne.jp/~kajika/

To: むたぐち さん

> まあ、ExecWB使っても、結局はSendKeysしないと保存できないので同じといえば同じですが。

私の場合、ExecWBを使うとmhtや完全Webを選択できないダイアログが出てきたので、
ExecWBだとSendKeysすら使えないのでは、と思ったのです。
何か技があるのかなあ。


で、今回は、DAO経由で、CSVファイルにアクセスする方法なんぞを。
(普通、こんなことする人いないかなあ。でもソートや一括更新など便利なことも、、、)

Dim DBE,DB,RS,QL
QL = "SELECT * FROM [test.csv];"
Set DBE = CreateObject("DAO.DBEngine.36")
Set DB = DBE.Workspaces(0).OpenDatabase("C:\test", False, False, "Text;")
Set RS = DB.OpenRecordset(QL)

RS.MoveFirst
MsgBox RS.Fields("題名").Value

RS.AddNew
RS.Fields("番号").Value = "83"
RS.Fields("題名").Value = "キリング・フィールド"
RS.Fields("内容").Value = "カンボジアの悲劇"
RS.Update

RS.MoveLast
MsgBox RS.Fields("題名").Value

RS.Close
DB.Close
Set RS = Nothing
Set DB = Nothing
Set DBE = Nothing


CSVファイルはC:\test\test.csvで、中身は、
番号,題名,内容
1,1492コロンブス,大航海時代
2,7月4日に生まれて,ベトナム戦争
3,JFK,ケネディ暗殺
4,アイバンホー,12世紀のイギリス
みたいな感じです。

ただし、ISAMドライバの関係で、追加や更新はできますが、削除はできません。
世はADOの時代ですが、DAOの方はODBC設定がいらないので、楽なときもあります。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2001年 07月 09日 02時 21分 48秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

チャット開催中。


To: 土屋 さん

> ホームページを開いて、mht形式で保存する、ということに挑戦していたのですが、ExecWBは使えないので、結局原始的(?)な方法に落ち着いてしまいました。
> でも、ま、できたからいいか。(SendKeysは使いたくなかったんだけど)
> (あんまりループすると時々失敗しますが)

やっぱり使う方法ないんですかねえ。
ちょっと残念な気がします。
まあ、ExecWB使っても、結局はSendKeysしないと保存できないので同じといえば同じですが。

ありがとうございます。
動作確認しました。(Win2000+IE5.5)

> クリップボードを使えば、ファイル名を貼り付けることもできますね。

クリップボードへの文字列の格納方法については、
22-10 管理人むたぐち 2000-09-15 02:20
をどうぞ。

> (保存フォルダの指定だけだったら、レジストリをいじるわけですが)

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MainキーのSave Directoryですね。
ダウンロードは、
HKEY_CURRENT_USER\Software\Microsoft\Internet ExplorerキーのDownload Directoryかな?


To: 高橋 さん

> "rem" はもともと BASIC にあったからじゃないでしょうか?
> "'" のほうが後発な気が…

それを言い出すと、gotoと行ラベル(行番号しかなかったっけ)もBASICに
ありましたよね。

> # こんなとこしか反応できなくてすみません。(^^;

いえいえ、反応できるところは反応していただけるとうれしいです。
今、書き込み数が減ってますしねえ(^^;

高橋 さん 2001年 07月 09日 01時 44分 59秒

高橋@たまにしかでてこない、です。

>> WSH(vbs)のソースの書き方なのですが
>> goto xxx
>> と記述するできるのでしょうか?
>筑集眺餅さんがおっしゃるように、できません。
>rem は採用されたのに。
>
"rem" はもともと BASIC にあったからじゃないでしょうか?
"'" のほうが後発な気が…

# こんなとこしか反応できなくてすみません。(^^;

土屋 さん 2001年 07月 09日 00時 54分 32秒

こんにちは。土屋です。

ホームページを開いて、mht形式で保存する、ということに挑戦していたのですが、ExecWBは使えないので、結局原始的(?)な方法に落ち着いてしまいました。
でも、ま、できたからいいか。(SendKeysは使いたくなかったんだけど)
(あんまりループすると時々失敗しますが)

完全なるHTML形式とやらの場合は、'mhtファイルの場合の2行を取ってみます。
クリップボードを使えば、ファイル名を貼り付けることもできますね。
(保存フォルダの指定だけだったら、レジストリをいじるわけですが)

Dim URL(1),IE(1)
URL(0) = "http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/index.shtml"
URL(1) = "http://www2.jan.ne.jp/~kajika/library/index.html"
Set H = CreateObject("WScript.Shell")
For i = 0 to UBound(URL)
Set IE(i) = WScript.CreateObject("InternetExplorer.Application")
IE(i).Visible = True
IE(i).Navigate URL(i)
While(IE(i).busy):Wscript.Sleep 100:Wend
H.SendKeys "%FA", True
H.SendKeys "%T", True 'mhtファイルの場合
H.SendKeys "{DOWN 2}{ENTER}", True 'mhtファイルの場合
H.SendKeys "%S", True
While(IE(i).busy):Wscript.Sleep 100:Wend
Next
If MsgBox("閉じます?", vbOKCancel + vbInformation, "GetHTML") = vbOK then
For i = 0 to UBound(URL)
IE(i).Quit
Next
End If
MsgBox "終了しました"

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2001年 07月 08日 03時 44分 13秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: 松島 さん

> うちのサイトが、7/7発売のPC Life誌8月号の198ページに載ってます。

おめでとうございます。
これから毎月連載ですか。すごいなあ。
本屋で見かけたら読んでみます。
え、買えって? だって私、お父さんじゃないし。

私にもWSHの連載記事を書かせてください。
多分隔月どころか半年に一回くらいしか出ないと思うけど(^^;

> 金土の夜は、ネット対戦ゲームで燃えているので、
> 気が付くと燃え尽きています。(^^;;;;

今、www.chabnet.jpに#WSHチャンネルを立ててみました。よかったら来てください。> ALL
日曜日いっぱい立てっぱなしにしてみます。
引き続き会員募集中です。

> > そもそも既出という言葉は存在するのだろうか?
>
> 似た言葉でも、既成、既婚、既刊、既読…とか。

この中で、「既成」、「既婚」、「既刊」は広辞苑にも載っている一般的な熟語ですが、
「既読」と「既出」は載っていません。広辞苑に載っているかどうかを「正しい日本語」か
どうかの判断材料にするのは間違っているのは百も承知ですが、その言葉の
一般性を示す一つの指標にはなると思います。
「既読」という熟語は、「未読」とともに、日本語版MUAでメールを読んだかどうかを
表す言葉として作られた造語だと聞いたことがあります。
たぶん、readとunreadに対応するいい日本語がなかったんでしょうね。

> どんな人/用途、とは言いませんが、
> 故意にブラウザの言語設定で、en-us または en を ja より優先させている
> 場合もあるので、「一概にそうとは言えない」ということに気を付けてください。

一応、
systemLanguage システムの言語
userLanguage ユーザーが使用中の言語
browserLanguage ブラウザの言語
となっているので、systemLanguageプロパティを使えば問題ないのでは?

松島 さん (matsushima@popup.org) 2001年 07月 07日 00時 01分 29秒
URL:http://www.popup.org/ai/

うちのサイトが、7/7発売のPC Life誌8月号の198ページに載ってます。

To: 筑集眺餅 さん

> いやぁ、「できない」って判ると胸のつかえがとれます。
> ありがとうございます。

間違いを言ってしまう事があるので、普段は「〜〜と思います」と
控え目に書き込んだりするように心がけているんですけど、ここぞ、
という時には、スッパリ断言するようにしてます。(笑)

#行き過ぎると、詐欺師になってしまうので要注意(^^;)。


To: むたぐち さん

> 昨日はすいませんでした。
> 夜が明ける前に脱落してしまったのです(^^;

金土の夜は、ネット対戦ゲームで燃えているので、
気が付くと燃え尽きています。(^^;;;;

>> 月日は同じなのですが、年は違うのです。
>そういうことを言うと歳が少し絞られますがいいのですか(笑)

私って、年がバレてはいけない人だったんでしょうか。(笑)

> そもそも既出という言葉は存在するのだろうか?

似た言葉でも、既成、既婚、既刊、既読…とか。


To: ゴン さん

> とりあえず日本語ja/英語eu-usを判別してできました!...けど

どんな人/用途、とは言いませんが、
故意にブラウザの言語設定で、en-us または en を ja より優先させている
場合もあるので、「一概にそうとは言えない」ということに気を付けてください。

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

プログラム板のWSHスレが上がってる。
…それだけ。


To: ゴン さん

> 言語ごとに自動的に処理を切り替えるというふうなことを行っているのですが、IEを呼び出して言語を判別する方法はやはり回りくどい方法でしょうか?!

私が回りくどいと思っただけなので、お気になさらぬよう(^^;
言語を調べるためだけにIEを立ち上げるのはなんだか大仰だなあ、という感覚です。
もし、レジストリのどこかにその記述があれば、そちらを参照すれば
済む話ですからね。


To: ひろすけ さん

> WSH(vbs)のソースの書き方なのですが
>
> goto xxx
>
> と記述するできるのでしょうか?

筑集眺餅さんがおっしゃるように、できません。

でも、なんでできなくしたんでしょうね?
バッチファイルユーザーの移行を促すには、gotoや行ラベルを
サポートした方が良かったように思うのですが。
rem は採用されたのに。

まあ、本家VBでも、行ラベルの使用は推奨されていませんし、世の流れが
構造化プログラムに向かっている(っていまさらか(^^;)ことの
一つの表れなんでしょうね。
それか、ActiveX Scriptの仕組みから大きく逸脱する機能だったのかも。


To: 筑集眺餅 さん

> いいですねぇ、そういう出たとこ勝負のプログラミング。
> その内、Undocumentedの金鉱に当たるかもしれず・・・。

そうそう。
で、何か発見するのは無上の喜びでして。

筑集眺餅 さん 2001年 07月 05日 21時 18分 52秒

To:ひろすけさん

>goto xxx
>と記述するできるのでしょうか?

いいですねぇ、そういう出たとこ勝負のプログラミング。
その内、Undocumentedの金鉱に当たるかもしれず・・・。

それはさておき、VBScript5.5 のマニュアルの
「VBA の機能で VBScript に含まれていない機能」の所に
VBA流には行かない所がまとまってます。

これだと、GOTOステートメントや、行ラベルはないです。
結構、たくさん「ない」から、ここんとこ要チェックです。

ではまた。

ひろすけ さん 2001年 07月 05日 19時 24分 09秒

質問したいのですが
WSH(vbs)のソースの書き方なのですが

goto xxx

と記述するできるのでしょうか?

記述してみましたが
エラーになってしまします。

よろしくお願いします。

ひろすけ

ひろすけ さん 2001年 07月 05日 16時 22分 49秒

To むたぐちさん

アドバイスありがとうございます。
BASP21を使用することに決めました。

動作も確認できました。
ありがとうございます。

ひろすけ

ゴン さん 2001年 07月 05日 09時 00分 07秒

To:管理人むらぐちさん

>これもどこかのレジストリキーを読み込むことで解決しませんか>ねえ?
>一応、IEを呼び出して言語を判別する方法はありますが、どうも回りくどい気がします。

回答ありがとうございます。

言語ごとに自動的に処理を切り替えるというふうなことを行っているのですが、IEを呼び出して言語を判別する方法はやはり回りくどい方法でしょうか?!

とりあえず日本語ja/英語eu-usを判別してできました!...けど
ほかに思いつた方法だとユーザに選択させる方法も思いついたのですが、間違って選択してしまうと暴走してしまったのでやはり
IEを呼び出して言語を判別させる方法がいまのところ無難そうです。

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

To: ひろすけ さん

> PCの既存にインストールされているメーラー
> を利用してautoでメール送信ができるようにしたいのですが
> どうしたら良いのでしょうか?
>
> 今、使用しているのは、outLook Expressです。

まず、Outlook Express(OE)は、Outlookと違ってオートメーションで
操作できませんので、WSHからOEを使ってメールを送ることはできません。
(Outlookなら全自動メール送信が可能)

Win2000なら、IISをインストールし、SMTPサービスを有効にしておけば、
CDOを使って自動メール送信が可能です。
参考例はWebに結構あるので、ここでは省略します。
http://www.microsoft.com/JAPAN/support/kb/articles/J051/2/09.htm

# この掲示板にも書いてますが、私の環境ではIISが死んでいるので、
# 動作確認ができないのです(^^;

また、フリーのコンポーネントを使うという手もあります。
BASP21が有名ですね。


To: たけだ さん

> そこで、下記のWSHを実行したところ、
> 外見上は変更されている(チェックマークの位置は変更したいプリンタに移ってい
> る)ようなのですが、
> どうも上手く働きません。

> これは、WIN95では問題ありませんでした。 多分、WIN98でも問題ないと思われます。
> WIN-NTでもWIN2000上でも機能しない様です。バグなのでしょうか。

SetDefaultPrinterメソッドって、ヘルプを見るとネットワークパス(UNC Name)を
入れないといけないようなことが書いてありますが、実際はプリンタ名そのもの
を入れても動きますね。これ、意外と忘れがちですが便利です。

で、この現象ですが、私のWin98SEおよびWin2000(+WSH5.6)ではともに
再現しませんでした。正常に動作します。

たけださんのところのWSHのバージョンはどうなっていますか?

また、UNCを指定した場合はどうなりますか?
まったく存在しないプリンタ名を指定するとエラーになりますか?
メソッドの実行で、レジストリが正常に書き換わっていない可能性はないでしょうか?
# 通常使うプリンタの設定を保持するレジストリキーを忘れてしまいましたが…。


To: ゴン さん

> OS種類の場合は固定の場所にMicrosoft Windows Meなどの情報が必ず存在するのでRegReadで読み込み判別することができますが、言語(日本語/英語等)の種類を判別するにはどのような方法がよいでしょうか?!

これもどこかのレジストリキーを読み込むことで解決しませんかねえ?

一応、IEを呼び出して言語を判別する方法はありますが、どうも回りくどい気がします。

Set Ie = WScript.CreateObject("InternetExplorer.Application")
Ie.Navigate "about:blank"
Do While Ie.Busy Or Ie.ReadyState<>4
WScript.Sleep 10
Loop
msgbox Ie.document.parentWindow.navigator.systemLanguage
Ie.Quit

systemLanguageプロパティが返す言語コードについては、MSDN参照のこと。
日本語はjaです。

ゴン さん 2001年 07月 04日 11時 38分 02秒

こんにちは!
またまた質問がありますので分かる方がいましたらよろしくおねがいします。

OS種類の場合は固定の場所にMicrosoft Windows Meなどの情報が必ず存在するのでRegReadで読み込み判別することができますが、言語(日本語/英語等)の種類を判別するにはどのような方法がよいでしょうか?!

たけだ さん (mori-t@portnet.ne.jp) 2001年 07月 04日 06時 42分 22秒

はじめまして、武田と申します。
この度、WIN2000を導入いたしました。
インターネットにより、やっとの思いで、”通常使うプリンタほ変更”を見つけることが出来ました。
WSHという便利なものがあることを知り喜んでいます。 
そこで、下記のWSHを実行したところ、
外見上は変更されている(チェックマークの位置は変更したいプリンタに移ってい
る)ようなのですが、
どうも上手く働きません。
まず、EXCELでは、印刷使用とした時、プリンター名の欄がブランクになっている。
次に、データベース・ソフトのVisual dBaseは、’プリンターエラ’
とメッセージが返ってきて起動しません。

現在のデフォルトプリンターとして指定されているプリンター名を記載して実行させてみても、上記と同じ現象が起こります。
この時、プリンター画面で確認すると、このプリンターには、もちろんチェックがついています。
手操作にて、そのプリンターの ”通常使うプリンターに設定(F)” を、右ク
リックにて指定してやると、外見上は変化がないのに、何か内部的に正しく
設定されて、問題点は解決されるようです。
これは、WIN95では問題ありませんでした。 多分、WIN98でも問題ないと思われます。
WIN-NTでもWIN2000上でも機能しない様です。バグなのでしょうか。

突然、無理なお願いをして申し訳ありませんが,何か名案、解決策があれば教えてく
ださい。 
お願いいたします。 ご返事いただけることを楽しみにしております。

武田
mori-t@portnet.ne.jp


**********************************************************************
通常使うプリンタを変えてみよう!「EPSON PM-750C」を指定する場合

Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter "EPSON PM-750C"




ひろすけ さん 2001年 07月 03日 19時 36分 17秒

こんばんわ ひろすけです。

to むたぐちさん
  RESありがとうごさいました。
  無事うまくいきました。

また、ずうずうしいお願いなのですが。。。
PCの既存にインストールされているメーラー
を利用してautoでメール送信ができるようにしたいのですが
どうしたら良いのでしょうか?

今、使用しているのは、outLook Expressです。
宜しくお願いします。


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

To: たか さん

> ホスト名はDNSHostNameで参照はできるんですがね・・・。

なるほど、DNSホスト名ですか。

EnableDNSメソッドは、DNSHostNameという引数を取るので、
たぶんこれを使うと良いのでしょう。
お試しください。


To: 筑集眺餅 さん

> 思いっきり既出でしたね。^^;
> もいちど、過去ログ読み直そうっと。

これでも2年の歴史があるわけで、管理人が見ても実にいろいろな
話題が出ているものだという感慨が沸きます。
# で、最近は過去記事のピックアップだけの返信が増えてきているのも事実ですが(^^;
## 要するにそれはネタ切れの兆候(^^;

> ところで、ASPの系統ですが、よさげな本を見つけましたので、ご報告まで。
> "今日から使えるASP3.0 サンプル集" \2,800+税
> 山田祥寛 秀和システム

ありがとうございます。
IISが死んでて、ASPのテストができなくて悲しい私であった(^^;
Win2000再インストールしかないんかなあ。

> どうも、この手の "今日から使える" とか "一晩でわかる" とか、"猿でも
> できる" とかに弱くて・・・。(^^;

個人的に「猿でも…」系は、ライターにとって自分は人類未満の
存在であるのだなあと感じてしまうので嫌です、ってスタパ斎藤のネタか。

筑集眺餅 さん 2001年 07月 03日 00時 01分 55秒

>>  既出だったらすみません。文字列の配列の並べ替えをするのに、VBScriptから
>> JScript の sort 関数を呼んで使うにはどうしたらいいんでしょうか?
>
>既出です。
>10-08 管理人むたぐち 2000-03-03 13:12

>(余談ですが、2chネタで「既出」を「がいしゅつ」と読むのがありますが、
>そもそも既出という言葉は存在するのだろうか?
>http://saki.2ch.net/news/kako/962/962871899.html がいしゅつの発祥スレ、らしい)

思いっきり既出でしたね。^^;
もいちど、過去ログ読み直そうっと。

ところで、ASPの系統ですが、よさげな本を見つけましたので、ご報告まで。
"今日から使えるASP3.0 サンプル集" \2,800+税
山田祥寛 秀和システム

どうも、この手の "今日から使える" とか "一晩でわかる" とか、"猿でも
できる" とかに弱くて・・・。(^^;

ではまた。

たか さん 2001年 07月 02日 21時 55分 42秒

TO:むたぐち様
教えていただきありがとうございました。
すいません、お手数おかけしました。
なんとかなりそうです。
ホスト名はDNSHostNameで参照はできるんですがね・・・。
Win32_ComputerSystemクラスのRenameメソッドはどうなのか検討中です。
ありがとうございました。
これからも参考にさせていただきたいと思います。
よろしくお願いします。



チャブーン さん (mkobuna@chabnet.jp) 2001年 07月 02日 00時 33分 37秒
URL:http://www.chabnet.jp/

チャブーンです。

#間に合いませんでした

お手間をかけてすみませんでした。

またよろしくお願いします>皆様

#今なら一応チャネルにいるのですが・・・興味のある方がおられましたら(^^;

##次の土曜日あたりですかね>チャット会

お騒がせいたしました。

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

昨日のチャットは参加者3人でした(^^;
参加ご希望の方は、パスワードをお教えしますので、おっしゃってください。
(メールでも掲示板でもOKです)

私は(おそらくチャブーンさんも)土曜日の夜から日曜日の夜までしか参加
できないことが多いですが、基本的にサーバーはいつでも使えますので、
パスワードをお持ちのみなさんは、ご自由にお使いください。
(とチャブーンさんからお言葉をいただいております(^^;)

一応、私が参加できるときは、この掲示板で連絡するという方式に
してみます。(みなさんもこの掲示板を連絡に使っていただいて結構ですよ)

私は今日はちょっと無理なので、来週の土曜に参加できると思います。
チャブーンさんは23:30〜0:00頃からいらっしゃるそうです。


To: 筑集眺餅 さん

> IEの表示で、フレームで縦2つに分けて、左手を自作のリンク集、右手をリンク
> 先の内容表示にしたいと思うんですが、(ちょうど、WSH Labのトップページ
> の感じで、右手は、別URLを表示させるって感じ)リンク先によっては、
> 表示の時に、target="_top" みたいなことをやってるみたいで、途中で左手の
> フレームが消えて、全面表示になっちまいます。
>  右手のページを常に右のフレームに閉じ込めておくことってできますか?
> (WSHに関係なさそうな話ですみません。右手に表示する時にフォームの
> コントロールをVBScriptで操って一部自動化してるんですがね。)

親ウィンドウのスクリプトで、window_onunload()イベント発生時に、
フレームのURLを取得して何とかしよう、と思って試したのですが、
そもそも異なるドメインのフレーム内のオブジェクトには、親ウィンドウから
アクセスできないようになっているようです。(セキュリティの問題上だと
思いますが)

>  既出だったらすみません。文字列の配列の並べ替えをするのに、VBScriptから
> JScript の sort 関数を呼んで使うにはどうしたらいいんでしょうか?

既出です。
10-08 管理人むたぐち 2000-03-03 13:12

(余談ですが、2chネタで「既出」を「がいしゅつ」と読むのがありますが、
そもそも既出という言葉は存在するのだろうか?
http://saki.2ch.net/news/kako/962/962871899.html がいしゅつの発祥スレ、らしい)

> 質問ばかりじゃあれなので、VBScript の正規表現のデモでも。
> 適当な区切り文字で並べられたレコードから項目を拾い出す積もりです。

ありがとうございます。
正規表現はいいですよねー。


To: 松島 さん

昨日はすいませんでした。
夜が明ける前に脱落してしまったのです(^^;

> 月日は同じなのですが、年は違うのです。

そういうことを言うと歳が少し絞られますがいいのですか(笑)

> VB6用のCOMだったと思います。

では、VBをインストールしていないと使えないかも。

> 採算ラインに乗る顧客数が云百万人でしたっけ…。

のるかそるかの大バクチですねえ。
大丈夫なんかな。


To: たか さん

> WMIを使って
> ・ホスト名
> ・IPアドレス
> ・デフォルトゲートウェイ
> ・サブネットマスク
> を設定することは可能でしょうか?

24-44 管理人むたぐち 2000-11-15 16:10
24-39 おじゃる 2000-11-14 11:41
23-36 管理人むたぐち 2000-10-25 14:13
23-31 おじゃる 2000-10-24 16:22

このあたりを参考にしてください。
Win32_NetworkAdapterConfigurationクラスの各プロパティは
Read-Onlyですが、値設定のメソッドがいくつかあります。

IPアドレス、サブネットマスク… EnableStatic
デフォルトゲートウェイ… SetGateways
ホスト名っていうのがよくわかりませんが…。

あと、所属ドメインを変更する方法、ご存知の方がいらっしゃったら教えてください。
WMIじゃなくてADSIを使うのかもしれません。

筑集眺餅 さん 2001年 07月 01日 20時 14分 44秒

To:松島さん

>はじめまして〜(かな?)。
>>  右手のページを常に右のフレームに閉じ込めておくことってできますか?
>できません。
>
>ついでに、フレームは、HTML 4.01 Frameset と XHTML 1.0 Frameset では
>定義されていますが、その後の XHTML 1.1 では破棄されています。
>また、target属性も、HTML 4.01 Transitional と XHTML 1.0 Transitional >では
>定義されていますが、その後の XHTML 1.1 では破棄されています。
>というわけで、全ページにリンク集の部分を掲載して、
>スタイルシートを使ってフレームのような挙動になるようにしてみました。

初めまして〜。筑集家 95代当主眺餅でございます。(^^

いやぁ、「できない」って判ると胸のつかえがとれます。
ありがとうございます。

HTMLは、かじりたてなんで、よく判ってないんです。
教えてもらったスタイルシート版フレームも試してみますね。
うまくできたら、ここに報告します。

ではまた。

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

チャット開始。
でも、チャブーンさんと私しかいません(^^;
誰か来てー! (詳しくはメールください)

たか さん 2001年 07月 01日 00時 06分 08秒

はじめまして
いつも参考にさせていただいております
ありがとうございます
ちょっと解らないことがありまして教えていただきたいのですが
WMIを使って
・ホスト名
・IPアドレス
・デフォルトゲートウェイ
・サブネットマスク
を設定することは可能でしょうか?
環境は2000とNTでございます
どなたかご存知でしたらご教授お願いいたします


管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2001年 06月 30日 22時 29分 10秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: チャブーン さん & ALL

> いきなりですが、IRCチャットを開設しました。
>
> アドレスはwww.chabnet.jpになっています。
>
> ポート番号とパスワードは別途おしらせしますので、ご参加ください。
> #むたぐちさん経由で聞いていただいてもいいですし、私にお知らせくだされば
> #こちらの常連さんのような皆様であれば、パスワードやポート番号等ご案内
> #いたします

実は、私が提案したんですが(^^;

というわけで、みなさん、早速今日にでも一つどうですか?
参加希望の方は、私かチャブーンさんにメールをお願いします。
# 私のほうは5分間隔でメールボックスを監視してるので
# 連絡いただければ、即参加できると思います。
# といっても、まだ私もパスワードは知らない(^^;
# 今日中にチャブーンさんと連絡が取れないと、ぽしゃってしまうなあ…。

CHOCOA等のIRCクライアントをご用意ください。
http://www.labs.fujitsu.com/free/chocoa/

私は、夜が明ける前くらいまでつないでいられると思います。

松島 さん (matsushima@popup.org) 2001年 06月 30日 20時 30分 59秒
URL:http://www.popup.org/ai/

XSLT での整形処理が、ちょっとばかりマイブーム。

To: むたぐち さん

>> #実は誕生日が同じ日らしい。
>そういうことを言うと歳がばれますがいいのですか(笑)

あう、言葉足らず。
月日は同じなのですが、年は違うのです。

> これってシステム標準のCOMですか?

VB6用のCOMだったと思います。
#SPによって異なるかも…。

> まあ、かなーり無理してるのは間違いないですが。

採算ラインに乗る顧客数が云百万人でしたっけ…。

>> #私の業務の場合、どちらかと言うと、WSHは敵だったり(^^;;)。
>> #共有サーバの環境破壊の原因になるので。
>とすると、WSH伝道師の異名を持つ私は、敵の親玉(中ボス?)ですね。

となると、私は中ボスの手下にもなりますね!(笑)

> いいんじゃないでしょうか、。
> VBで言うところのSub Mainに当たるところでしょう。

Sub Mainは標準モジュールの記述で、フォームモジュールではないですよね。
#というよりも、HTA自体をフォームモジュールと見なしていいのかなあ。
#もっと曖昧に捉えた方がいいのかな(^^;;


To: 筑集眺餅 さん

はじめまして〜(かな?)。

>  右手のページを常に右のフレームに閉じ込めておくことってできますか?

できません。

ついでに、フレームは、HTML 4.01 Frameset と XHTML 1.0 Frameset では
定義されていますが、その後の XHTML 1.1 では破棄されています。
また、target属性も、HTML 4.01 Transitional と XHTML 1.0 Transitional では
定義されていますが、その後の XHTML 1.1 では破棄されています。

というわけで、全ページにリンク集の部分を掲載して、
スタイルシートを使ってフレームのような挙動になるようにしてみました。


<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>フレームのテスト</title>
<meta name="author" content="HOGE" />
<meta name="copyright" content="Copyright(C) 1999-2001 HOGE" />
<meta name="description" content="フレーム的なページ。" />
<style>
/* ******************************************
  実際に使うときには、スタイルシートを
  外部ファイルにしてリンクした方が良い。
  ****************************************** */

body{
margin:0em;
overflow:hidden;
color:#000; background:#cfe;
}

/* ******************************************
  本当は position:fixed; を使うべきだけど、
  現在一般に流通しているブラウザにサポート
  しているものがないらしい…(汗)。
  ****************************************** */

#Menu{
position:absolute; top:0%; left:0%;
margin:0em; padding:0.5em;
width:30%; height:100%;
overflow:scroll;
}
#Menu ul{
margin:0em 0.5em; padding:0em 0.5em;
}}
#Menu li{
list-style:none;
margin:0em; padding:0em;
white-space:nowrap;
}
#MainContents{
position:absolute; top:0%; left:30%;
margin:0em; padding:0.5em;
width:70%; height:100%;
overflow:scroll;
}
</style>
</head>
<body>

<!-- リンク用のメニュー -->
<div id="Menu">
<h1>目次</h1>
<ul>
<li>内容 1</li>
<li>内容 2</li>
<li>内容 3</li>
<li>内容 4</li>
<li>内容 5
<ul>
<li>内容 5-1</li>
<li>内容 5-2</li>
<li>内容 5-3</li>
</ul>
</li>
<li>内容 6</li>
</ul>
<hr />
</div>
<!-- リンク用のメニュー ここまで。 -->

<!-- 本文 -->
<div id="MainContents">
<h1>ちゃららりーん。</h1>
<p>ここに本文。</p>
<hr />
<address>hoge@example.com</address>
</div>
<!-- 本文 ここまで。 -->
</body>
</html>


んー。A要素にビヘイビアを結びつけて、クリック時にtarget要素の中身を
チェックして書き換えるようにできれば、もしかしたらできるのかも。
#新しいウィンドウで開く、とかを阻まなければOKかも。

筑集眺餅 さん 2001年 06月 30日 15時 48分 18秒

ども、筑集眺餅です。
いつもお世話になってます。

WSHは、日曜プログラマへの福音なので、がむばって教えを広めていただきたい
と思っとります。

ふたつばかり、質問してもいいですか?

IEの表示で、フレームで縦2つに分けて、左手を自作のリンク集、右手をリンク
先の内容表示にしたいと思うんですが、(ちょうど、WSH Labのトップページ
の感じで、右手は、別URLを表示させるって感じ)リンク先によっては、
表示の時に、target="_top" みたいなことをやってるみたいで、途中で左手の
フレームが消えて、全面表示になっちまいます。
 右手のページを常に右のフレームに閉じ込めておくことってできますか?
(WSHに関係なさそうな話ですみません。右手に表示する時にフォームの
コントロールをVBScriptで操って一部自動化してるんですがね。)

ふたつめ
 既出だったらすみません。文字列の配列の並べ替えをするのに、VBScriptから
JScript の sort 関数を呼んで使うにはどうしたらいいんでしょうか?
 VBScript で並べ替えのサブルーチンを書いて済ましていますが、せっかく
JScript に関数があるんだから、なるべくコードを書かずに済ませたいんです。

質問ばかりじゃあれなので、VBScript の正規表現のデモでも。
適当な区切り文字で並べられたレコードから項目を拾い出す積もりです。

sRec=InputBox("項目を並べて入れてみそ。")
Set oRxp=New RegExp:oRxp.IgnoreCase=True:oRxp.Global=True
oRxp.Pattern="(""[^""]*"")|([^,,、\s //]+)"
Set oMs=oRxp.Execute(sRec)
s="":For Each oM In oMs: s=s & vbTab & oM.Value & vbCr:Next
MsgBox "元データ:" & sRec & vbCr & s

ではまた。




チャブーン さん (mkobuna@chabnet.jp) 2001年 06月 30日 02時 07分 45秒
URL:http://www.chabnet.jp/

チャブーン@酔ってます です。

いきなりですが、IRCチャットを開設しました。

アドレスはwww.chabnet.jpになっています。

ポート番号とパスワードは別途おしらせしますので、ご参加ください。
#むたぐちさん経由で聞いていただいてもいいですし、私にお知らせくだされば
#こちらの常連さんのような皆様であれば、パスワードやポート番号等ご案内
#いたします

ちょっとへろへれなんで、今はこのへんで。

申し訳ありません>皆様

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2001年 06月 29日 22時 50分 39秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: あんのうん さん

>  Dim Exl
>
>  Set Exl = CreateObject("Excel.Application") '
>  Exl.Workbooks.Open("c:\book1.xls")
>  Exl.Visible = True
>  Exl.Run "test","test"

なるほど、マクロ実行のRunメソッドというのがあるんですね。
勉強になります。

私が言おうとしていたのは、マクロの本体部分である、
> Public Sub Test(str As String)
>   Worksheets("sheet1").Cells(1, 1) = str
> End Sub
を含めてスクリプト化するという方法でした。
この場合、
Call Test("test")
Sub Test(str)
Exl.Worksheets("sheet1").Cells(1, 1) = str
End Sub
のような感じになると思います。Exl.なんとか.Worksheets...
とやる必要があるかもしれません。


To: ななこたん

> #実は誕生日が同じ日らしい。

そういうことを言うと歳がばれますがいいのですか(笑)

> > HTA でステータスバーを出す方法がわかりません
>
> <object id="hoge" width="100%" height="20" classid="CLSID:8E3867A3-8586-11D1-B16A-00C0F0283628"></object>
>
> という感じで出ます。(COMを呼び出しただけです)

これってシステム標準のCOMですか?
うちの環境では動きましたが、もしかしたらVB付属のコントロールかも?

> > あと、Yahoo! BBは泣けてくるね。
> > 3年先どころか、1ヶ月先の状況すら読み損ねた。
>
> サービス開始から半年で傾いて1年でポシャる可能性も無きにしもあらずだと思います。(^^;

東めた+ソフトバンク+Yahoo=?

まあ、かなーり無理してるのは間違いないですが。

> #私の業務の場合、どちらかと言うと、WSHは敵だったり(^^;;)。
> #共有サーバの環境破壊の原因になるので。

とすると、WSH伝道師の異名を持つ私は、敵の親玉(中ボス?)ですね。

> VBで OnLoad イベントでの実行を期待する記述は、そこにして置けばよかったのですね。
> なんとなく、言語仕様(?)として、それでいいんかい? と思ってしまいますけども(^^;)。

いいんじゃないでしょうか、。
VBで言うところのSub Mainに当たるところでしょう。


To: ちぇりー さん

> Set objExcel = CreateObject("Excel.Application")
> objExcel.Workbooks.open FileName:="C:\book1.xls"
>
> objExcel.Run "book1.xls!test","data1","data2"
>
> Set objExcel = Nothing

この場合、VBとVBSの違いは、「名前付き引数」(FileName:=""のこと)が
使えるか使えないかの差だけですね。


To: いちにい さん

例のスクリプト、おっしゃるとおりに修正したら動くようになりました。
WSHでタイトルバーのキャプションを列挙、少し感動しました。

ちぇりー さん 2001年 06月 29日 15時 01分 25秒

To あんのうんさん、むたぐちさん

Excelのマクロ、呼び出せましたよ〜〜。
ありがとうございます!(^-^)

VBとほとんど一緒なんですね。で、VBの方は以下のようになります。

C:\book1.xlsに、
Sub test(data1,data2)
Worksheets("sheet1").Cells(1, 1) = data1
Worksheets("sheet1").Cells(1, 2) = data2
End Sub

などというマクロがあったとして、

Dim objExcel As Object

Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.open FileName:="C:\book1.xls"

objExcel.Run "book1.xls!test","data1","data2"

Set objExcel = Nothing

という具合です。

ではではありがとうございましたー! m(__)m

ちぇりー さん 2001年 06月 29日 15時 00分 57秒

To あんのうんさん、むたぐちさん

Excelのマクロ、呼び出せましたよ〜〜。
ありがとうございます!(^-^)

VBとほとんど一緒なんですね。で、VBの方は以下のようになります。

C:\book1.xlsに、
Sub test(data1,data2)
Worksheets("sheet1").Cells(1, 1) = data1
Worksheets("sheet1").Cells(1, 2) = data2
End Sub

などというマクロがあったとして、

Dim objExcel As Object

Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.open FileName:="C:\book1.xls"

objExcel.Run "book1.xls!test","data1","data2"

Set objExcel = Nothing

という具合です。

ではではありがとうございましたー! m(__)m

松島 さん (matsushima@popup.org) 2001年 06月 29日 03時 04分 42秒
URL:http://www.popup.org/ai/

仕事と私事で忙しくて、少しご無沙汰してしまいました。
サーバ立ち上げのリミットが迫ってきてピンチなので、
また数週間書き込みが途絶えてしまうかも…。

全く関係ないのですが、某「嶋」の女優の結婚報道の影響で、それ以来、
ネットゲーム上での私のハンドルが「ななこたん」になってしまったのはヒミツです。(ぉ)
#実は誕生日が同じ日らしい。


以前出ていた、PHSと電車とペースメーカについての話題に関連して。
http://slashdot.jp/article.pl?sid=01/06/13/0911255
http://slashdot.jp/article.pl?sid=01/06/26/1517242
こんな感じらしいです。


To: むたぐち さん

> ないですねえ。
> 誰かさそってください。

お盆近くに東京に遊びに行きます。(というか夏コミ)
どなたか来られますか?(笑)


To: いちにい さん

> オフ会って行ったこと無いんですよ。
> 行ったこと有ります?

えっと、何度も。
旧知の仲でもパソ通/ネット上でのコミュニケーションが多くなって、
なおかつ遠方に住んでいたりすると、たまたま会う時に人を集めて盛り上げると、
それだけでオフ会と称する事になってしまいまったり(^^;)。(笑)

#でも、無闇に「オフ会」という言葉を使うと、
#オンライン中毒者と思われるかも?


To: ぺ吉 さん

> HTA でステータスバーを出す方法がわかりません

<object id="hoge" width="100%" height="20" classid="CLSID:8E3867A3-8586-11D1-B16A-00C0F0283628"></object>

という感じで出ます。(COMを呼び出しただけです)


To: むたぐち さん

> 何か別ファイルにするのが気に入らないようです(^^;

クラス毎/htmlテンプレート毎にファイルを分けてCGI作ったら、
1回のアクセスの度に10以上のファイルを内部でインクルードして処理するシステムに
なってしまいました。(重い^^;)

でも、プログラムの見通しは良くなりました。


> あと、Yahoo! BBは泣けてくるね。
> 3年先どころか、1ヶ月先の状況すら読み損ねた。

サービス開始から半年で傾いて1年でポシャる可能性も無きにしもあらずだと思います。(^^;


To: いちにい さん

>> 日曜日は静かだ(笑)
>> やっぱりみなさんco.jpな方なんでしょうかねえ?
>そんな感じですね。
>やっぱり、仕事上の定型処理なんかを、WSHで処理するってのが、
>多いんですかね?

私の場合、週末は私事に専念しているので、
どちらかと言うと気分転換をしたくてたまらない仕事中に書き込んだり、
平日に書き込んだりという事が多いです。
#私の業務の場合、どちらかと言うと、WSHは敵だったり(^^;;)。
#共有サーバの環境破壊の原因になるので。


To: Aki-Aki さん

>> Windowsでは秀丸(Ver.3)で、Unix系ではvi系です。
> あ、全く私と同じですね!

最近、gvim というviのGUI版を使い始めて、メニューに書いてあるショートカットで、
vi本来のショートカットを色々覚えてしまいました。
範囲選択(Ctrl+v)してCase反転(~)とか、けっこう便利ですね。
Insert/Replaceモードでは、どこでもDel/Bsキーが利いたりして、
一般的なテキストエディタっぽい使用感で、そう違和感なく使えそうです。
#gvim には Windows版もあるみたいですね。


To: Black Rain さん

> 画面の初期サイズについての話題が中途半端に終わっていたので
> 今更ながら対処法を載せておきます

VBで OnLoad イベントでの実行を期待する記述は、そこにして置けばよかったのですね。
なんとなく、言語仕様(?)として、それでいいんかい? と思ってしまいますけども(^^;)。


To: いちにい さん

> 1)ツールバーに、色々登録しても、フローティングツールバーに、
> 2)ツールバーに登録できる数が制限されてる。

自分は、ショートカットにしてしまったので、(保存終了が Ctrl+Shift+S 等)
ツールバーもファンクションキーメニューも消してしまってます。
#まるでルーラ付きのメモ帳。

> 自分は、シェアにレジストしたこと無いです。(ケチ。と言うか面倒くさい。 笑)

(クレジットカード持っていると)ベクターのシェアレジ等が便利です。

> やっぱ、色んなケースでテストできる環境が無いといかんですね。

そうですね。モニタの色や表示具合は、環境によって大きく異なりますからね。

#注:液晶でクッキリハッキリのアイコン画像がCRTで潰れて見えたという話。
#ソフトウェアのテスト環境ではないです(^^;


あんのうん さん 2001年 06月 29日 02時 15分 56秒

こんばんわ

>ちぇりーさん

ExcelオブジェクトのRunメソッドを使って引数付で
呼び出せます。
凄く簡単ですがサンプルを、、

・book1のVBAProjectに標準モジュールを追加して
 下のプロシージャを追加し、C:\book1.xlsとして
 保存します。

 Public Sub Test(str As String)
  Worksheets("sheet1").Cells(1, 1) = str
 End Sub

・呼出し側のスクリプトファイルは

 Dim Exl

 Set Exl = CreateObject("Excel.Application") '
 Exl.Workbooks.Open("c:\book1.xls")
 Exl.Visible = True
 Exl.Run "test","test"

でOKです。
では。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2001年 06月 29日 02時 06分 53秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: いちにい さん

> > 昨日の何かの大阪オフの会場、うちのそばだよ(笑)
>
> で、行ったんですか?(笑)

逝ってません(^^;
だいたい私は何か。(最近はembryoと言うのが一般的)コミュニティウォッチャーで
しかないですし。
それと、オフ会があったことを知ったのが終わった後でしたので。
知ってたら覗き見、あるいは何食わぬ顔で隣の席に座ったりしてたでしょう(^^;

> オフ会って行ったこと無いんですよ。
> 行ったこと有ります?

ないですねえ。
誰かさそってください。

> やっぱ、VBSから、APIを使うのは、辛いっすね。
> と言うか、もともと使うようになってないので、危ないっす。<今頃気づいた。

はい。
結局、結論はいつもそこに行き着きます。

> 「秘密探偵 みってい君」、じゃあ無いですよね。(笑)
> コレには、オマケ付いてないし。

ちゃいますねえ。
なんか、わりと有名なツールなはずですが。

> 別に、普段作る物が、それを必要としないなら、無理に使う必要もないと思います。
> どうせ趣味だし、遣りたいときにやれば良いかと。

賛成+1。

> アレは、XMLなんですか。
> と言うか、XML自体良く知りませんが。(汗)
> どうせなら、同じ書式にしといてくれたらいいのに。

ついでに言うと、wsfファイルもXMLですね。

> 定数?どれでしょ。

ないでしょ?
# 以前この掲示板で話題になったような。

> http://www.microsoft.com/JAPAN/developer/library/Vbenlr98/vastmdeclare.htm
>
> に、Optional、ParamArray の説明があります。
> しかし、プロシージャ以外でも、Optionalが使えるとは、知りませんでした。

ありがとうございます。
私はoptionalの存在自体知りませんでした。

> 但し、エクセルVBAで行けるかどうか判りません。

いけると思います。
VBSではDeclare関係はばっさり省かれているのでだめですけど。


To: ひろすけ さん

> サーバー(W2000)とクライアントA(W98)サーバーには、test1.vbs
> クライアントAには、test2.vbs
>
> サーバーのtest1.vbsを実行すると
> クライアントAのtest2.vbsのファイルをクライアントA側で実行する
>
> このとき実行するのはサーバー(W2000)ですが、
> もし、W98からW98またはW2000に実行するケースも考えてますので、
>
> 実行マシンのOSになるべく依存しないプログラム作りを考えてます。
> ぜひ、アドバイスお願いします。

WSH5.6のWSH Remoteがまさにその動作を実現すると思います。
詳しくはこちら。私もよく知らないんですけど(^^;
http://www.asia.microsoft.com/japan/developer/workshop/languages/clinic/scripting11132000.asp

> P.s.W98にはWMI core softwearはインストール済みです。

WMIを使うなら
28-46 管理人むたぐち 2001-01-21 20:41
28-28 管理人むたぐち 2001-01-16 01:13
を参考にしてください。リモートでメモ帳を立ち上げるサンプルです。
wscript.exe test2.vbs
をコマンドラインに指定してやればいいでしょう。


To: Masa さん

> Reg Writeメソッドでは「REG_MULTI_SZ」での値変更はできないようです。

そのようですね。

> WSHでネットワークの設定変更をしたいのですが、Reg Writeを使用せずに変更する
> 方法はあるのでしょうか?それとも、Reg Writeを使用して実現できるのでしょうか?
> よろしくおねがいします。

WMIを使う方法が確実です。
12-45 管理人むたぐち 2000-04-23 00:01

もしくは、レジストリエディタで該当キーを書き出しておき、それを
WshShell.Run "regedit.exe /s key.reg",,True
のように結合させてやるという手があります。


To: MEJI さん

> はじめまして、パソコン初心者の私も一念発起でDDEの勉強の為に、このHPを
> 参考にWHSのダウンロードを試みたのですが、できなかった…あれっ?
> マイクロソフトの指定HPに行ってみたのですが、ダウンロードできましぇ〜ん。

いや、できましぇ〜ん、といわれても困るんですが(^^;
# それと、DDEと関係あるのだろうか…?

> 最近のIE(5.0/5.5)にも入ってないようだし、なんか変わったのでしょうか。

いえ、入ってます。
IEのインストーラーで「Visual Basic スクリプトサポート」を
追加インストールしてください。

あと、ちぇりーさんがおっしゃるとおり、Win98/2000/MEには最初から付属してます。


To: ちぇりー さん

> 今、VBScriptでExcelのマクロを定期的に動かすツールを
> 作ろうとしているのですが、Excelのマクロを動かす方法が
> さっぱりわからず、困っています。

マクロを呼び出すのではなく、Excelをオートメーションで動かすなら
結構簡単にできます。
詳しくは、Googleとかで
Excel.Application
というキーワードで検索するといろいろ出てきます。

岡山の鉄人さんのページがお勧め。
http://www.hi-ho.ne.jp/tetsuzo/index.htm

> 一応、VBのExeファイルを作って、VBScriptからそれを起動し、
> そのExeファイルからExcelマクロを動かすとどうにかなるのですが、
> 直接Excelマクロを動かす方法もあったら、ぜひ教えてください。

VBでExcelマクロを動かす方法、知りたいので教えていただけますか?
# そっちの方が難しそうに思えるのですが(^^;


To: フラン さん

> cドライブの空き容量を取得しようと下記の通りに指定しても間違った空き容量が表示されてしまいます。
> どうしたらよいのでしょうか?!

FileSystemObjectのバグ(制限)で、環境によっては2G以上の領域を認識できません。
WSH5.6ではこのバグが修正されています。

以下、参考まで。
22-30 管理人むたぐち 2000-09-28 20:26 〜 23-23 管理人むたぐち 2000-10-18 17:18
以前、AKiOSさん、【おじさま】さんと熱く議論したネタです(^^;

フラン さん 2001年 06月 28日 18時 43分 17秒

教えてください。

cドライブの空き容量を取得しようと下記の通りに指定しても間違った空き容量が表示されてしまいます。
どうしたらよいのでしょうか?!

フロッピー等の空き容量は正常に表示されます。


Set FS=CreateObject("Scripting.FileSystemObject")
strDrive=FS.GetDriveName("C:\")
Set Drive=FS.GetDrive(strDrive)

Total=FormatNumber(Drive.FreeSpace/1024,0)

MsgBox(Total)

ちぇりー さん (cherry@pfu.fujitsu.com) 2001年 06月 28日 10時 23分 21秒

はじめまして。ちぇりーと申します。

今、VBScriptでExcelのマクロを定期的に動かすツールを
作ろうとしているのですが、Excelのマクロを動かす方法が
さっぱりわからず、困っています。
一応、VBのExeファイルを作って、VBScriptからそれを起動し、
そのExeファイルからExcelマクロを動かすとどうにかなるのですが、
直接Excelマクロを動かす方法もあったら、ぜひ教えてください。
引数の渡し方も分かるととても助かります。

どうぞよろしくお願いします。


To MEJIさん

こんにちは。
私も初心者でよくわからないですが、私はダウンロードうまくできましたよ。
ちなみにWin98です。
それで、もしダウンロードができなくても、たぶん既にEXEファイルは
あるのではないかと思います。(古いのが・・・(^^;)
C:\Windowsに「wscript.exe」があれば、それがWSHの実行ファイル
だそうなので、VBS等が使えると思います。
C:\WINDOWS\SAMPLES\WSH に、VBS、JSのサンプルもありますよ。

見当違いなこと言ってたらすみません。

ではでは〜

MEJI さん 2001年 06月 27日 20時 38分 53秒

はじめまして、パソコン初心者の私も一念発起でDDEの勉強の為に、このHPを
参考にWHSのダウンロードを試みたのですが、できなかった…あれっ?
マイクロソフトの指定HPに行ってみたのですが、ダウンロードできましぇ〜ん。
最近のIE(5.0/5.5)にも入ってないようだし、なんか変わったのでしょうか。
管理人さんお手数ですが教えて下さい。

Masa さん 2001年 06月 27日 16時 28分 05秒

はじめましてMasaといいます。
以下、ご存知の方、いらっしゃいましたら、ご教授願いたく思います。
レジストリの値を変更するスクリプトを作成しようと思いましたが
Reg Writeメソッドでは「REG_MULTI_SZ」での値変更はできないようです。
(http://www.asia.microsoft.com/Japan/Developer/Scripting/default.htm
のランゲージリファレンスのReg Writeの説明)
WSHでネットワークの設定変更をしたいのですが、Reg Writeを使用せずに変更する
方法はあるのでしょうか?それとも、Reg Writeを使用して実現できるのでしょうか?
よろしくおねがいします。

ひろすけ さん 2001年 06月 27日 15時 02分 50秒

こんにちは、ひろすけです。
いつも助けて頂いてありがとうございます。

また、助けて頂きたいのですが、下記のことができるのでしょうか?

<したいこと>

サーバー(W2000)とクライアントA(W98)サーバーには、test1.vbs
クライアントAには、test2.vbs

サーバーのtest1.vbsを実行すると
クライアントAのtest2.vbsのファイルをクライアントA側で実行する

このとき実行するのはサーバー(W2000)ですが、
もし、W98からW98またはW2000に実行するケースも考えてますので、

実行マシンのOSになるべく依存しないプログラム作りを考えてます。
ぜひ、アドバイスお願いします。

P.s.W98にはWMI core softwearはインストール済みです。





どら さん 2001年 06月 26日 17時 00分 34秒

To:いちにいさん

Excelのマクロの件
ありがとうございます。
早々に試して見ます。

いちにい さん 2001年 06月 26日 12時 50分 25秒

To: 管理人むたぐち さん

> 昨日の何かの大阪オフの会場、うちのそばだよ(笑)

で、行ったんですか?(笑)
オフ会って行ったこと無いんですよ。
行ったこと有ります?


>> 多分、VBSでは、駄目な感じですね。
>> VBでは、API(lstrlen, lstrcpy)宣言の引数の型を、「Any」にして、…以下略。
> なるほど、VBSの仕様が原因のDynaCallの制限の一つな訳ですね。

やっぱ、VBSから、APIを使うのは、辛いっすね。
と言うか、もともと使うようになってないので、危ないっす。<今頃気づいた。


>> Spy++見たく、リストビューで列挙するタイプは、無かったような・・・。
> そう言えば、押せないボタンを押せるようにするツールのおまけ機能に
> そういうのがあったような。
> ツール名失念。

「秘密探偵 みってい君」、じゃあ無いですよね。(笑)
コレには、オマケ付いてないし。


>> VBSでは、コントロールとか無いですけど、汎用性の高い、関連のある自作関数なんかを、
>> 1つに纏めてパックしておけば、一々ネタ帳から関数をコピペしなくても楽に機能を、
>> 追加できます。
> ええ、わかっているんですけども…。
> 何か別ファイルにするのが気に入らないようです(^^;

コンポーネントも、別ファイルなんで、似たようなもんですよ。


>> で、早速、WSCを使って、例のウインドウ名の列挙関数を、comにしてみました。
> クラスを使いこなせるかどうかが、VBプログラマーの一つの境界線じゃないかなあ
> とか思ってます。
> いや、使いこなせない私が言っても、何の説得力もないですけど。
> 同じ理由でwscも使いこなせてません(^^;

自分も、取り敢えず使ってますけど、使いこなしては、無いです。
別に、普段作る物が、それを必要としないなら、無理に使う必要もないと思います。
どうせ趣味だし、遣りたいときにやれば良いかと。


> wscは、VBSのクラスを使わないみたいですね。
> wscでは、プロパティやメソッドはXMLで定義します。
> # でも、なぜか定数は定義できない(^^;

アレは、XMLなんですか。
と言うか、XML自体良く知りませんが。(汗)
どうせなら、同じ書式にしといてくれたらいいのに。
定数?どれでしょ。


To: どら さん

> Excelのマクロで、関数の引数が可変個数っていうのは実現可能でしょうか?

そう言うことを、考えたこともありませんでした。
で、興味があったので探してみました。

http://www.microsoft.com/JAPAN/developer/library/Vbenlr98/vastmdeclare.htm

に、Optional、ParamArray の説明があります。
しかし、プロシージャ以外でも、Optionalが使えるとは、知りませんでした。

「Optional」の場合こんな感じ。
関数(DLL)
 long ftSpotDate(long start_date, int count, int cur) // 引数は普通に。

マクロでの関数(DLL)定義
 Declare Function ftSpotDate Lib "libft.dll" (ByVal sDate As Long, ByVal cnt
   As Integer, Optional ByVal cur As Long) As Long
           '↑省略したい引数以降、「Optional」を指定。

関数使用個所
 ValSpotJPY = ftSpotDate(OpeDateL, 1) '省略して実行


但し、エクセルVBAで行けるかどうか判りません。


ぺ吉 さん 2001年 06月 25日 22時 53分 37秒

>>簡単に出す方法は私も知りません。(ないような気がする)
>>AKiOSさんの掲示板記事検索HTAでは、ステータスバー"もどき"を
>>実現されています。参考にしてみてください。

即答ありがとうございます
簡単に出来ないんですね。
しかたないので <BODY> 内に何かのタグで
メッセージエリアをもうけることにします...

ひろすけ さん 2001年 06月 25日 19時 20分 47秒

to むたぐちさん

ショートカットアイコンの件
ありがとうございます。
いつもお礼がおそくなりすみません。

ひろすけ

どら さん (ai@swift.co.jp) 2001年 06月 25日 14時 57分 00秒

Excelのマクロで、関数の引数が可変個数っていうのは実現可能でしょうか?


ちなみにc言語で書いた関数(DLL)がこれ

  −> long ftSpotDate(long start_date, int count, ...)

マクロでの関数(DLL)定義がこれ

  −> Declare Function ftSpotDate Lib "libft.dll" (ByVal sDate As Long, ByVal cnt As Integer, ByVal cur As Long) As Long

関数使用個所がこれ

  −> ValSpotJPY = ftSpotDate(OpeDateL, 1, Hc.CurNo)

この場合、関数を実行すると「DLLが呼べない」って怒られちゃいます。
原因は、関数の引数がDLL側と、マクロの宣言部で異なるからだと思っています。

従って、マクロのDLL宣言部を正しく書けばよろしいかと。。。
で、どうやって書くのでしょうか?
それともやっぱりエクセルマクロだけでは実現不可能?

どら さん (ai) 2001年 06月 25日 14時 56分 37秒

Excelのマクロで、関数の引数が可変個数っていうのは実現可能でしょうか?


ちなみにc言語で書いた関数(DLL)がこれ

  −> long ftSpotDate(long start_date, int count, ...)

マクロでの関数(DLL)定義がこれ

  −> Declare Function ftSpotDate Lib "libft.dll" (ByVal sDate As Long, ByVal cnt As Integer, ByVal cur As Long) As Long

関数使用個所がこれ

  −> ValSpotJPY = ftSpotDate(OpeDateL, 1, Hc.CurNo)

この場合、関数を実行すると「DLLが呼べない」って怒られちゃいます。
原因は、関数の引数がDLL側と、マクロの宣言部で異なるからだと思っています。

従って、マクロのDLL宣言部を正しく書けばよろしいかと。。。
で、どうやって書くのでしょうか?
それともやっぱりエクセルマクロだけでは実現不可能?

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2001年 06月 24日 17時 03分 23秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

昨日の何かの大阪オフの会場、うちのそばだよ(笑)


To: 筑集眺餅 さん

> 使ったことのない execute なんて使ったのが仇でしたね。(^^;
> 私の環境(Win2000sp2)では動いているようなんですけどね。

executeをはずして実行してみたんですが、やはりWin98では落ちてしまいます。
Win2000sp2では動きますが…。


To: いちにい さん

> 多分、VBSでは、駄目な感じですね。
> VBでは、API(lstrlen, lstrcpy)宣言の引数の型を、「Any」にして、
> 呼び出し側で、「ByVal」キーワードを指定して呼び出さないと、
> 動かないんですが、VBSでは、コレが出来ないんですよ。

なるほど、VBSの仕様が原因のDynaCallの制限の一つな訳ですね。

> ベクター辺りに、ウインドウの属性を調べるツールがあったと思いますが、
> Spy++見たく、リストビューで列挙するタイプは、無かったような・・・。

そう言えば、押せないボタンを押せるようにするツールのおまけ機能に
そういうのがあったような。
ツール名失念。

> VBSでは、コントロールとか無いですけど、汎用性の高い、関連のある自作関数なんかを、
> 1つに纏めてパックしておけば、一々ネタ帳から関数をコピペしなくても楽に機能を、
> 追加できます。
> 関数をコピペだと、問題があったときに、その関数を使った全てのスクリプトファイルに、
> 変更を掛けないと行けないですけど、クラスとかなら、それ1つを変更すれば、
> 即、反映されます。

ええ、わかっているんですけども…。
何か別ファイルにするのが気に入らないようです(^^;

> で、早速、WSCを使って、例のウインドウ名の列挙関数を、comにしてみました。
> 100行位有った、スクリプトも、20行以下になってスッキリです。
> たまたま、comにしましたが、クラスを使った場合でも同じ様なもんです。
> VBS以外で使わないなら、クラスでも良いいと思いますよ。

クラスを使いこなせるかどうかが、VBプログラマーの一つの境界線じゃないかなあ
とか思ってます。
いや、使いこなせない私が言っても、何の説得力もないですけど。
同じ理由でwscも使いこなせてません(^^;

wscは、VBSのクラスを使わないみたいですね。
wscでは、プロパティやメソッドはXMLで定義します。
# でも、なぜか定数は定義できない(^^;

> Else
>   sBuff = ""
> を、削除すれば、動くと思います。

あとで試してみます。
# Win98は今手元にないので。


To: ぺ吉 さん

> HTA でステータスバーを出す方法がわかりません
> 簡単に出せるのかもしれませんが、資料がなくて...

簡単に出す方法は私も知りません。(ないような気がする)
AKiOSさんの掲示板記事検索HTAでは、ステータスバー"もどき"を
実現されています。参考にしてみてください。

ぺ吉 さん 2001年 06月 24日 11時 22分 48秒

質問なんですが
HTA でステータスバーを出す方法がわかりません
簡単に出せるのかもしれませんが、資料がなくて...
わかる方、教えてきただきたい

Return