ビリ さん (bili@mua.biglobe.ne.jp ) 2002年 10月 08日 00時 47分 59秒
URL:http://www5e.biglobe.ne.jp/~bili/

昔は某住宅メーカーの下請けだった、不況の呼び声が立つか立たないかって
時にいきなり切り捨て、困った挙句に会社を作れど、デフレスパイラルの渦の中。才能やデザイン力が在っても、この時代何の意味も成さない。そんな時 誰でも出来て 人に涙を流して喜んで貰える仕事に巡り合えました。コツコツと頑張れば報われる仕事です。さあ 頑張ろう〜

s さん 2002年 10月 08日 00時 40分 30秒

ミスった。前はスペースを置換してうまくいってたと思ったけど。

1) 「既存で存在しない」は矛盾してる。"既存で"はいらないのでは?
2) FSO.BuildPath()にフルパスを返す機能は無いので1つ目のは必要ない。
3) >If Fs.FileExists(folderpath)=false Then
>'もしファイルが既存で存在しないなら作成
>filepath=Fs.BuildPath(folderpath,FileName)
>Fs.CreateTextFile filepath
>'5.新しく作ったフォルダに、0バイトのテキストファイルを作成
>End If
このif文が常に実行されてます。filepathを得てからIf Fs.FileExists(filepath)して下さい。

間違い探しは楽しいですが既に自己解決してそうな問題ですね。。

s さん 2002年 10月 08日 00時 38分 43秒

1) 「既存で存在しない」は矛盾してる。"既存で"はいらないのでは?
2)  FSO.BuildPath()にフルパスを返す機能は無いので1つ目のは必要ない。
3) >If Fs.FileExists(folderpath)=false Then
   >'もしファイルが既存で存在しないなら作成
   >filepath=Fs.BuildPath(folderpath,FileName)
   >Fs.CreateTextFile filepath
   >'5.新しく作ったフォルダに、0バイトのテキストファイルを作成
   >End If
   このif文が常に実行されてます。filepathを得てからIf Fs.FileExists(filepath)して下さい。

間違い探しは楽しいですが既に自己解決してそうな問題ですね。

まさ さん 2002年 10月 07日 19時 47分 28秒

ファイルに思ったような書き込みができません。

WriteLog "a","ABCDEFG0123456"
WriteLog "a","ABC"

Function WriteLog(FileName,Message)
'初期処理
Const ForReading = 1,ForWriting = 2,ForAppending = 8 '定数の指定
Dim Fs,folderpath,filepath
Set Fs = WScript.CreateObject("Scripting.FileSystemObject")
Const foldername="e:\log" 'ログを作成するフォルダを指定

folderpath=Fs.BuildPath(foldername,"")
'新しく作成するフォルダのフルパスを得る

If Fs.FolderExists(folderpath)=false Then
'もしフォルダが既存で存在しないなら作成
Fs.CreateFolder folderpath
'フォルダを作成
End If

If Fs.FileExists(folderpath)=false Then
'もしファイルが既存で存在しないなら作成
filepath=Fs.BuildPath(folderpath,FileName)
Fs.CreateTextFile filepath
'5.新しく作ったフォルダに、0バイトのテキストファイルを作成
End If

'メイン処理
Set oTs1 = Fs.OpenTextFile(filepath,ForAppending)
'ファイルを書き込みモードで開く
oTs1.WriteLine Message
oTs1.WriteBlankLines 1
oTs1.close

End Function

として、実行するとaのファイルには
「ABC」しか書き込まれないのですが、何がおかしいのでしょうか??



つちや さん 2002年 10月 07日 09時 22分 45秒

Dear シナプス さん

> このWSC登録できないです

コメント部分を削除しても無理でしょうか?
私が試した範囲では、全角文字が含まれていると、
それがどこであろうと登録できなかった記憶があります。

シナプス さん 2002年 10月 05日 06時 46分 19秒

このWSC登録できないです
どこがおかしいのかどなたかお教えください。
まだ中身はないけど作成する予定です。
とりあえず骨格が出来たので登録しようとしたら動かなくて。

<?xml version="1.0" ?>
<?Component Error="True" Debug="True"?>

<package>
<component>
<registration progid="Sinapusu.TextLap" description="TextLap" version="1.0"/>


<public>
<comment>
テキストストリームオブジェクトのラップ
LastAppendで最後に追加
NewOverWriteでTextの中身を消して新しく
ReadFarstLineで一行だけ読み込み
ReadAllで全ての行を読み込む
</comment>
<method name="LastAppend"/>
<method name="NewOverWrite"/>
<property name="ReadFarstLine"/>
<property name="ReadAll"/>
</public>


<script language="VBScript">
<![CDATA[

Option Explicit

Sub LastAppend(strFilePath,strWriteDate)
End Sub


Sub NewOverWrite(strFilePath,strWriteDate)
End Sub

Function ReadFarstLine(strFilePath)
End Function


Function ReadAll(strFilePath)
End Function
]]>
</script>
</component>
</package>

jin-ren さん 2002年 10月 04日 21時 32分 42秒

ただし、履歴フォルダの場合のみのようです。

です。今度こそ…これで文字化けしたら諦めます。 :)

jin-ren さん 2002年 10月 04日 21時 31分 00秒

最後、文字化けしてしまいました…

ただしねフ鬟侫D襯世両豺腓里澆里茲Δ任后」

です。

jin-ren さん (sleipnir@xi.sub.jp) 2002年 10月 04日 21時 28分 50秒
URL:http://sleipnir.sub.jp

管理人さん、この間はありがとうございました。

ShellNameSpaceについて、履歴表示の変更方法がわかりましたのでご報告に参りました。

 CountViewTypes
 SetViewType

この2つを使用します。
あからさまに「SetViewType」が怪しいと思っていたのですが、
これ単独では動作しませんでした。
まず、どんな形でもいいので一度「CountViewTypes」を呼びます。

 lngRtn = nsc.CountViewTypes;

その後、「SetViewType」に値を入れます。

 -1:日付順
  0:サイト順
  1:サイトを表示した回数順
  2:今日表示したページ順

これで変更されます。
ただしねフ鬟侫D襯世両豺腓里澆里茲Δ任后」

dai さん 2002年 10月 04日 19時 08分 55秒

ADO接続を行い
Accessのテーブルに固定長テキストをインポートしたいのですが
方法がわかりません。
どなたかご教授お願い致します。
固定長フィールドを指定の文字数で区切りたいです。

へろ さん 2002年 10月 02日 21時 26分 10秒

ActiveDirectory(AD)に登録されているユーザーのパスワード変更(リセット)WSHをADSIを用いて作成しています。

<環境>
ADサーバー:windows2000server
DBサーバー(クライアント):Windows2000server

<条件>
@現在使用中のパスワードは用いない(よって、ChangePasswordは使用できない。)
Aスクリプトを実行するDBサーバー(クライアント)はADに参加していない。

上記を満たすスクリプトを作成中なのですが、なかなかうまくいきません。

下記のユーザー「user_a」のパスワードを変更するスクリプト(抜粋)はADサーバーでは正常に動きます。(当然だと思いますが・・・。)
(SetPasswordではなく、ChangePasswordを用いて実行した場合は、DBサーバー(クライアント)でも正常に動作します。しかし、それでは条件を満たしていません。)

Set objDs = GetObject("LDAP:")
Set objContainer = _
objDs.OpenDSObject("LDAP://111.111.111.111/ou=xxxx,dc=xxx,dc=xxxx,dc=xxx", _
"Administrator", "password", ADS_SECURE_AUTHENTICATION)

Set objUser = objContainer.GetObject("user", "cn=user_a")

objUser.SetPassword "newpass"
objUser.SetInfo

DBサーバー(クライアント)で実行すると下記のようなエラーがでます。
-2147023570 オートメーション エラーです。
ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。
一通り資料、HPも見ましたがわかりませんでした。
周りにも詳しい人がおらず、非常に困っております。もし、わかる方がおりましたらご教授お願い致します。

mogu さん 2002年 10月 01日 10時 39分 49秒

はじめまして。

早速ですが、WSHからJavaを起動させたいと思い、

Set WshShell = Wscript.CreateObject("WScript.Shell")
WshShell.Run "java パッケージ名.クラス名 パラメータ"

と記述し、WSHファイルダブルクリックして実行してみたのですが、エラーがでているようです。
「でているようです」というのは、コンソール(?java.exeっていう画面)が閉じてしまうので
どのような結果がでているか分からない(思い通りの結果になっていない)のです。

どなたかご存知の方、いらっしゃいましたらご教授いただけないでしょうか?
(コンソールを開きっぱなしにする方法もゥァヒ
よろしくお願い致します。

さざなみ さん 2002年 10月 01日 10時 14分 55秒

さざなみです。

えん さん
> 問題解決したみたいです。

よかったですね。

> ネットをみてたら急にファイルがダウンロードされて感染して
> しまったみたいです。

<body onload=func()>でjavascriptやvbscript
が実行されるサイトも多いですからね。

で、思ったのですが、onload=func()を無効にする方法ってありますか。
onunloadとかは簡単に無効にできるんですが、onloadだけは難しいです。

えん さん 2002年 09月 30日 23時 00分 27秒

問題解決したみたいです。さざなみさんありがとうございました。
また何かあったらよろしくお願いします。

えん さん 2002年 09月 30日 22時 21分 27秒

えんです。
さざなみ さん ありがとうございます。
しかしながら
http://www.trendmicro.co.jp/vinfo/virusencyclo/default5.asp?VName=VBS_PINOCC.Aをみても解決できなかったので投稿したのですが…。

どこで入手したかとのしつもんなんですけど、ネットをみてたら急にファイルがダウンロードされて感染してしまったみたいです。

dd さん 2002年 09月 30日 17時 44分 38秒

はじめまして
accessを使わずにAccessにアクセスして
クエリーをテキストファイル(定義ファイルを使用して)にエクスポートする方法
を教えて頂けないでしょうか?

どうぞ宜しくお願い致します。

お松 さん 2002年 09月 30日 16時 15分 45秒

初めて投稿します。
お松と申します。
よろしくお願いします。

現在、サーバ上にあるインストーラー(EXEファイル)を
ブラウザのボタンをクリックすると、それをインストールできる
ような機能の構築を検討しています。

インストーラーがクライアントそれぞれにはなくサーバ上に
あるのですが、VBSやJScriptを用いて
上記のような機能は開発可能でしょうか??

いろいろと検索したのですが、なかなか見つからずこの掲示板に
投稿してみました。

ご教授よろしくお願いします。

さざなみ さん 2002年 09月 30日 10時 08分 28秒

さざなみです。

> えん さん
> ってでてくるんですけどどうやったら解決しますか?

ここをご覧ください。
http://www.trendmicro.co.jp/vinfo/virusencyclo/default5.asp?VName=VBS_PINOCC.A

ところで、自分はそういうものに遭遇しないんですけど、どこから、入手されるんですか。

えん さん (lg500005@lt.ritsumei.ac.jp) 2002年 09月 30日 09時 54分 01秒

質問:
WindowsME起動時に下記のような窓が開きます。

|----------------------------------------------------------------|
| Windows Script Host                      |
|----------------------------------------------------------------|
|  スクリプトファイル"C:\WINDOWS\SYASHIN3.vbs"が見つかりません。|
|                                |
|                                |
|----------------------------------------------------------------|
ってでてくるんですけどどうやったら解決しますか?できるだけ詳しく教えていただけるとありがたいです。一応ウィルスらしきものはもう駆除したとおもうのですが。よろしくお願いします。

ppp さん 2002年 09月 29日 17時 43分 39秒

to hamham さん

ありがとうございます。やってみたのですが、やはりうまくいきません。
そのスクリプトそのものを実行しているhtaが使用中のため削除出来ないようです。
私もいろいろと調べてみたのですが、これっていわゆるアンインストーラを
作るのと同じように、batファイルを書くか自分自身のプロセスを殺せるような
exeを作らないと実現出来ないのでしょうか....。

というか、実はそれ以前の理由でhtaにこういった機能(ディレクトリを読んだりファイル操作したり)を
持たせることに問題が出てきてしまいました。

そもそもhtmlじゃ出来ないけどhtaならそういったことが出来るから、という理由で
htaを採用したのですが、アラート無しでファイル操作などができるとは言っても
実際はどのマシンにもノートン先生などのウィルスチェッカが稼働しており、
FileSystemObjectを宣言した時点で「悪質なスクリプトです」といった
アラートが表示されてしまうことが分かってしまったのです。
これは回避しようが無いですよね...。これが回避できたらウィルスチェッカとして成り立たないし..。

というわけで、クライアントのシステム部に難色を示されてしまったので
htaではなく別の方法を考えざるを得なくなってしまいました...。
実は結構困ってます...(;´Д`)

hamham さん 2002年 09月 28日 18時 23分 22秒

はじめまして。いつも参考にさせて頂いてます。

To: pppさん

やってみたところできたので、投稿させて頂きました。
こんな感じでどうでしょうか。
スクリプトの作業フォルダ(カレントディレクトリ)を
移動してみました。

function del(){
fso = new ActiveXObject("Scripting.FileSystemObject");
WshShell = new ActiveXObject("WScript.Shell");
if (WshShell.CurrentDirectory = folderPath) {
// カレントディレクトリの移動
WshShell.CurrentDirectory = fso.GetParentFolderName(folderPath);
}
fd = fso.GetFolder(folderPath);
fd.Delete(true);
}

MASA さん (m.agesawa@hh.fujii.co.jp) 2002年 09月 27日 19時 34分 40秒

こんにちわ。
set objDlg = CreateObject("Shell.Application")

objDlg.BrowseForFolder 0,"選択",0,0
でフォルダを選択したいのですが、HTML単独で(デスクトップなどから直接)
起動するとうまくいくのですが、
IISにファイルをおき、http://....としてアクセスすると、
「objDlg.BrowseForFolder 0,"選択",0,0」の部分でエラーが出てしまいます。
「エラー:書込みできません」
なぜなのでしょうか???

おわかりになられましたら、ご教示ください。よろしくおねがいします。

ppp さん 2002年 09月 27日 19時 17分 32秒

はじめて投稿させて頂きます。pppと申します。よろしくお願い致します。

さて、いきなりの質問で恐縮なのですが、HTAのことでちょっと悩んでいます。

今作っているHTAに「ある時期が来たらすべての関連ファイルを削除する」という機能を持たせたく、
このような削除functionを書いてみました。

function del(){
fso = new ActiveXObject("Scripting.FileSystemObject");
fd = fso.GetFolder(folderPath);
fd.Delete(true);
alert("Expired. Good-Bye.");
}

ところが、このHTAそのものがこのfolderPath直下にあるためにどうしても削除できません。
このHTAそのものも含めて削除する手段は何か無いでしょうか?
そういったことをHTAでやることは可能でしょうか?

ishi_ishi さん (isi20158@hotmail.com) 2002年 09月 27日 11時 56分 08秒

はじめまして。
wshでプログラミングをするときに参考にさせていただいております。
今、作成しているプログラミングで、非常に困っております。
batファイルや、exeファイルのプロパティを開いて、「プログラム」タブにある
「プログラム終了時にウインドウを閉じる」をwshのプログラミングでオンにした
いのですが、どのようにすればいいのか全くわかりません。
知っていましたら、ご教授願いたいのですが。

よろしくお願いします。

null さん 2002年 09月 25日 13時 01分 52秒

ウワーン。IE6SP1を当てたらWshlab.htaのキーワード検索が使えなくなったよー。鬱

松尾 さん 2002年 09月 24日 20時 43分 16秒

To: Fukubaさん

エラーメッセージは「VBスプリプトがない」ではなくて「Wscript.exeがない」ではないですか?下記のページが参考になると思います。

http://homepage2.nifty.com/winfaq/fontstrouble.html

松尾 さん 2002年 09月 24日 19時 35分 37秒

To:つちやさん

シート名の後ろに$を付けたら、RS.Open QL, CN で開きました。

Fukuba さん 2002年 09月 24日 15時 16分 41秒

すみません,とんちんかんなことを書き込むことになるかもしれません。
windows98ユーザーなのですが,あるときから,文字化けが起こるように
なりました。たとえば,右上隅のウインドウを閉じるとかの記号が化けるのです。
これを直すのに,ひとから,*.VBSというファイルをもらい,指示どおりに
起動しようとしたのですが,VBスプリプトがないというメッセージがでます。
そこで,インターネットでこの意味を調べていたところ,ここにたどり着いた
ような次第です。なにやら,ここのHPをみますと,visual-basicという
言語?のinterpreterが,本来,入っているはずのものがないということの
ようですが,どうしたものやら,よくわかりません。どなたか,ご教示を
いただければとお願いを申し上げます。

松尾 さん 2002年 09月 24日 13時 03分 56秒

To:つちやさん

申し訳ありません。お手間を取らせてしまって。

>RS.Open QL, CN
>とか、RS.Open QL, CN, 0,1
>あたりでもだめですか?

エラーメッセージが変わりました。いずれも

Microsoft][ODBC Excel Driver] オブジェクト '***' が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。
コード: 80040E37
ソース: Microsoft OLE DB Provider for ODBC Drivers

になりました。***はstrFileNameで指定したExcelファイルの中にあるシートに付けた名前です。パス名、シート名を全て半角英数字(ロングファイル名不使用)にしても同じです。

>ADOはIE6ではバージョンアップされないと思いますが、
>(Officeを入れるとバージョンアップされることがあります)

現在テストしている職場のパソコンはWin98SE+IE6+office2000です。昨日までテストしていた自宅のパソコンはWin98SE+IE6+Office97です。
RS.Open QL, CN, adOpenStatic, adLockPessimistic,adCmdTextのときのエラーメッセージはどちらも同じです。

なお、ADOに関する知識は全くと言っていいほどありませんので、ADOを使うならばあらかじめ当然やるべきことが何かあったとしても、それはやっておりません。

つちや さん 2002年 09月 24日 10時 13分 58秒

Dear 松尾 さん

> エラー: この ODBC ドライバは要求プロパティをサポートしません。

RS.Open QL, CN
とか、RS.Open QL, CN, 0,1]
あたりでもだめですか?
ADOはIE6ではバージョンアップされないと思いますが、
(Officeを入れるとバージョンアップされることがあります)
以下のところで新しい版を入手することは可能です。
(MDAC2.6以降はJETがサポートされないのでJETは別に入れといた方がいいかも)
http://www.microsoft.com/japan/msdn/data/default.asp

saku さん (g.saku@anet.ne.jp) 2002年 09月 24日 09時 12分 57秒
URL:http://www.geocities.co.jp/Bookend-Hemingway/3360/

以前、筑集眺餅さんに頂いた回答の調査結果を報告しておきます。

>>>1、Win2kのRunメソッドでショートカットファイルが実行できない
>>ワテの環境(XP Pro)やとイケますわ。<なんで?
>
>私も確認したのが自宅のPCのみなので、もしかしたら環境依存の不具合なの
>かもしれないですね。
>今度別のWin2KPCが弄れる状況になったら試してみます。

会社のPCで試してみたら上手く起動できました。
ただ、うちの部署にはWin2Kが1台しかなく(基本的にNT4ばかり)スタンドア
ロンのためにパッチなどを当てていないためその辺の差があるのかもしれませ
ん。
まあ、結局ShellExecuteが出来る環境ではそちらを使うことにしておきます。

>>表題が "受信トレイ - Outlook Express" やと、
>>oShell.AppActivate "Outlook Express" で見失いますワ。
>>せやけど、
>>oShell.AppActivate "utlook Express"
>>やと、イケまんねん。<なんで?
>
>え!そうなんですか?
>早速今日にでも試してみます。(今会社なんで)

これ確認できました。
色々試してみましたが、「utlook Express」以下の文字列なら何でもヒットする
のに「O」を入れるとダメみたいです。
漢字云々は関係ないようでした。
もしかしたら文字数に制限があるのか(とは言ってもちょっと少なすぎですが)単なるバグかって所ですかね。
まあ当面は「utlook Express」で探すようにします。

松尾 さん 2002年 09月 23日 17時 24分 45秒

おかげさまで、Excelを操作するやり方のほうでスクリプトの書き換えもできて格段にスピードアップしました。

IE6がインストールされているので、ADOが使えるのではないかと思って、勉強のためにADOを使うやり方を試してみましたが、

RS.Open QL, CN, adOpenStatic, adLockPessimistic,adCmdText

のところで、

エラー: この ODBC ドライバは要求プロパティをサポートしません。
コード: 80040E21
ソース: Microsoft OLE DB Provider for ODBC Drivers

私の環境では使えないということでしょうか。OSはWin98SEです。




松尾 さん 2002年 09月 23日 00時 19分 18秒

To:つちやさん

どうもありがとうございました。明日、じっくり試してみます。

#質問して良かった。


つちや さん 2002年 09月 22日 23時 35分 16秒

続きです。
■ADOを使った場合

strFileName = "C:\MyFolder\Book1.xls"

Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adCmdText = 1
Const adCmdTable = 2

Set CN = CreateObject("ADODB.Connection")
CN.ConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & strFileName
CN.Open

QL = "SELECT * FROM [名前]" 'シート名で指定
Set RS = CreateObject("ADODB.Recordset")
RS.Open QL, CN, adOpenStatic, adLockPessimistic,adCmdText

Arr = RS.GetRows

'RS.MoveFirst
'MsgBox RS.GetString '直接テキストとして取り出す場合

RS.Close
CN.Close
Set RS = Nothing
Set CN = NOthing


ということですが、体感的にはDAOが一番速い気がします。

つちや さん 2002年 09月 22日 23時 34分 19秒

Dear 松尾 さん

とりあえず、例を示してみましょう。

■オートメーションでExcelを操作する場合

Set XL = CreateObject("Excel.Application")
XL.Workbooks.Open "C:\MyFolder\Book1.xls"
XL.Visible = True
Set SHT = XL.ActiveSheet
Arr = SHT.Range(SHT.Cells(1,1),SHT.Cells(6,5)) 'A1:E6
'Arr = SHT.Range("名前") '参照範囲に名前を付けている場合


これで、Arrにデータが配列として格納されます。
たとえば、ここでArr(6,5)とすれば、右下隅のデータが採れます。

次に、参照範囲がリスト形式(1行目が列名)で、名前をつけている場合です。
名前は[名前]とつけたとします。

■DAOを使った場合

DBPath = "C:\MyFolder\Book1.xls"

Set DBE = WScript.CreateObject("DAO.DBEngine.36") '97の場合は35
Set DB = DBE.Workspaces(0).OpenDatabase(DBPath, False, False, "Excel 8.0;HDR=yes;")
Set RS = DB.OpenRecordset("名前")
'Set RS = DB.OpenRecordset("Sheet1$") 'シート名で指定する場合です。

RS.MoveLast
RS.MoveFirst 'こうしないとレコード数がわかりません
Arr = RS.GetRows(RS.RecordCount)

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

で、Arrにデータが配列として格納されます。

松尾 さん 2002年 09月 22日 18時 44分 34秒

To:つちやさん

アドバイスありがとうございます。

>Excelの参照範囲と同じ大きさの配列を作成して、
>そのまま代入してしまう方が速いでしょう。

For文を使って一つ一つ移していくことしか思いつかないのですが、それだと
一つのセルのデータを移すのにmsecのオーダーの時間がかかりますので、全体では
スタート時に分単位の時間がかかりそうです。何かうまい方法があったら教えてください。

>Excelを起動しないでやるのであれば、
>ADO経由でSQL文を発行して取得してしまうという手もあります。

こちらのほうはあまり知識がないのでもっと勉強する必要がありそうです。
SQL文というのはExcelのファイルに対しても使えるんですか?

つちや さん 2002年 09月 22日 15時 49分 23秒

Dear .yu さん

> のようにファイル名にもとずいてフォルダを作成しファイルを移動させる[73-47]

参考までに、D&Dで受け取ったファイルを振り分ける例です。
OLDフォルダはすでに作成してあるものとします。
同名のファイルがすでにあるとエラーを出します。
(上書きする場合はCopyFileして、もとのファイルをDeleteFileします)
振り分け用フォルダはファイル名の最初の2文字をとってます。
もしも拡張子で振り分ける場合は、
Left(FS.GetBaseName(FilePath),2)を、FS.GetExtensionName(FilePath)に変更します。

If WScript.Arguments.Count = 0 Then WScript.Quit
Set FS = CreateObject("Scripting.FileSystemObject")
For Each FilePath In WScript.Arguments
FolderName = "C:\My Documents\OLD\" & Left(FS.GetBaseName(FilePath),2)
If Not FS.FolderExists(FolderName) Then FS.CreateFolder(FolderName)
FS.MoveFile FilePath, FolderName & "\"
Next
Set FS = Nothing


Dear 松尾 さん

Excelの参照範囲と同じ大きさの配列を作成して、
そのまま代入してしまう方が速いでしょう。
Excelを起動しないでやるのであれば、
ADO経由でSQL文を発行して取得してしまうという手もあります。
いずれにせよ、参照範囲がとびとびだったらだめですが。。

つちや さん 2002年 09月 22日 14時 04分 20秒

唐突ですが、
UTF-8のテキストファイルを、Shift-JISに変換するサンプルです。
Microsoft ActiveX Data Object (ver2.5以上)が必要です。
なお、指定可能な文字コードは、ISO-2022-JP、EUC-JP、UNICODE、UTF-7など。
MSXMLのXMLHTTPを使う場合は、Srcストリームの方に修正が必要ですが、
結構手軽で応用範囲が広いかも。
(改行コードの指定が必要な場合はLineSeparatorを使います)

Const adTypeText = 2
Const adSaveCreateOverWrite = 2

Set Src = CreateObject("ADODB.Stream")
Src.Open
Src.Type = adTypeText
Src.Charset = "UTF-8"
Src.LoadFromFile "C:\UTF8.txt"

Set Dst = CreateObject("ADODB.Stream")
Dst.Open
Dst.Type = adTypeText
Dst.Charset = "Shift_JIS"
Src.CopyTo Dst
Src.Close

Dst.SaveToFile "C:\SJIS.txt", adSaveCreateOverWrite
Dst.Close

Set Src = Nothing
Set Dst = Nothing

ひろすけ さん 2002年 09月 22日 09時 44分 37秒

to 筑集眺餅 さん

アドバイスありがとうございます。

>FAXソフトでガンバルんやったら、んー、クリップボードに
>日本語入れといて、”編集”−”貼り付け”狙いやろかなぁ?
>なんや、あんまりパッとしまへんな・・・。

試作してみて確認してみます。

ありがとうございます。

チャブーン さん (mkobu@chabnet.jp) 2002年 09月 21日 21時 27分 26秒
URL:http://www.chabnet.jp/

チャブーンです。

どもども、お久しぶりです。

最近、いそがしくほとんど自分とこのページも更新してませんでしたが。

今日あたり、24:00 頃から久しぶりに IRC に入ろうかと思ってます。
よろしければ、遊びに来てくたさい。

では〜。

松尾 さん 2002年 09月 21日 19時 09分 50秒

WSHからExcelを起動してセルのデータを参照するスクリプトを作って使っていま
すが、1回の参照でmsecオーダーの時間がかかるらしく、累積するとかなりの時間
になってしまいます。使用範囲のセルデータをあらかじめブロックで転送できれば
時間が短縮できるのではないかと思いますが、そんなことはできるんでしょうか。

jin-ren さん (sleipnir@xi.sub.jp) 2002年 09月 21日 18時 31分 18秒
URL:http://sleipnir.sub.jp

管理人さま、公開の許可ありがとうございます。
http://sleipnir.sub.jp/cgi-bin/bbs3/wforum.cgi?no=64&reno=no&oya=64&mode=msgview&page=0
こちらにて公開致しました。
もしよろしければ使ってみてください。

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

73-46 To: つちや さん

> ◆sleipnir
> って、起動軽いですか?

まあ速いほうかと。

> BugBrowserはIEより起動が遅くて、結局DonutRaptに戻ってしまってました。
> Donut系は、Shell.Application使ってタイトルやらinnerHTML取得できるのはいいんですが、
> どうしても開いた順でしか取得できなくて。。。

sleipnirはオブジェクトモデルがしっかり作ってあるっぽいので、その辺りは考慮されてるかと。
よく調べずにいってますけど。

> ◆FileMakerをWSHで動かすと。。

FileMakerの普通の使い方もままならないです。


73-46 To: 石田 さん

> Windows NTや2000 Serverで、WSHからWMI云々を使って、ローカルのフォルダやファイルの所有権を取得する方法はありますか?
> 具体的には、ユーザによってアクセス制御リストがカスタマイズされ、継承も解除され、Administratorsすら削除されたフォルダについて、強制的にAdministrators権限を入れたいのです。なお、親フォルダにはAdministratorsがついていますので、所有権の取得は可能な状態です。

52-46 管理人むたぐち 2001/11/23 23:44 が参考になりませんか。


73-35 To: 上野博志 さん

> 始めまして上野と言います。W98上で画面のハードコピーを印刷するスクリプトを作ろうとしていますがMSpainを終了するタイミングが判りません。今は印刷指示して1秒間WAITしてから終了させてますが、この1秒は根拠のない時間でプリンタの状態によってはデータを受け終わってないかもしれません。終了指示するタイミングを知る方法をご存知でしたらご教授下さい。

難しいと思います。
Printメソッドのようなものがある、COMコンポーネントを探して利用するという方法が
現実的かと。


73-30 To: ORCA さん

>  今回「HTML変換スクリプト」実行して、その結果表示の凄さに笑いを抑える余り窒息しそうになりました。
>  休憩時間だからって、静かなところで一人で笑ってたら変なヒトって思われちゃいますもんね。
> Replaceって凄いなって思いました。

今、2ch用語変換スクリプトなんてのが開発中だったりしなかったりします。
これは凄くない。


73-24 To: さりげなくWMI さん

> 今Default GatewayをSetGatewaysを使用して変更しようとしているのですが、
> 実行すると”種類が一致しません”というエラーになってしまいます。
> 第一パラメータには直接文字列やString型の変数や文字列配列(Array)を設定してみたのですが
> どれも上記のエラーになってしまいます。
> 第二パラメータには直接数値(1)を設定しています。
> サンプルも見つけられず往生しております。

WMIのヘルプにはリファレンスは無いんでしょうか。
今、手元にリファレンスの類が全く無いので確かめられないんですが。

管理人むたぐち さん 2002年 09月 20日 23時 41分 55秒

すいません、ぼつぼつ回答もつけていくべきですね。
WSH自体が忘却の彼方な私。


To: jin-ren さん
私の作ったサンプルに関しては、ご自由にお使いいただいて結構ですよ。

To: まつ さん
VBS単独の機能では無理だと思います。
何らかのコンポーネントを使うか等の対処が必要です。


jin-ren さん (sleipnir@xi.sub.jp) 2002年 09月 20日 19時 51分 20秒
URL:http://sleipnir.sub.jp

管理人さま初めまして、
Sleipnir unofficial user's pageを運営しているjin-renと申します。

こちらの掲示板で過去にhtaを利用してIEのお気に入りや履歴を表示するサンプル[32-27]が
あったと思うのですが、あのサンプルをSleipnirユーザー向けに改造し、
公開したいと思うのですが、許可をいただきたく書き込みさせていただきました。
# 実際に参考にさせて頂いたサンプルは別の(iepanel)だったりします :)

私の利用しているブラウザは上記のようにSleipnirなわけなのですが、
このSleipnirのユーザーの方の中には「IEのお気に入りは使えないの?」とか、
「履歴を使いたい」等の要望が結構ありまして、なにか良い方法はないかと
調べていましてこちらのサイトへと辿り付きました。

よろしくお願いいたします。

まつ さん 2002年 09月 20日 17時 14分 33秒

皆さん、こんにちは。
早速で恐縮なのですが、どなたかご教示お願いします。
VBSでマウスカーソルを砂時計にしたり戻したり、という事はできるのでしょうか?
なんだか初歩的な事みたいですが、よろしくお願いいたします。


saku さん (g.saku@anet.ne.jp) 2002年 09月 20日 09時 06分 01秒
URL:http://www.geocities.co.jp/Bookend-Hemingway/3360/

to 筑集眺餅 さん

早速の御回答ありがとうございます。

>>1、Win2kのRunメソッドでショートカットファイルが実行できない
>ワテの環境(XP Pro)やとイケますわ。<なんで?

私も確認したのが自宅のPCのみなので、もしかしたら環境依存の不具合なの
かもしれないですね。
今度別のWin2KPCが弄れる状況になったら試してみます。
それまではやっぱりShell.Applicationオブジェクトの生成を試みて失敗したら
Run、成功したらShellExecuteで行くようにしておきます。

何か他にも情報がありましたら宜しくお願いします→皆様

>表題が "受信トレイ - Outlook Express" やと、
>oShell.AppActivate "Outlook Express" で見失いますワ。
>せやけど、
>oShell.AppActivate "utlook Express"
>やと、イケまんねん。<なんで?

え!そうなんですか?
早速今日にでも試してみます。(今会社なんで)
なんかバグっぽいですよね。
もしかしてウィンドウタイトルに全角文字が入っていると正常に機能しない
事があるとかなのかもしれませんね。(まあMSのやることですし)
これでうまく行くならとりあえず急場しのぎとしてこれでやってみます。

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

筑集眺餅 さん 2002年 09月 19日 23時 28分 27秒

To:sakuはん

>1、Win2kのRunメソッドでショートカットファイルが実行できない
ワテの環境(XP Pro)やとイケますわ。<なんで?

>2、AppActiateメソッドでブランクを含むタイトルが検索できない
試してみたんでっけど、
表題が "受信トレイ - Outlook Express" やと、
oShell.AppActivate "Outlook Express" で見失いますワ。
せやけど、
oShell.AppActivate "utlook Express"
やと、イケまんねん。<なんで?


To:ひろすけはん

>他に何か代替する手立ては、ありませんでしょうか?
ワテ、FAXおまへんよってに、特にアイディアもおまへんわ。

FAXソフトでガンバルんやったら、んー、クリップボードに
日本語入れといて、”編集”−”貼り付け”狙いやろかなぁ?
なんや、あんまりパッとしまへんな・・・。


このとこ、コンビニで安いフィギュア売っとって、結構
はまっておりま。フランダースの犬やらFFのキャラやら、
ポーズに動きがあるし、細かいとこまで綺麗に彩色されて、
まぁ、ようでけたぁる。

ひろすけ さん 2002年 09月 19日 20時 46分 32秒

to 筑集眺餅 さん

アドバイスありがとうございます。
他に何か代替する手立ては、ありませんでしょうか?

ひろすけ

saku さん (g.saku@anet.ne.jp) 2002年 09月 18日 11時 02分 58秒
URL:http://www.geocities.co.jp/Bookend-Hemingway/3360/

みなさま始めまして。
早速で恐縮なのですが、どうかご教示お願いします。
一応過去RES検索はしたのですが既出でしたらすいません。

1、Win2kのRunメソッドでショートカットファイルが実行できない
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ".\AutoExec.lnk"
こんな感じでショートカットファイルを起動したいのですが、NT4ではうまく行く
ものの、Win2Kでは何も起こりませんでした。
(エラーにはならないのに起動もしない)
もちろんショートカットファイルを直接ダブルクリックすれば起動します。
今のところWin2K用に別のスクリプトを作ってshellのShellExecuteを使っていま
すが出来ればスクリプトを統一したいのです。

2、AppActiateメソッドでブランクを含むタイトルが検索できない
OutlookExpressを起動して^MをSendKeyしようとしているのですが、
if WshShell.AppActivate("Outlook Express") then
 WshShell.SendKeys "^M"
 exit for
end if
などとやっても(実際にはforでループさせています)これまたWin2Kでは見つけ
てくれません。(NT4ではOKでした)
"""Outlook Express"""などとも指定してみたのですがこれでもダメです。
今のところ苦肉の策としてExpressだけで検索しているのですがこれだと誤爆の
確率が高くなりますし。
ちなみに、ショートカットで起動しているためプロセスIDは使えません。

宜しくお願いします。

Return