VBSで便利なプログラムを作れスレat TECH
VBSで便利なプログラムを作れスレ - 暇つぶし2ch2:デフォルトの名無しさん
07/02/03 17:52:27 .net
ずるしてらくしてかれいに2げっとかしらかしら~

3:Windows厨&rlo;wwwね死はCAM。すでXUNILチンアやや
07/02/03 17:54:41 .net
2ch自動書き込みスクリプト・・・    はVBSなんかじゃなくちゃんとしたプログラムが既にあちこちに存在するか


4:デフォルトの名無しさん
07/02/03 18:14:33 .net
>>1が後から何食わぬ顔で制作依頼する糞スレか

5:デフォルトの名無しさん
07/02/03 22:14:50 .net
TechNetのHey, Scripting Guy!でも読むとか

6:デフォルトの名無しさん
07/02/04 04:38:30 .net
>>3
自動書きこみをする機能がそもそもまともじゃない

7:デフォルトの名無しさん
07/02/08 22:08:15 .net
日経ソフトウェアだったかに乗ってたのですが 動きません 助けて

KETA = inputbox("何文字のパスワードを作りますか?","パスワードを生成","8")

If KETA < 1 Then
MsgBox "文字数は0以上でなくてはなりません"
End If

PASS_WRD = "A B C D E F G H J K L M N P Q R S T U V W X Y Z "
MOJISYU_A = MsgBox("アルファベットの小文字を使いますか?",vbYesNo)

If MOJISYU_A = vbYes Then
PASS_WRD = PASS_WRD + "a b c d e f g h i j k m n p q r s t u v w x y z "
End If

MOJISYU_B = MsgBox("数字を使いますか?",vbYesNo)
If MOJISYU_B = vbYes Then
PASS_WRD = PASS_WRD + "2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 "

MOJISYU_C = MsgBox("記号を使いますか?",vbYesNo)
If MOJISYU_C = vbYes Then
'記号
PASS_WRD = PASS_WRD + "! # $ % & ? - _ ~ @"
End If

'指定された条件で配列を作成
PASS_STR = Split(PASS_WRD)
MAX = Ubound(pass_str)

8:7
07/02/08 22:08:56 .net
続き
'指定された桁数のパスワードを作成
For i=0 To KETA - 1
Randomize
X = abs(Int((0 - MAX) * Rnd))
PASS = PASS + PASS_STR(X)
Next
InputBox "パスワードが完成しました","生成完了!",PASS

9:デフォルトの名無しさん
07/02/09 01:15:14 .net
>7
どう動かないんだ。
エラーメッセージが出るならエラーメッセージを貼れ。

10:デフォルトの名無しさん
07/02/09 01:18:01 .net
BASICって何でここまで読む気が起こらないんだろう

11:デフォルトの名無しさん
07/02/09 01:22:38 .net
>>10
構文が冗長だから

12:デフォルトの名無しさん
07/02/09 02:01:47 .net
まぁ、COBOLの冗長さには勝てないがな
'VB
For I = 1 To 10
Next

*COBOL
PERFORM VARYING I FROM 1 BY 1 UNTIL I <= 10
END-PERFORM

13:デフォルトの名無しさん
07/02/09 10:20:33 .net
>12
間違えてる。UNTILならI>10だ

14:デフォルトの名無しさん
07/04/29 02:58:52 .net
>>10
字下げが取れちゃってるのも一因ではないだろうか、この場合。

15:wol.wsf
07/06/03 10:59:59 .net
<job>
<script language="vbscript" src="./computer.class"/>
<script language="vbscript">
Option Explicit

Const COMPUTERS = 3
Const DEFAULT_WAKEUP = 2
Dim objComputers()
ReDim objComputers(COMPUTERS)
Dim intNum, i, strHostnames

For i = 0 To COMPUTERS
  Set objComputers(i) = New Computer
Next
objComputers(0).setComputer "xxxxxxxxxxxx", "chitose"
objComputers(1).setComputer "yyyyyyyyyyyy", "tomoyo"
objComputers(2).setComputer "zzzzzzzzzzzz", "ayanami"
objComputers(3).setComputer "wwwwwwwwwwww", "maya"

For i = 0 To COMPUTERS
  strHostnames = strHostnames & i & ":" & vbTab & objComputers(i).GetHostname & vbCrLf
Next

intNum = InputBox(strHostnames, "WakeOnLan", DEFAULT_WAKEUP)
objComputers(intNum).Wakeup

For i = 0 To COMPUTERS
  Set objComputers(i) = Nothing
Next
</script>
</job>

16:computer.class
07/06/03 11:03:50 .net
Option Explicit

Class Computer
  Private pHostname
  Private pMACAddr

  Public Sub setComputer(strMACAddr, strHostname)
    pMACAddr = strMACAddr
    pHostname = strHostname
  End Sub

  Public Sub WakeUp
    Dim WSHShell
    Set WSHShell = WScript.CreateObject("WScript.Shell")
    WSHShell.Run "wol.exe " & pMACAddr
  End Sub

  Public Function GetHostname()
    GetHostname = pHostname
  End Function
End Class

これを同じフォルダに入れておく→URLリンク(www.gammadyne.com)
vbsもWOLもやってみると意外とできるもんだ。

17:デフォルトの名無しさん
07/06/04 23:41:38 .net
VBSでダイアログを表示させることってできないものかな?
構造体は使えないはいろいろと細かいところで制約が多い。。

18:デフォルトの名無しさん
07/06/27 11:51:05 .net
VBSについての質問です

WINDOWSからSolaris�


19:ノFTP接続してファイルを取得するVBスクリプト。 ・ /export/home/backup/mysql/の下にあるファイルを取得 ・ /export/home/backup/www/の下にあるファイルを取得 ・取得したいファイル名をリスト化、そのリストを読み込んで、 1つのファイルをGET.→FTP切断→FTP接続→ファイルGET→FTP切断の繰り返し ・取得したファイルはSolarisから削除 ・日付を管理。最新のを5つだけ残す。一番ファイルを削除 こういったVBSはどうつくればいいんでしょうか?



20:デフォルトの名無しさん
07/06/27 23:06:22 .net
>>18
ここれは便利なスクリプトを作ってくれとお願いするスレじゃなくて、
自発的に自分が書いた物を晒すスレのような気がするんだが。

漏れの場合は、取得したいファイル名を変数にしてして、毎回
FTPスクリプトを生成して実行する方法にしてる。

ちなみにアカウント情報はcsvにしてるが平文で書いてるので
取り扱いに注意してる。PASVが使いたい場合はGNU版を
使う事。

どっちかっつーとWSHスレ向きジャネ?そのまま質問しても罵倒
されるだけだと思うけど。




21:デフォルトの名無しさん
07/06/28 09:04:40 .net
漏れの場合は、取得したいファイル名を変数にしてして、毎回
FTPスクリプトを生成して実行する方法にしてる。
上司にも同じこと言われましたね、。
なんとなくイメージできても、いざ作るとなると難しくて…
どう作ったらいいのかわからないですね。

22:デフォルトの名無しさん
07/06/28 09:43:15 .net
>>20
じゃーまず、ここに取得したいファイル名が固定のFTPスクリプトを
生成するVBSを書いてみてよ。


23:デフォルトの名無しさん
07/06/28 10:19:50 .net
open itsol01
i1125
i1125

get /export/home/backup/mysql/mysql_&YYYYMMDD&.tar.gz
loop
quit

と書いたテキストファイルをコマンドプロンプトで実行したら、指定したファイルは取得できました。


24:デフォルトの名無しさん
07/06/28 21:12:15 .net
>>22
日本語不自由な人?


25:デフォルトの名無しさん
07/06/29 01:24:58 .net
何この糞スレ・・・
低脳にスレ立てさせんなよ・・・

26:VBSって面白いのか?
07/07/22 23:29:16 .net
みんな高度なプログラムかくね
このくらいでいいんじゃね?
’びびらせるログオンメッセージ書き込むプログラム?
msgb = InputBox("ビビらせるログオンメッセージ指定")
If msg <> "" Then
Set WshShell = WScript.CreateObject("WScript.Shell")
Call WshShell.RegWrite("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\LegalNoticeCaption", "ここにメッセージでも", "REG_SZ")
Call WshShell.RegWrite("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\LegalNoticeText", msgb, "REG_SZ")
WshShell.Popup("終了")
Else
MsgBox("書き込みキャンセルしました")
End If

27:VBSって面白いのか?
07/07/22 23:32:39 .net
訂正 ×ここにメッセージでも ○メッセージ
まあなんでもいいんだが・・。

28:VBSって面白いのか?
07/07/22 23:36:33 .net
これ便利じゃねえなそれに遊び心だな。
誰かウイルススレでもしよう・・・・。


29:デフォルトの名無しさん
07/07/29 00:14:47 .net
質問なんだけど
s = 1

test = Array("test")
Set xmlHttp = WScript.CreateObject("Msxml2.SSLHTTPS.3.0")

For i = 0 To s
xmlHttp.open "POST", "test", False
xmlhttp.setRequestHeader "Referer", "test"
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send "test="+


30:test(i)+"" Next で、https://には対応できない? Set xmlHttp = WScript.CreateObject("Msxml2.SSLHTTPS.3.0") を書き換えればいいのかな?解る方書き換え方おせーてください For i = 0 To s xmlHttp.open "POST", "https://www.livly.com/reg/rekeep.php?", False xmlhttp.setRequestHeader "Referer", "https://www.livly.com/reg/rekeep.php?" xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" xmlhttp.send "kid="+kid(i)+"&+pname="+pnames(i)+"&iname="+iname(i)+"&nname="+nname(i)+"&pprofile="+pprofile(i)+"&iprofile="+iprofile(i)+"&entry="+entry(i)+"" Next



31:名無し
07/08/08 20:23:43 .net
無理でもない

32:デフォルトの名無しさん
07/08/11 17:05:13 .net
CreatoShortcutで
NumLock状態の1をショートカットキーに適用したいのですが

Hotkey="Num 1"
Hotkey="NumLock 1"

どちらでもできません

直接作成は無理なのでしょうか?

33:デフォルトの名無しさん
07/08/12 20:21:53 .net
俺もNumlockは悩んだ
なんとかいうAPI使って実行ファイル作ったけど無理だった
敗北の想い出が蘇る


34:デフォルトの名無しさん
07/08/14 20:56:42 .net
最終的にVBA使ったりするんだよな……
VBS単体だと操作の自動化は不便

35:デフォルトの名無しさん
07/09/06 20:53:01 .net
こんばんは。
C#からVBSのFunction呼び出そうしてるんですが
複数の値を返すことができません。
教えてください。

36:デフォルトの名無しさん
07/09/06 20:54:08 .net
C#側からvbsを走らせるときにC#側のFor文だと処理するたびに
vbsが走るのでだめでした。
vbs自体が複数値を返す処理をするためにはどのようにすればよいでしょうか。
値は、Excelのセルからとります。

37:デフォルトの名無しさん
07/09/06 22:08:15 .net
俺が考え付く方法は次の2つ。
1. そのVBScriptの内容をC#へ書き換える。
2. VBScriptをC#プログラム内でホストする。

38:デフォルトの名無しさん
07/09/06 22:13:43 .net
>>35
は1は実行済みですけどVBSにも全く一緒のコードを書くことになって
かなり冗長的なコードになるんですよ。
2もしたが取り出すとき複数の値をとるほうほうが不明です。

39:デフォルトの名無しさん
07/09/06 22:27:49 .net
配列を返せばいいのでは?
それが無理なら、C#から戻り値を受け取るオブジェクトを渡すってのはどう。

40:デフォルトの名無しさん
07/09/06 22:33:48 .net
>>37
配列を返すって考えましたけどVBScriptのリターン文ってありませんよね。
関数名 = 処理
↑こんな感じがリターン文なのかな。

41:デフォルトの名無しさん
07/09/06 22:40:58 .net
そう。関数内では関数名と同名の変数が存在する。
型は関数の戻り値の型と同じ(と言ってもVBSは常にVariantだが)。
関数を抜けるときにその変数に入っていた内容が戻り値になる。

これはVB系一般で通用する文法。

42:デフォルトの名無しさん
07/09/06 23:14:36 .net
なるほどね。けど、関数名と同名の変数が定義されてるって時点で
配列とか返せないと思うんですがいかがでしょう。

43:デフォルトの名無しさん
07/09/07 00:01:51 .net
>>40
思うって言われてもなぁ

44:デフォルトの名無しさん
07/09/07 00:05:36 .net
>>41
情報量が少ないから断定的な判断はできないんですよ。

45:デフォルトの名無しさん
07/09/07 00:10:31 .net
>>40
Array関数で配列を作れる。
その戻り値を関数名の変数に代入すれば
配列を返す関数の出来上がり。

46:デフォルトの名無しさん
07/09/07 00:11:37 .net
>>42
調べるのも大事なことだが、試すのだって大事なことだぞ

msgbox a()(2)

function a()
dim b()
redim b(10)
b(2)=100
a=b
end function

こんな感じで出来ない?

47:デフォルトの名無しさん
07/09/07 00:13:35 .net
おおきにおおきに、明日試してみる。
しかし、型なしには驚いた・・・

48:デフォルトの名無しさん
07/09/07 12:14:52 .net
BASICなめんな

49:デフォルトの名無しさん
07/09/08


50:00:52:34 .net



51:デフォルトの名無しさん
07/11/01 17:26:59 .net
JavaScriptなら<script src=a.js
VBSなら<script src=a.vbs ですか?

52:デフォルトの名無しさん
07/11/01 18:21:37 .net
>>48
ああ拡張子はなんでもいいが
typeなりlanguage書こうぜw

それとタグは閉じような
気になってしょうがないw

53:デフォルトの名無しさん
07/11/02 13:45:30 .net
PPPOEをVBSで切断できないですかね?
2つプロバイダ登録してあって、ショートカットで無理やり接続はできたのですが、
なぜだか切断の時に1%くらいの確率で失敗します。
(slect case でやって、引数を保持しているのですが何故か極まれに間違えます)
タスクトレイの接続の所では、何処に繋がっていても切断できますので、せめてこれが
呼び出せればSENDKEYSでなんとかなるんですが…


54:デフォルトの名無しさん
07/11/02 15:42:00 .net
JavaScriptでの o = new Option(); をVBScriptに書き直すとどうなりますか?

55:デフォルトの名無しさん
07/11/03 01:48:36 .net
↓デバッグおねがいします

<form id="fm">
<input name="t1" value="てすと">
</form>
<script language="VBScript">
Function bt_onClick()
MsgBox Eval("t" & CStr(1) & ".value")
End Function
</script>
<button name="bt"></button>

56:デフォルトの名無しさん
07/11/04 12:45:31 .net
>>52
"fm.t"

57:デフォルトの名無しさん
07/11/04 13:13:19 .net
プリンタの管理ユーティリティにある自動電源ONオプションをタスク
スケジューラで週一自動実行したいんですけど、VBSで可能でしょうか?

58:デフォルトの名無しさん
07/11/18 23:11:59 .net
HTMLのVBSで
<a href="javascript:f();void(0)">
というJavaScriptをVBSで書けますか?

59:デフォルトの名無しさん
07/11/18 23:30:00 .net
MsgBox "<a href=""javascript:f();void(0)"">"

60:デフォルトの名無しさん
07/11/19 00:18:24 .net
>>55
修辞がおかしいので>>56見たいに言われるわけだが・・・

61:デフォルトの名無しさん
07/11/19 17:32:58 .net
拡張子を.htaにしてみるとか

62:デフォルトの名無しさん
07/11/26 08:03:28 .net
BASP21でダウンロードソフトを作ろうと思っているんですが、
FTPだとFTPサーバーの名前を知らないとアノニマスでも接続できませんよね?
どうすれば良いのでしょうか?

63:デフォルトの名無しさん
07/11/26 16:00:11 .net
>>59
たとえばスーパーに買い物に行きますよね
でもスーパーの住所を知らなければ買い物できませんよね?
どうすれば良いのでしょうか?

64:59です
07/11/26 20:59:22 .net
Iriaとかのダウンロードソフトはどうしてるんでしょうか?
HTTPからでもダウンロード可能なようですが、全くやり方が不明です。
勉強中の身でして、質問が多くなりますが、お願いいたします。

>60
そのスーパーの住所の調べ方を伝授してください
お願い致します

65:デフォルトの名無しさん
07/11/26 23:58:17 .net
プロトコルの勉強をしましょう…

66:デフォルトの名無しさん
07/11/27 00:06:54 .net
>>61
そこらへんのダウンロードソフトはユーザにURLの入力を求めているだろ。

67:デフォルトの名無しさん
07/11/27 03:27:14 .net
>>61
IPアドレスは32bitしかないんだから、総当たりで!

68:59です
07/11/27 08:04:28 .net
皆さんご返信ありがとうございます
VBSでこのスレッドを落とす場合
.Connect("pc11.2ch.netのFTPサーバー", "ユーザー(anonymousでいける?)", "パス")
で繋いで
.GetFile("pc11.2ch.netのFTPサーバー/1170492587/*.*", "c:\dowsodata")
となると思いますが、
ここのFTPのサーバー名が解らないと何ともなりませんよね。

62>とりあえずWiki逝って来ます。金曜日の休みに本屋にの行きます!
63>FTPのURLでなくてもダウンできるので不思議なんです
64>そんなことやってたんですか!?

試しにfURLリンク(pc11.2ch.net)をIEでやってみたら「ファイル名が正しくないか許可してないぞ!!」
と怒られました。
ギコナビとか、巷にあふれる2CHツールが許可もらってやっているように
思えませんので(失礼…)何かしら打開策があると思うのですが


69:デフォルトの名無しさん
07/11/27 08:53:03 .net
>>65
ftpが許されてないからです。
httpなら許されてるから、まずはそこから。

70:デフォルトの名無しさん
07/11/27 09:23:50 .net
>>65
> Connect("pc11.2ch.netのFTPサーバー", "ユーザー(anonymousでいける?)", "パス") 
> で繋いで 
> .GetFile("pc11.2ch.netのFTPサーバー/1170492587/*.*", "c:\dowsodata") 
> となると思いますが、 
いいえ違います
pc11.2ch.netのFTPサーバなんてありません

71:デフォルトの名無しさん
07/11/27 14:48:35 .net
全員がこの後に及んでスレ違いと言い出さないのは、
あまりの事にあきれ果てているから?

>>59
釣られたのかもしれないが、マヂレスしておくと君の考えて
いる事は全くの見当違い。

URLリンク(www5e.biglobe.ne.jp)
ここのFTP、DNS、HTTPの所でも読んでくれ。

で、理解したら、これ以上聞かないでね。

72:59です
07/11/28 08:57:51 .net
すみません、質問を変えます!
<a href="*.dat">download</a>
を、VBSで書くとどうなりますか?
(ダウンロードしますか?と言うダイアログが出ます)
VBSで書いてる途中なのでできれば全部VBSで書きたいんです。

皆さんいろいろ教えていただいてありがとうございました
FTPはファイル交換、DNSはネット接続の中間、HTTPはHTMLを見るため
位の感覚で覚えていましたので、どうやってファイル転送機能なしでファイル転送するんだろう?
ドメイン(biglobe.ne.jp)の部分が同じなので探す方法があるのかと思い、質問しました。
興味が出ましたので、細かく調べようと思いますが、解らないところは「ネットワーク板」で
訊けばいいんですよね?


73:デフォルトの名無しさん
07/11/28 13:45:34 .net
>>69
ネットワークの勉強ついでにVBSとかクライアントスクリプトも調べて来い
質問の意図が分からなさ過ぎる
きっと用語を正しく理解していない

> 興味が出ましたので、細かく調べようと思いますが、解らないところは「ネットワーク板」で 
> 訊けばいいんですよね? 
責任もてないので、「はいそうです」とは言わない
調べられなければ調べられるまで調べつくせ

74:59です
07/11/28 20:59:50 .net
>70
すいません、知りたかったのはIriaなどのHPを丸ごとダウンロードしてくるソフトが
どのようにダウンロードをしているのかを知りたかったんです。

よく考えたらこの命令は単純にアドレス指定してアクセスするだけですね、
ちょっとやってみます。



75:デフォルトの名無しさん
07/11/28 22:39:14 .net
>>71
知らないのは罪では無い。
だが、知らないという事を盾にして、初歩的な事を人に聞きまくるのは迷惑。

>すいません、知りたかったのはIriaなどのHPを丸ごとダウンロードしてくるソフトが

こんな事は最早ネットワークすら関係無い。通信技術板で聞こう物なら、
即氏ねと言われてもおかしくない。

初歩的なhtmlを知っていてIriaを使っていれば、どういう仕組みで丸ごと
ダウンロードしているのか、一般的な知能を持っていればわかるはず。

まず人に聞くな。自分で考えろ。

76:デフォルトの名無しさん
07/11/28 23:44:16 .net
待て、しかして希望せよ

77:デフォルトの名無しさん
07/11/29 02:24:51 .net
>>72
html知っててもhttpの仕組みがわかるわけ無いだろ。

>>59
「XMLHTTP VBS」あたりでググればいくらでもサンプル出てくる。

でも、VBSでリストだけ作ってダウンローダーに渡すのがいろんな意味でおすすめ。

78:59です
07/11/29 07:20:59 .net
>72
ありがとうございます、貴方のおっしゃっているように、私のやろうとしている事は
ネットワークとはあまり関係がありませんね。

>74
XMLHTTPですね、ありがとうございます。
タグ辞典読んだり、「VBS ダウンロード」とか組み合わせてググっても
それに対応出来そうな命令が全く出てこなかったんで、困っておりました。
これでやっと点が線で繋がりました!!

79:デフォルトの名無しさん
07/11/30 10:37:58 .net
間違えてVB.NETのスレで聴いてしまったのですが、こちらでお聴きすべきでした。
WshShellオブジェクトでURLショートカットファイルを作成する際にファイル内容
に不足があることがわかりました。

例として、たとえばマイクロソフトのサイト
URLリンク(www.microsoft.com)
などに対して作成すると、IEで作成した場合に作成される処の

[DOC_pagetools]
XMLUSERDATA__Size=・・・・・
XMLUSERDATA=・・・・・
USERDATAURL=・・・・・

という部分が作成されていませんでした。そしてこの部分がないと、クリック
して実行してもIEで表示できないことがわかりました。どうも実行に際して
不可欠の内容のようでした(これはユーザーの同定等を行っているのでしょうか)。

こうした部分をWshShellオブジェクトのCreateShortcutメソッドで作成する
ことは不可能でしょうか。可能とした場合はどのようにすればよいでしょうか?
なにとぞよろしくお願いします。

80:デフォルトの名無しさん
07/11/30 19:49:02 .net
>>76
[InternetShortcut]しかないけど開けるよ?
ファイルに.urlつけてないとかじゃないの?

81:デフォルトの名無しさん
07/11/30 20:58:14 .net
ドメインユーザーのSID(S-x-x-x....)
から、ユーザーID(Domain\UserID)を知りたいんだけど、
ActiveDirectoryにどんな方法でアクセスすれば良いですか?
ADSIを使うっぽいのですが、いまいちわかりません。

82:76
07/12/03 23:26:26 .net
>>77
ご指導ありがとうございます。
おっしゃってくださったことから、今もう一度やってみましたら確かに
今度は動作致しました!
昨日やったときはページが移動しなかったのですが、IE系のトラブルか何か
が重なっていたのかもしれません・・・、お手数おかけしてすみません。
ご指導ありがとうございました。

83:デフォルトの名無しさん
07/12/08 06:36:58 .net
>>56
だめだ。それは結局JavaScriptを使っているから。
HTML内にVBSオンリーで同等の機能を実装してくれ。

84:デフォルトの名無しさん
07/12/08 12:09:40 .net
>>80
え?>>55はJavaScriptをVBSで書けるかどうか聞いてるじゃん

85:デフォルトの名無しさん
07/12/08 15:04:43 .net
>>81
VBSが分からないから日本語に着目して自己満足ですか。
はいはい、あなたは正しく理解し、適切な回答をなさいました。
キミにはたぶん質問者が知りたがっていることを回答するのは無理だね。
>>57は漢字が間違ってるし。

86:デフォルトの名無しさん
07/12/08 19:01:24 .net
>82
わざと誤字を扱うのがネラーの習わし

87:デフォルトの名無しさん
07/12/09 01:08:07 .net
>>82
hrefでjavascript関数の後にvoid(0)って一体どんな意味か教えて

88:デフォルトの名無しさん
07/12/09 01:34:04 .net
>>84
URLリンク(developer.mozilla.org)

89:デフォルトの名無しさん
07/12/09 11:29:05 .net
>>85
いや、void(0)単体の意味じゃなくて、「f()の後に」void(0)を置く意味が知りたいんだ

90:デフォルトの名無しさん
07/12/09 12:09:11 .net
void(0)を付けないでブラウザのアドレスバーに打ち込んでみるとわかるよ

91:デフォルトの名無しさん
07/12/09 12:50:58 .net
つけてもつけなくても変わらんよ

92:デフォルトの名無しさん
07/12/10 12:02:32 .net
>>86
何を期待してるのかわからんが,
とりあえず「f()の後にvoid(0)を置く意味を知りたい」という要求の原因を教えてもらおうか

93:デフォルトの名無しさん
07/12/10 21:56:53 .net
ああ、説明できないならもういいよ
お疲れさん

94:デフォルトの名無しさん
07/12/10 21:59:04 .net
とりあえずプログラム板もID付けて欲しいぜ・・・


95:デフォルトの名無しさん
07/12/11 18:08:58 .net
void(0);だけじゃ何の効果も示さないみたいな
f();は今のところ自端末じゃ何も設定されてなくて

voidの()内に後でチェックコードでも書くとか?

今は何を作るか知られたくないから意味のないコードしか書いてないとか

96:デフォルトの名無しさん
07/12/14 10:35:11 .net
360: 2007/06/16 11:58:31 ??? [sage]
みんな最後にvoid(0)やfocus()を付けるのはなんでだぜ?

361:ぼけなす 2007/06/16 12:12:44 P+YI6MXb
>>360
Location Bar 本来の機能が邪魔することがあるから.
全体を function として記述してもうまくいくようだ.


97:デフォルトの名無しさん
07/12/14 22:03:54 .net
だからアドレスバーに打ち込んでみるとわかるって言ったのに

98:デフォルトの名無しさん
07/12/15 06:34:39 .net
条件が揃わないとわからないんじゃね

99:デフォルトの名無しさん
07/12/17 11:54:28 .net
Excelの2003と2007がインストールされた環境で、以下のVBSを実行すると2007が起動します。
2003を起動するには、どう書けばいいんでしょう?

Set ExcelObj = CreateObject("Excel.Application")
ExcelObj.WorkBooks.Add()
ExcelObj.Visible = True

100:デフォルトの名無しさん
07/12/17 13:01:46 .net
それってWindowsの設定の問題じゃないの?
xlsファイルを2003のExcelで動作するように設定すれば動くんじゃない?

101:デフォルトの名無しさん
07/12/18 01:05:13 .net
>>97
すいません。説明不足でした。
常に2003を起動したいわけではなく、2003と2007を必要に応じて使い分けたいのです。
そういう区別はVBSでは無理なんでしょうか?

あと、regmonでVBS実行中に参照されるレジストリを調べてみたところ、どうやら
HKCR\Applications\excel.exeを見て、起動するアプリを決定しているようでした。
つまり、>>96のような書き方では最後にインストールしたバージョンしか起動できないのです。

102:デフォルトの名無しさん
07/12/18 02:12:08 .net
2003はたぶん Excel.Application.9 で,2007はしらね

URLリンク(support.microsoft.com)

103:デフォルトの名無しさん
07/12/18 04:06:22 .net
>>99
ありがとうございます。さっそく調べてみたところ、

2000 → 9
2002 → 10
2003 → 11
2007 → 12

のように対応していることがわかりました。そこでプログラムを

Set ExcelObj = CreateObject("Excel.Application.11")

と修正してみたのですが、これではまだ2007が起動してしまいます。
もう少しオブジェクトの扱い方を調べる必要があるようです。

104:デフォルトの名無しさん
07/12/18 12:07:56 .net
>>100
ヒント:参照設定


105:デフォルトの名無しさん
07/12/18 21:32:07 .net
URLリンク(support.microsoft.com)

106:デフォルトの名無しさん
07/12/19 03:29:22 .net
いっその事、キーボードマクロで

107:デフォルトの名無しさん
07/12/19 07:02:16 .net
>>101
MSOライブラリを複数登録するんでしょうか?
別バージョンのMicrosoft Office Object Library、Microsoft Excel Object Libraryを参照設定から
追加しようとしたのですが無視されてしまいました。
エラーも出ず、追加も出来ず、よくわかりません。

>>102
excel /regserverを実行してみたところ、Officeのインストーラーが起動してシステムの設定をすべて書き換え、
確かにデフォルトのアプリケーションもオブジェクトも切り替わりました。
が、この方法ではいちいちインストーラーが起動するという


108:ことで、見栄えがよくありませんし、 時間もかかりすぎてしまいます。元に戻す手間もありますし。 >>103 最終的にはウィンドウを出さずに裏でこっそり処理をさせたいので、(>>96のプログラムの3行目が 存在しないイメージです) 単純にショートカットからExcelを起動して最小化、みたいな処理は、 できれば避けたいのです。後出しですみません。 もう少しヒントを、よろしくお願いします。



109:デフォルトの名無しさん
07/12/19 21:46:15 .net
いや、無理でしょ

110:デフォルトの名無しさん
07/12/21 15:02:41 .net
「2003に致命的な問題が見つかりますた」と言って強引に2003をアンインストールして2007のみの環境にしる

111:デフォルトの名無しさん
07/12/24 06:18:21 .net
光の速さでキー入力して絵画をキャンセル

112:デフォルトの名無しさん
07/12/24 15:32:02 .net
ぐぐったら、なんか酷いことが書いてある。  、、無理なんじゃね?
URLリンク(support.microsoft.com)

113:デフォルトの名無しさん
07/12/24 15:35:09 .net
あ、既出でやんの。 

(office2000以降)CLSIDが共通だって事は、
オートメーションでバージョンを指定することは出来ない ってことじゃねえの?

114:デフォルトの名無しさん
07/12/24 16:17:15 .net
ディレクトリからコマンダー権限でエクシア起動!

115:デフォルトの名無しさん
07/12/24 16:25:44 .net
なるほど、希望バージョンのExcel.exeを先に起動しておいてからGetObjectすればよいのかな?

116:デフォルトの名無しさん
07/12/25 19:44:14 .net
希望バージョンではない方が既に起動されていても大丈夫?

117:デフォルトの名無しさん
07/12/25 23:04:38 .net
何をアクティブにして何をさせたいか

ちょっとした選択ミスがすべてを台無しにする事もある
目的と干渉によるけどやりたいなら自己責任で

118:デフォルトの名無しさん
08/02/11 06:52:56 .net
突然質問ですが…
プログラムに汎用性を持たせるために、一部の変数を外部ファイル化したんですが、
どうすればよいのでしょうか?
実行専用ファイルを作って、その中で変数専用ファイルとメインファイルをPublic変数で繋いで
走らせる事も考えたのですが、できますでしょうか?
って言うかVBSってinclude無いんですか?

119:デフォルトの名無しさん
08/02/11 12:09:25 .net
>>114
wsfというものがあってですね

120:デフォルトの名無しさん
08/02/11 23:26:24 .net
ini ファイルみたなのをつくって、フツーにopenして読み込めばいいじゃん。

121:壱壱四
08/02/12 07:24:04 .net
115-116
ありがとうございました。
あとはググって調べます

122:デフォルトの名無しさん
08/03/06 09:58:25 .net
EventQuery.vbs の使い方で教えてください。
というか、挙動不審なんです。

cscript eventquery.vbs /V /FI "ID EQ 564 AND DATETIME GE 03/06/08,12:00:00AM AND USER NE NT AUTHORITY\SYSTEM" /FO CSV /L

↑こういうのを書いたんですが、フィルタ条件のエラーになります。

上記の3つの条件を個別に単発で書けばそれぞれ ちゃんと動くんですが
3つまとめるとダメみたいで・・・。

そういう仕様なんでしょうか?

何か書き方にクセがあるんでしょうか?

123:デフォルトの名無しさん
08/03/08 12:41:44 .net
んなVBSは知らんけどパラメータがtasklistコマンドくせぇな

124:デフォルトの名無しさん
08/04/08 00:03:03 .net
Excelで、セルに入力された文字列のうち、ある部分だけの色を変える、という処理をVBSで行いたいです。
たとえば「A1」のセルに「VBSで便利なプログラムを作れスレ」と入力してあった場合、
そのうちの『プログラム』だけをフォント赤色に変更する、というような感じです。

セル内の文字列すべてだとできるのですが、セル内の文字列の一部分だけを変更する方法を思いつきません。
ExcelのVBAだとCharactersオブジェクトが使えてたけど、これはVBSでは使えないのでしょうか? (←うまいきませんでした)
なにかいいアイデアあったら、誰か教えてください・・・

125:デフォルトの名無しさん
08/04/08 00:48:23 .net
エラー処理してないんで適当に。
偉い人添削ぷりーず

Option explicit

Const TARGET_WORD = "プログラム"
Dim XL, XLBook, XLRange
Set XL = CreateObject("Excel.Application")
Set XLBook = XL.workbooks.open("C:\Documents and Settings\デフォルトの名無しさん\デスクトップ\book1.xls")
Set XLRange = XLBook.sheets(1).Range("A1")

Dim TargetChr
Set TargetChr = XLRange.characters(Instr(XLRange.value, TARGET_WORD),len(TARGET_WORD))

If Instr(XLRange.value, TARGET_WORD) > 0 then
TargetChr.Font.ColorIndex = 3
End if

XLBook.save
XLBook.close
Set XLBook = nothing
XL.quit

126:デフォルトの名無しさん
08/04/08 13:55:16 .net
よーし、素人丸出しで質問させてくだされ!

とあるCSVファイルがあります。エクセルで展開すると60項目のセルがあります。
その項目で不要項目があるので、消す作業を自動で処理することを考えてます。

*******************************************************

Set objEXCEL = CreateObject("Excel.Application")
Set objBOOK = objEXCEL.Workbooks.open("指定場所と指定.CSV")
objEXCEL .Visible = true

myExcel.Range("B:D").Select
myExcel.Selection.Delete
myExcel.Cells(1,1).Select

********************************************************

サンプルやエクセルマクロ記録などしてそれらを参考にやってみました。
対象CSVは相対パスで指定してあります。
でも、相対パス指定した行でERRになります。

CSVを相対パスで指定して不要項目を削除するには、上記スクリプトを
どのように変更すればいいでしょうか?

127:デフォルトの名無しさん
08/04/08 16:00:05 .net
そこは絶対パスで指定できるように考えよう

128:デフォルトの名無しさん
08/04/08 16:18:19 .net
>>123
レスありがとう。

結局、相対パスはできないということですね。


129:120です
08/04/08 23:27:32 .net
>>121
ありがとう。書いてもらったのを参考にして思う通りのものができました。
CharactersオブジェクトのStartとLengthの指定の仕方をまちがってたようです。
任意のフォルダを選択すると、コマンドプロンプトのTREEコマンドみたいな枝?罫線+選択フォルダ以下すべてのサブフォルダ名 OR ファイル名を
Excelに書き出す、というのを作ってたんですが、その出力内容のうち、サブフォルダ名の部分だけを色変えたかったのです。

130:120です
08/04/08 23:28:08 .net
>>122
相対パスとるより絶対パスとるほうが簡単だと思うんだけど・・・?
Excel使うの前提のようなので、こういうのはどうかな。

*******************************************************
Option Explicit

Dim strFilePath

strFilePath = GetFilePathDialog()
msgbox strFilePath

'--------------------------------
' 選択したファイルのパスを取得
'--------------------------------
Function GetFilePathDialog()
Dim objExcel
Dim strFile
Set objExcel = CreateObject("Excel.Application")

strFile = objExcel.GetSaveAsFilename("", "CSV(カンマ区切り) (*.csv),*.csv")
If strFile = False Then Exit Function
GetFilePathDialog = strFile

Set objExcel = Nothing
End Function
*******************************************************

131:122
08/04/09 13:06:21 .net
>>126

必ず相対パスでないとだめってわけではないのだけど。
クライアントで取り込んだCSVを編集する為なのね。
まあ、やり方で回避できるのだけど。。。

このコードも活用させていただきますです。
ありがとう。

132:デフォルトの名無しさん
08/04/10 01:19:36 .net
>>122
パスがわからないのならドラッグ&ドロップすればいいじゃない、牛丼がないのなら豚丼をたべればいいじゃない。

>>126
そのファンクションいただき。でもエクセルObjectがないと使えないのかー。

133:デフォルトの名無しさん
08/04/10 02:21:36 .net
GetOpenFileNameとGetSaveFileNameでぐぐれば、タブンさんぷるでてくるぞ。
APIだからエクセルいらない。

134:デフォルトの名無しさん
08/04/10 16:40:35 .net
>>128
通常Webから配布しているCSVを加工する為に、VBSを
クライアント配布で色々考えてた。
>>126氏の指摘通りエクセル操作が前提で。

>パスがわからないのならドラッグ&ドロップすればいいじゃない、
それも、そうだと思った強風、豪雨の午後でした orz

>牛丼がないのなら豚丼をたべればいいじゃない。
メタボはいかん。

135:デフォルトの名無しさん
08/04/20 22:38:51 .net
こんにちは。メッセージボックスの[OK]ボタンが押されるのを待たずに次の処理を
実行させたいときはどうするのでしょうか?

[OK]ボタンが押されなくても複数のメッセージボックス(?)を表示させたいのですが …

136:デフォルトの名無しさん
08/04/20 23:39:08 .net
>>131
2箇所に同じ質問書くと嫌われるよ。マナー違反。今後気をつけな。

137:デフォルトの名無しさん
08/04/21 00:21:17 .net
3箇所ならOK。

138:デフォルトの名無しさん
08/04/21 20:15:02 .net
ジミーペイジもそんな事言ってたな

139:デフォルトの名無しさん
08/04/22 11:02:10 .net
>>134
じみへんは?

言ってないかw

140:デフォルトの名無しさん
08/05/01 22:03:51 .net
初心者なんですけどいいですか?
VBSで二進法の数を十進法にして表示させるプログラムを教えてください。



141:デフォルトの名無しさん
08/05/01 23:48:07 .net
2進数の仕組みがわかってりゃ簡単だよ。
手計算するのと同じことをVBにやらせればいいだけ。
頭から1文字ずつ取り出して、×2していくだけだろ。

msgbox unko("10101101")

Function unko(ByVal str)
   ret = 0
   For i = 1 To Len(str)
     ret = ret * 2 + CInt(Mid(str, i, 1))
   Next
   unko = ret
End Function


142:デフォルトの名無しさん
08/05/01 23:52:39 .net
それ計算違うw

143:デフォルトの名無しさん
08/05/01 23:54:10 .net
・・・と思ってら合ってるっぽいスマソ

144:デフォルトの名無しさん
08/05/02 00:25:00 .net
助かりました~
ありがとうございます。

145:デフォルトの名無しさん
08/05/03 11:12:12 .net
なんかClntの所でエラー表示が出るんですが(^^;

146:デフォルトの名無しさん
08/05/03 11:41:22 .net
>>141
Valに直しとけ

147:たわし
08/05/03 13:27:56 .net
発投稿っす。どうぞよろしく。
二進法の数を十進法にして表示させるプログラムもう少し簡単にできませんか

148:デフォルトの名無しさん
08/05/03 13:29:00 .net
ゆとりアラーム

149:たわし
08/05/03 13:36:42 .net
そこを何とかお願いいたします

150:デフォルトの名無しさん
08/05/03 20:23:26 .net
137よりどう簡単にするんだ

151:デフォルトの名無しさん
08/05/03 21:46:23 .net
142>ありがとうございます
しかしValでも型が一致しませんとでるんですが

152:デフォルトの名無しさん
08/05/03 22:43:18 .net
>>147
お前さんがとてつもない馬鹿で何一つ知らない情報弱者だから
こちらは超能力者にならざるを得ないのをとりあえず理解してくれ。

それを前提とした上で「パソコンでマウスを動かそうとした」とこから
「Valでも型が一致しませんとでる」までの経緯を
お前さんが認識してる「馬鹿」に分からせるように説明しろ。

153:デフォルトの名無しさん
08/05/04 01:47:23 .net
パソコン上でマウスを動かそうとし、動かしメモ帳を起動して137のプログラムをまずメモ帳に入力し、Clntをそれ以外いじらずValに変更した後、.vbsで保存して、実行しようとするとエラー表示されます

154:デフォルトの名無しさん
08/05/04 01:58:49 .net
数値で渡してるなw

155:デフォルトの名無しさん
08/05/04 06:09:59 .net
>>149
ValをCIntに戻して再実行してみろ。
CIntに戻したときのエラー表示の中で「文字が正しくありません。」
という文言があるのなら、全角スペースが原因。
行の先頭のスペースを全部削除してから再実行してみろ。動くはず。

>>142
CIntをValに直してもよけいに動かなくなるだけ。
VBでは動いても、VBSでは動かん。

>>150
1行目の10101101を文字列ではなく数値で渡しているって想定か?
別に数値で渡しても、勝手に型変換されて動くよ。


156:デフォルトの名無しさん
08/05/04 06:18:31 .net
>>151
数値で桁が多すぎると(浮動少数表現に変わるから?)エラーでるよ


157:デフォルトの名無しさん
08/05/04 12:33:44 .net
やっぱりうまくいきません
型が一致しません"Clnt"とでます
パソコンが2000だから


158:とかそういうわけでしょうか あと素人丸だしですみませんが、一行目の10101101ってどういう意味ですか?



159:デフォルトの名無しさん
08/05/04 12:37:01 .net
もうそのネタ飽きた

160:デフォルトの名無しさん
08/05/04 16:39:54 .net

そもそも「二進法」の意味がわかっとらんだろ?

161:デフォルトの名無しさん
08/05/04 17:22:21 .net
ところが2歩進んだと思ってたのに気が付いたら下がっていたという。

162:デフォルトの名無しさん
08/05/04 19:25:19 .net
2進数はわかってますが

163:デフォルトの名無しさん
08/05/04 22:40:33 .net
>>152
すまんが、前提として10101101をそのままとしていた。
確かに桁が増えたらエラーになる。
16桁か17桁くらいが区切りのはず。
ちなみに浮動少数表現ではなく、対数表現な。

>>153
指摘が間違ってた。
いいか、Clntが間違いだ。CIntだ。
2文字目は小文字のL(エル)ではなく、大文字のI(アイ)だ。

ついでにいうと、二進法で表現した数値を二進数と言うんだ。

164:デフォルトの名無しさん
08/05/05 03:45:40 .net
この会話・・・ぜったい2進数がわかってないな。

165:デフォルトの名無しさん
08/05/05 04:16:03 .net
シュールストレミングうめえ

166:デフォルトの名無しさん
08/05/05 17:06:00 .net
すいませんXPでやったらできました
そこで入力した二進数を十進数に変えるプログラムはどうやるんですか?


167:デフォルトの名無しさん
08/05/05 17:20:48 .net
二進数も十進数も見た目が違うだけで中味は同じ
だから変換は必要ない

168:136
08/05/05 17:27:22 .net
なんか変な流れ作っちゃってすまん

というか>>161なぜそこに戻る?


169:デフォルトの名無しさん
08/05/05 17:39:30 .net
inputboxをどこにいれりゃいいのかわかりませn

170:デフォルトの名無しさん
08/05/06 12:29:27 .net
おまい、ぜったいぜったい、ぜぇ~~ったい2進数がわかってないだろ。

171:デフォルトの名無しさん
08/05/06 14:22:30 .net
おまいら暇だな~
モレモナ~w

172:デフォルトの名無しさん
08/05/06 15:42:50 .net
vbsで16進数を表示。たとえば
msgbox &hFE

とすると、結果は 254 と表示されます。
ほんとは FE のはずです。
こういうバグがあるから気をつけたほうがいいよ。

173:デフォルトの名無しさん
08/05/06 15:47:27 .net
それはバグ・・・・とは思えないのだが。本来の仕様と違うとか?

174:デフォルトの名無しさん
08/05/06 17:18:09 .net
>>168 変態度かぁ

175:デフォルトの名無しさん
08/05/06 17:59:41 .net
意味わからん
FEって表示したいのなら
msgbox "FE"
って書きゃいいじゃん。
自分で &h つけておいて、何言ってんだろ?
msgbox hex(&hfe)
でもいいけど


176:デフォルトの名無しさん
08/05/06 18:31:12 .net
数値の&HFE と 文字列の"FE" の違いすらわからんヤツがおるのか。

177:デフォルトの名無しさん
08/05/06 21:58:28 .net
>>160
くせぇ!
今頃臭いが伝わってきたよ

178:デフォルトの名無しさん
08/05/11 04:40:36 .net

●6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
URLリンク(system-trading.jp)
[シストレFXグランプリとは]
クリック証券が提供するFXのデモ取引環境を利用して、システムトレードにチャレンジできるFX取引のグランプリです。
お客様ご自身で作成したシステムトレードの機能を評価する「シストレソフト部門」とトレード収益を競う「トレード部門」の2部門構成となっております。

●5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
  デモトレードの優勝者には賞金三百万円がプレゼントされます。

▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
URLリンク(www.fx-gp.com)

▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期


179:MVP賞 50万円 ●後期MVP賞 50万円



180:デフォルトの名無しさん
08/05/11 13:31:12 .net
コピペ君って馬鹿だな、まで読んだ。

181:デフォルトの名無しさん
08/06/17 04:14:05 .net
InputBox関数使って、入力値を得たいんですが、
255バイト以上の入力値って無視されるのでしょうか?

解決策があれば教えてください。。


InputText = InputBox("文字列を入力してください")

Dim Fs
Set Fs=CreateObject("Scripting.FileSystemObject")
Set newFile = Fs.CreateTextFile("0000test0000.txt",True)
newFile.WriteLine(InputText)



182:デフォルトの名無しさん
08/06/17 09:13:27 .net
ユニコードで254文字+CR+LFの、最大値を超えています。

183:デフォルトの名無しさん
08/06/17 22:19:12 .net
VBScriptを使って、HTTPステータスコードを取得する方法を探しています。
ある任意のWeb画面に対してスクリプトでリクエストを行い、HTTPステータスコード(200 ok 等)を
取得する方法はありますでしょうか。
どなたかご存知の方がいらっしゃいましたら、ご教授下さい。

184:>>177
08/06/17 22:24:08 .net
すいません。スレ違いだった為、WSHのスレに移します。

185:デフォルトの名無しさん
08/06/19 14:20:45 .net
vbsで、フロッピーのフォーマットを確認なしで実行
する命令ありますか?A:\固定で。

186:デフォルトの名無しさん
08/06/19 18:20:54 .net
>>179 何で確認しなくていいのか?

187:デフォルトの名無しさん
08/06/19 20:40:04 .net
VBSにはファイルにアクセスする命令すらありませんよ

188:デフォルトの名無しさん
08/06/21 07:38:22 .net
それを言うならC言語にもファイルにアクセスする命令は無いな

189:デフォルトの名無しさん
08/07/19 09:45:08 .net
ここまで便利そうなコードが殆どない件・・・

190:デフォルトの名無しさん
08/07/19 11:24:47 .net
>>183が便利そうなコードを書きまくるそうです><

191:デフォルトの名無しさん
08/07/27 01:18:22 .net
とりあえずExcelAddinをインスコするコードとかlnk右クリックでリンク先ディレクトリ表示とか
あるけど需要あるか?

192:デフォルトの名無しさん
08/07/30 21:22:27 .net
test1.bin
test2.bin
test3.bin

これらファイルを選択状態にして、VBSファイルにD&Dすると、
ファイル名順にソートして、1つのファイルに結合するには、どうしたら良いのでしょうか?

1つのファイルを、指定サイズに自動分割するVBSはできたのですが、
その逆のことができるVBSファイルを作りたい。。。

ADODB.Recordset
ADODB.stream あたりを使えば可能?

193:デフォルトの名無しさん
08/07/30 21:26:24 .net
copy /b

194:デフォルトの名無しさん
08/07/30 21:38:44 .net
>>185
参考にさせていただきた

195:デフォルトの名無しさん
08/08/13 09:09:42 .net
CIM_DataFileクラスを用いて、ファイルの各種情報を取得したいのですが、
「説明」のプロパティを取得するときに指定するプロパティ名が分かりません。

具体的には、例えばソリティア(C:\WINDOWS\system32\sol.exe)を
右クリックして表示されるプロパティの「バージョン情報」タブの2行目に
「説明:Solitaire Game Applet」と表示されますが、この値を取得したいのです。

ファイルバージョンなどは、「Version」プロパティで取得できております。
ご存知の方、ご教示お願い致します。

196:デフォルトの名無しさん
08/08/13 18:30:02 .net
189です。
カキコするところ間違えたみたいなので、移動します。スミマセン。

197:デフォルトの名無しさん
08/08/17 21:29:36 .net
>>186-187
作ってみた。

sdir = "C:\temp\" '出力先フォルダ
soutfb = "output.bin" '出力ファイル名
set osh = createobject("wscript.shell") 'シェルオブジェクト
set ofs = createobject("scripting.filesystemobject") 'ファイルオブジェクト
set oarg = wscript.arguments '引数オブジェクト
stmpf1 = "temp1.txt" '一時ファイル
stmpf2 = "temp2.txt" '一時ファイル

'ドラッグ&ドロップしたファイル名を一時ファイルに格納
set out = ofs.createtextfile(sdir & stmpf1, true)
for each s in oarg
  out.writeline s
next
out.close

198:デフォルトの名無しさん
08/08/17 21:31:54 .net
(つづき)

'ファイル名のリストをソートして一時ファイルに格納
osh.run "cmd /c sort " & (sdir & stmpf1) & " > " & (sdir & stmpf2), 0, true
set oin = ofs.opentextfile(sdir & stmpf2)
s = oin.readline

'バイナリファイルのコピー
ofs.copyfile s, (sdir & soutfb)
do until oin.atendofstream
  s = oin.readline
  osh.run "cmd /c copy /b " & (sdir & soutfb) & "+" & s & " " & (sdir & soutfb), 0, true
loop
oin.close

'一時ファイルの消去
ofs.deletefile sdir & stmpf1
ofs.deletefile sdir & stmpf2

msgbox "OK"

↑以上、実行時は行頭の空白を半角に。

199:デフォルトの名無しさん
08/08/17 22:04:23 .net
copyは性能的にしょうがないかもしれんがsortぐらい自前でやれよw

200:デフォルトの名無しさん
08/08/21 21:13:21 .net
VBSにて、SNMP情報の取得を考えてるんですが、
wsnmp32.dll を利用することはできないんでしょうか?

dynwrap.dll というラッパー?も使えないのでしょうか

201:デフォルトの名無しさん
08/08/31 18:59:35 .net
set shell32 = createobject("shell.application")
set fso = createobject("scripting.filesystemobject")
function recyclebin(pathname)
> path = fso.getparentfoldername(pathname)
set there = shell32.namespace(path)
set submenus = there.items.item(fso.getfilename(pathname)).verbs
I = 0
for each method in submenus
if strcomp(method, "削除(&D)") = 0 then
submenus.item(I).doit()
end if
I = I + 1
next
end function
recyclebin wscript.arguments(0)

ファイルやフォルダをドラッグアンドドロップすると、
ごみ箱に移すスクリプト。deletefile とかは
永遠に消えちゃうので不安だ...。

202:デフォルトの名無しさん
08/08/31 19:01:10 .net
すまん、> は、なし。

203:デフォルトの名無しさん
08/08/31 21:05:24 .net
それ、ごみ箱のショートカットと比べてどう便利なの?

204:デフォルトの名無しさん
08/08/31 21:32:26 .net
ファイルをドラッグアンドドロップていうのは
サンプル動作のためで、
関数をスクリプト内で
deletefile の代わりに使います。

205:デフォルトの名無しさん
08/09/16 20:29:18 .net
hail2u.net - Weblog - VBScriptでMSN Messengerの表示アイコンを変更する
URLリンク(hail2u.net)
このMessenger.UIAutomation.1を使って他にも色々出来ないかな、と思って
ドキュメントを探したんですが、どうにも見つからず…。
どなたか詳細ご存じの方いらっしゃいませんか?

Samurizeと組み合わせて、デスクトップから一発で名前とかステータス変えられたら…

206:デフォルトの名無しさん
08/10/05 15:56:24 .net
VBScriptとかJScriptで地味にWSHのプログラム書いてきたのに・・

IronPtythonなんてどうでもいい。

ていうことでVBScriptやJScriptを開発する統合環境みたいなツールってないの?
秀丸で書いてるんだけど、文法チェックや小文字大文字変換で不便でしょうがないんだけど。

207:デフォルトの名無しさん
08/10/05 16:31:17 .net
そんな愚痴をこのスレで言う理由は・・・つまり
VBSで作れと?

208:デフォルトの名無しさん
08/10/05 18:25:17 .net
うん。昔からのVBSやJSユーザを生き伸ばすためにも言語拡張すりゃいいのにとおもって。

209:デフォルトの名無しさん
08/10/05 19:01:39 .net
一応残るだろうけどVBSはもう進化しないでしょ。
同系としてVBAは今のところ代わりが無いから多少変わるかもしれんが。

WSHは見捨てられた子・・・
JScriptつーかJavaScriptならEclipseで使えると思うけど、それじゃダメ?だよね(w

210:デフォルトの名無しさん
08/10/05 20:01:20 .net
いや。わては、WSHとして使い�


211:スいんや。 でも、VisualWebDeveloperExpressEditionにWSH用のテンプレートがあるみたいだ。 インスコしよっと。



212:デフォルトの名無しさん
08/10/05 21:16:21 .net
俺はサクラエディタでしこしこ書いとるわ。

>でも、VisualWebDeveloperExpressEditionにWSH用のテンプレートがあるみたいだ。

そんなもんがあるんか。そのうち入れてみよっと。


213:デフォルトの名無しさん
08/10/06 05:31:22 .net
WebDevelopper

214:デフォルトの名無しさん
08/10/23 19:41:52 .net
a.vbsで定義したFunctionをb.vbsで使いたいが、
どうやったらいい?


215:デフォルトの名無しさん
08/10/23 19:55:52 .net
aとかbって何?a.vbsとb.vbsってこと?

つWindows スクリプト ファイル (.wsf)

216:208
08/10/23 19:58:58 .net
レスしたら>>207の意味判ったw

wsfファイルを作ってvbsファイルをインクルードしたらいいよ。

もしくはスクリプトファイルを読み込んでExecuteGlobalするか。

217:デフォルトの名無しさん
08/12/11 03:39:01 .net
テーブルから14桁で取得した日付(例:20081210140059)に、
+1秒した日付(20081210140100)を取得するにはどうしたらいいですか?

windowsアクセスログの履歴がデータとして格納されているテーブルから最新利用履歴日付を取得し、
そこから1秒後の日付でwindowsアクセスログを再検索したいのです。


218:デフォルトの名無しさん
08/12/11 10:47:10 .net
取得するじゃなくて自分で計算すればいいんじゃね?

219:デフォルトの名無しさん
08/12/12 21:44:05 .net
>>211
レスありがとうございます。
秒計算のできる関数を発見したので、試してみます!

220:デフォルトの名無しさん
08/12/13 22:10:34 .net
VBSのことでお助け願いたいのですが…どなたかお願いします!

221:デフォルトの名無しさん
08/12/13 22:22:50 .net
用件書かないやつなんか知らんわ

222:デフォルトの名無しさん
08/12/15 23:48:05 .net
助けて下さい。
25個のエクスプローラを起動させるようにプログラミングしたものが
あるのですが、3の倍数のエクスプローラーが起動したときのみに
ツールバーを表示させるようにしたいのですが
どのように、命令すればいいのでしょうか・・・。

223:デフォルトの名無しさん
08/12/16 00:32:48 .net
>>215
助けて下さい。
25本のチンポを勃起させるようにプログラミングしたものが
あるのですが、3の倍数のチンポが勃起したときのみに
包茎を表示させるようにしたいのですが
どのように、命令すればいいのでしょうか・・・。

ってくらいいみふ

224:デフォルトの名無しさん
08/12/16 01:22:01 .net
>>215
ナベアツに聞け

225:デフォルトの名無しさん
08/12/16 01:35:15 .net
>>215

たとえば 26475
この各桁を足すと 2+6+4+7+5 = 24
さらに各桁を足す 2+4 = 6
この値 6 が 3 の倍数ならば
26475 は 3 で割り切れる。

226:デフォルトの名無しさん
08/12/16 10:08:16 .net
ほほぅ

227:デフォルトの名無しさん
08/12/24 08:41:03 .net
すいません ど素人なんですがよかったら教えてください

CreateObject("WScript.Shell").Run で実行したバッチファイルを停止するスクリプトってどう書くんでしょうか?


228:デフォルトの名無しさん
09/01/09 14:14:10 .net
>>220
ぱっと思いついたのがそのDOS窓掴んで
sendkeyで^C→Yを送るくらい
もっと賢くてスマートなのは他の有識者に任せる

229:デフォルトの名無しさん
09/01/29 14:36:12 .net
Dim fileXML, objXML
Dim node, item, mesg

fileXML = "35640864.xml"

Set objXML = WScript.CreateObject("MSXML.DOMDocument")
objXML.load(fileXML)

For Each node In objXML.getElementsByTagName("Message")

mesg = ""&

id = node.getAttribute("SessionID")


For Each item In node.childNodes

If mesg <> "" Then

mesg = mesg & ","
End If

mesg = mesg & item.nodeName & ":" & item.firstChild.nodeValue

Next

WScript.Echo mesg

Next

XMLの子ノードが;;表示されない・・・
だ・だれか・・・

230:デフォルトの名無しさん
09/01/29 22:07:43 .net
>>220
そのバッチファイルのタイトルをtitleコマンドで適当に一意なものに変更しておいて
一致�


231:キるプロセス取得してkillすればいいんじゃね?



232:デフォルトの名無しさん
09/01/29 22:32:01 .net
>>222
表示できたかな?
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <Message SessionID="0001">
    <Icon>情報</Icon>
    <Text>情報メッセージ</Text>
  </Message>
  <Message SessionID="0002">
    <Icon>警告</Icon>
    <Text>警告メッセージ</Text>
    <Param>パラ1</Param>
    <Param>パラ2</Param>
  </Message>
</root>

233:デフォルトの名無しさん
09/01/30 10:58:34 .net
どこで質問していいか分からないのでここで質問させて下さい!

vbscriptでmapiを使ってサーバからメールを受信するプログラムを作ってます。
URLリンク(72.14.235.132)
を見ながら作ってるんですけど、
エラーコード:8004011Dが出て困ってます…

どなたかお知恵を拝借頂けないでしょうか?
basp21は使わない方向でお願いします!

234:デフォルトの名無しさん
09/01/30 20:14:39 .net
BASP21はSMTP/POP3サーバ、MAPIはExchangeサーバに使うものだよ

235:デフォルトの名無しさん
09/02/15 12:59:52 .net
IEでリアルタイムにURLを取得するVBSを書いています
流れはIEが起動してないとき実行すると”IEが表示されていません”と
メッセージを出し終了
IEが起動しているとき実行するとバックグラウンドで
10秒ごとのWebページのURLを取得しIEを終了させると今まで取得したURLを
メッセージで表示し終了
こんな感じで書いたんですが "IEを終了させると今まで取得したURLを
メッセージで表示し終了" この部分がうまく書けません。
具体的にはIEが終了するとオブジェクトが空になるはずなのでその辺をついて
わざとエラーを起こしエラー番号を取得しそのエラーだったら終了
させるような感じで書いたんですがちゃんと動作してくれません
ご教授お願いします



236:デフォルトの名無しさん
09/02/15 13:00:58 .net
コードです
Dim object1, object2, objectie, ieurl, loopflag, hako
loopflag = 0
Set object1 =CreateObject("Shell.Application")
set object2 = object1.Windows()
do While loopflag = 0
for each objectie in object2
hako=objectie.LocationURL
ieurl = ieurl & hako & vbCrLf
hako=""
next
wscript.sleep(10000)
on error resume next
if objectie.LocationURL=""
end if
if err.number=424 then
exit do
end if
msgbox ieurl
loop
If hako = "" Then
MsgBox "インターネットエクスプローラーが開いてないか、閉じました。"
If ieurl <> "" Then
MsgBox ieurl
End If
End If


237:227
09/02/15 15:22:14 .net
事故解決しました

238:デフォルトの名無しさん
09/02/26 23:01:07 .net
VBscriptでiTunesをアクティブにしたあとCtrl+Alt+5、Ctrl+Fと
入力させフルスクリーンにしたいのですが、アクティブに
なったあとの入力を受け付けないようなのです。

なぜきちんと動かないのかお分かりになるかたいらっしゃいませんか?

以下スクリプトです。

dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "iTunes.exe"
WScript.Sleep 10000
objShell.AppActivate "iTunes"
WScript.Sleep 1000
objShell.SendKeys "^(%5)"
WScript.Sleep 1000
objShell.SendKeys "^f"


239:教えてくんに
09/04/30 22:38:51 .net
EXCEL VBA みたいにステップインできるソフトってない?

240:デフォルトの名無しさん
09/05/04 01:07:57 .net
コントロールパネル→ネットワーク接続の「ワイヤレスネットワーク接続」を右クリックして「修復」
これをVBSで実行できますか?

241:デフォルトの名無しさん
09/05/04 01:54:59 .net
ipconfig /renew

242:デフォルトの名無しさん
09/05/05 19:33:28 .net
>>230
私もこのような


243:現象がありました。 VBScriptでキーを送るのと、 物理キーボードでキーを送るのは、 別物として扱われる事があるのでしょうか?



244:デフォルトの名無しさん
09/05/12 22:25:37 .net
vbsの管理者実行ってできるんかな?

インスコフォルダ削除のスクリプトとかをVistaで実行すると、

アクセス拒否されるじゃん?

あぁゅぅのって、管理者実行でアクセス出来ると思うんだけど・・・

分かるヤツいない?

245:デフォルトの名無しさん
09/05/13 00:50:00 .net
Vista の UAC の話なら

set Shell = CreateObject("Shell.Application")
Shell.ShellExecute WScript.FullName, "MyScript.vbs", null, "RunAs"

のように ShellExecute に RunAS パラメタを付ければ管理者権限で実行できるらしい

上の例は一般権限のスクリプトから外部の別のスクリプトを管理者権限で呼び出す例だが
WTL のセットアップスクリプトに、フラグ制御で自分自身のスクリプトを再度管理者権限で呼び出したり、
UACの判定とかのやり方が入ってるから詳しくはそちらを見てくれ

246:デフォルトの名無しさん
09/05/13 19:52:57 .net
おぉw

レスサンクス!(・∀・)

でも、またエラーでたな・・・
二個くらい出てきて、一個目がコレ↓↓
━━━━━━━━━━━━
スクリプト:  C\Users\*****\Desktop\\TEST.vbs
行:    14
文字:   1
エラー:  書き込みできません。
コード: 800A0046
ソース:  Microsoft VBScript 実行時エラー
━━━━━━━━━━━━
二個目が↓↓
━━━━━━━━━━━━
スクリプト ファイル"C\Windows\system32\My Script.vbs"
が見つかりません。
━━━━━━━━━━━━
実行環境はWindowsVista HomePremium
テストでiTunesのフォルダを指定してやってみたが何故かエラー
レス↓ソースでし
ソースに問題があったら指摘してくれ


247:デフォルトの名無しさん
09/05/13 19:53:38 .net
以下ソース↓↓
━━━━━━━━━━━━

set Shell = CreateObject("Shell.Application")
Shell.ShellExecute WScript.FullName, "MyScript.vbs", null, "RunAs"

Dim objFileSys
Dim strDeletePath

Set objFileSys = CreateObject("Scripting.FileSystemObject")

strDeletePath = "C:\Program Files\iTunes"

objFileSys.DeleteFolder strDeletePath

set objFileSys = Nothing
━━━━━━━━━━━━━

長文失礼..........。

248:デフォルトの名無しさん
09/05/13 21:44:14 .net
えー、MyScript.vbsは単なる例なので当然実行はできない
あえて全部書くなら適当だけどこんな感じ

Dim bElevated
bElevated = False
If WScript.Arguments.length >= 1 Then
If WScript.Arguments.Item(0) = "/elevated" Then
bElevated = true
End If
End If
set Shell = CreateObject("Shell.Application")
If Not bElevated And Shell.IsRestricted("System", "EnableLUA") Then
Shell.ShellExecute WScript.FullName, """" + WScript.ScriptFullName + """" + " /elevated", null, "RunAs"
WScript.Quit(0)
End If

Dim objFileSys
Dim strDeletePath
Set objFileSys = CreateObject("Scripting.FileSystemObject")
strDeletePath = "C:\Program Files\iTunes"
objFileSys.DeleteFolder strDeletePath
set objFileSys = Nothing


249:デフォルトの名無しさん
09/05/13 21:53:41 .net
age

250:デフォルトの名無しさん
09/05/13 22:07:38 .net
お、一個エラー消えたヽ(・∀・ )ノ

まだ
━━━━━━━━━━━━
スクリプト:  C\Users\*****\Desktop\\TEST.vbs
行:    18
文字:   1
エラー:  書き込みできません。
コード: 800A0046
ソース:  Microsoft VBScript 実行時エラー
━━━━━━━━━━━━
のエラーが残ってまうな・・・;;

んー、このソースに使ってるスクリプトとかってどこで勉強できる?
URLor本トヵあったらそっちも覗いててみたいんだけど・・

ご指摘感謝感謝(´;ω;`人)

251:デフォルトの名無しさん
09/05/13 22:34:44 .net
800A0046 ってのはアクセス権限のエラーなので、既にスクリプトの問題では
ないような気がする
最初、アンインストール時に残ったゴミでも削除するのかと思ったんだけど
まさかアンイントールせずにフォルダをいきなり削除しようとしてるわけではないよね

C:\Program Files\iTunes
にサービスなどのプログラムがあってまだ使われているなら権限の問題とは
関係なくフォルダの削除は無理だと思うけど

252:デフォルトの名無しさん
09/05/13 22:41:42 .net
あぁー・・やっぱそうなるのかー

URLリンク(www.whitire.com)
コレとかで停止してからってのは駄目なん(・ω・`)?

253:デフォルトの名無しさん
09/05/13 23:06:26 .net
ダメというか無理やりのファイル削除は、レジストリや作業ファイルのゴミが
残る可能性が高い
レジストリや作業ファイルのゴミがあると同じアプリを二度とインストールできなくなったり
最悪OSが不安定になったりするの普通やるものではない

そもそも何故正式な方法でアンインストールしないの?

254:デフォルトの名無しさん
09/05/13 23:40:01 .net
やっぱそうかー;;
OS犠牲にしてまではしたくないな・・・

デスクトップにダイアログ常時表示させといて、選択した必要ないファイル・ソフトの削除を
チャチャッ♪っと済ませられるようにしたいなぁとか、他にも活用できそうだしねー・w・

URLリンク(www.whitire.com)
一応、知恵の糧になるようなものをうpってみる
レジストリのゴミ削除できるかなぁーって(ノ∀`*)

255:デフォルトの名無しさん
09/05/17 09:32:28 .net
2つのフォルダを比較して
差分ファイルを指定フォルダにコピーすることはvbsで可能?

256:デフォルトの名無しさん
09/05/17 10:20:08 .net
>>246
vbs自体にハッシュ比較の機能がないから無理
同じ名前、サイズ、タイムスタンプくらいの判定でいいなら当然可能

257:デフォルトの名無しさん
09/05/17 10:43:25 .net
>>247
さすがにスクリプトでハッシュ比較すると
処理遅いだろうからそれで十分です
ありがとう、今から作ってみます

258:デフォルトの名無しさん
09/05/17 10:50:01 .net
一度は全部読まんとハッシュも出ないから、全比較でいいんじゃね?
比較するにしてもfcとか使ったほうが早いけど。

259:デフォルトの名無しさん
09/05/17 13:19:10 .net
VBSからIEを起動して、VBSでIE内のボタン押下処理した後、

「セキュリティで保護されていない接続へリダイレクトされようとしています。
現在のサイトへ送信中の情報は、セキュリティ保護されていないサイトへ再送信される可能性があります。続行しますか?」

っていうダイアログが表示されるのですが、このダイアログの「はい」のボタンを押下するには、VBSではどのようにすればいいのでしょうか?

260:デフォルトの名無しさん
09/05/18 08:45:15 .net
処理に時間がかかる場合で
プログレスバー表示的なことが出来ればいいのだけど
みんなはどうしてる?
IEを使う方法はわかりにくいし

261:デフォルトの名無しさん
09/05/18 12:35:47 .net
IEが嫌ならコンソールに出力でもしとけよ。

262:デフォルトの名無しさん
09/05/18 13:04:55 .net
しとけよじぇねーだろ!

したらいいんじゃないですか!だろw

263:デフォルトの名無しさん
09/05/18 18:23:55 .net
じぇ

264:デフォルトの名無しさん
09/06/24 00:20:51 .net
   。
   ||
ヾ(o゚ω゚o)ノ゙ プニプニ!プニプニ!
   ||
ヾ(o゚ω゚o)ノ゙ 他板から乱入だ!プニプニ!
   ||
ヾ(o゚ω゚o)ノ゙ プニプニ!プニプニ!
   ||
   O

265:デフォルトの名無しさん
09/09/21 08:47:26 .net
>>250
キー送信でAltとかTabとかSpaceとか送信して押せないかね。

>>251
HTAでプログレスバー作るのは?
IE(HTML)でやるよりソレっぽく仕上がるけど。

266:デフォルトの名無しさん
09/10/03 01:28:39 .net
なんか完全に過疎っているな。

最近、業務での単純作業をvbsで作りこんでみて、使い勝手いいと気づいたんだが。

てか、いつもメモ帳で作っているだが、補完機能とかある軽量の開発環境ツールあったら教えて。

267:デフォルトの名無しさん
09/10/03 09:02:10 .net
補完機能なんて使うほどのものじゃないからなぁ。
VisualStudioが一応対応してるんじゃあないか?
基本的にはVBAやVisualBasicに近いものだし。

TeraPadで色付けワードにVBScript関係のモノと
WSH関係のモノ追加したのでいつも書いてる。

268:デフォルトの名無しさん
09/10/03 12:38:11 .net
即実行テスト出来るのでwpEditor使ってる

269:デフォルトの名無しさん
09/10/05 20:34:03 .net
IEの操作について質問です。
下記のように和英辞書サイトで『空港』という単語を検索するようにしたいのですが、
なぜかテキストボックスに文字が入力されません。
どうしたらいいか教えてください。

Option Explicit
On Error Resume Next

Dim strUrl
Dim objIE

strUrl = "URLリンク(dictionary.goo.ne.jp)"
Set objIE = WScript.CreateObject("InternetExplorer.Application")
If Err.Number = 0 Then
objIE.Navigate strUrl
objIE.Visible = True
Else
WScript.Echo "エラー:" & Err.Description
End If
Set objIE = Nothing

objIE.document.all("MT").value = "空港"



270:デフォルトの名無しさん
09/10/05 20:43:28 .net
>>260
指定方法が違う
対象のHTMLソースを確認しろ

271:デフォルトの名無しさん
09/10/05 21:13:09 .net
>>260
Dim objIE
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "URLリンク(dictionary.goo.ne.jp)"
WScript.Sleep(5000)
objIE.document.dict.MT.value = "空港"
objIE.document.dict.submit()

272:260
09/10/06 17:10:24 .net
>>261-262
回答ありがとうございます。
URLリンク(www2s.biglobe.ne.jp)
のサイトを見てフォームの指定をやってみたのですがvbaとはまた違うのですかね?
vbsのIE操作のやり方が載っているサイトなどありましたら教えてください。


273:デフォルトの名無しさん
09/10/06 17:49:49 .net
>>263
基本は一緒でHTMLの知識
最初の>>260で動作しない理由は document.all("MT") では単独のコントロールを指定しないため
よって>>262ではフォーム名を入れて document.dict.MT で指定している

スレチだよな・・・

274:デフォルトの名無しさん
09/12/23 20:50:33 .net
ワード、エクセル、画像、HTMLファイルなどを指定した順番に印刷し、
各ページにページ番号をつけることってvbsで作成可能ですか?
可能だったらどのように作成するかヒント教えてください。

275:デフォルトの名無しさん
10/01/02 21:28:53 .net
ワードとエクセルならそういうフリーソフトがすでにあるけどな
ページ番号がついたかどうかは知らんが

276:デフォルトの名無しさん
10/01/05 23:43:38 .net
>>265
VBSでそういう横断的でかつ細部に至る要求なんて書けたかなってかんじ
ユーザインタフェースへの入力を自動化するのならuwscとかあるんだけど

277:デフォルトの名無しさん
10/02/15 21:42:27 .net
文字列連結.vbs

Function J(arrArg)
J = Join(arrArg, "")
End Function

Wscript.Echo J(Array(1, 2, 3, 4, 5, "A", "B", "C"))

&記号に疲れたひと用

278:デフォルトの名無しさん
10/02/16 23:08:22 .net
どこで聞いたらいいのかわからないので、スレ違いを承知でお聞きしたいのですが、
現在Windows 2003 Serverメインの環境でActive Directoryの運用中です。

ユーザアカウントの新規作成は全て手動で行っているのですが、何とかWSHやADSIを使って
CSVファイルから一括で登録処理を行えるようにしたいと思っています。

しかし、プログラムはおろかコードやスクリプトなど今まで全くさわったことが無いので
ネット上で公開されているサンプルなどを見ても、何を意味しているのかがほとんどわかりません。
勉強するに当たって、参考になる書籍やサイト、別スレなどがあればアドバイスをお願いします。

279:デフォルトの名無しさん
10/02/16 23:16:13 .net
>>269
このあたりが基本
URLリンク(technet.microsoft.com)
スクリプト一覧からカテゴリ別サンプルが探せる

280:269
10/02/17 00:37:23 .net
>>270
ありがとう。
そこも見たんだけど、そもそも一つ一つのメソッドがどういうオブジェクトを生成してるのかや、
何故それをしなければならないのか、っていうところからわからなくて困ってる。

Set objCommand = CreateObject("ADODB.Command")
なんかはドメコンに接続するときにおまじないのように書かれてるけど、これに限らず何をするためのものかわからないレベル。
例えば上記の構文だと、objCommandって変数にどういうオブジェクトが当て込まれてるのかや、
その内容を確認する方法すらわからなくて、ただただ途方に暮れてる。

Scripting guysなんかも読んでるけど、突然理解が追いつかなくなるんだ…
才能無いから諦めた方がいいのかと悩んでしまう

281:デフォルトの名無しさん
10/02/17 00:50:43 .net
>>271
あきらめるの早すぎ。
ADOは一度使い方を覚えれば使いまわせるよ。

VBSでWSHやる前に、
ExcelのVBE環境で色々試してみてはどうか?
ADOもADSIも使えるよ。
デバッガで変数の中身を確認できるので、イメージが膨らむはず。

282:デフォルトの名無しさん
10/02/17 01:06:45 .net
>Set objCommand = CreateObject("ADODB.Command")
>なんかはドメコンに接続するときにおまじないのように書かれてるけど、これに限らず何をするためのものかわからないレベル。
>例えば上記の構文だと、objCommandって変数にどういうオブジェクトが当て込まれてるのかや、
>その内容を確認する方法すらわからなくて、ただただ途方に暮れてる。

気にすんな
ほとんどの自称プログラマはそこらへんのサンプルコピペして
意味も判らず使ってるだけのレベル
わからんでもこねくりまわしてるうちにとりあえず動く

全部判って書いてる香具師の方が少数だから安心汁


283:269
10/02/17 01:23:56 .net
>>272>>273
アドバイスサンクス。
3ヶ月程悩み続けてたんだが、プログラムとスクリプトの違いすらわからないくらいに初心者なもんで、
参考になる本も探してみたけど、どれも求めているものとは違うから挫けかけてた。

ExcelとかAccessのVBAだと、変数の宣言とかコマンドのプロパティが若干違ってくるから
あえて敬遠してたけど、そっちでも色々試してみる。
もっとも、WSHだと変数はWScript.Echoで確認できるけど、生成したオブジェクトの確認方法が不明だったから
コピペしてきたサンプルが何のために何をしてるのかわからなくて、
その度に途方に暮れてたけど、ちょっと頑張れそうな気がしてきた。

また分からなかったら初心者丸出しの質問をするかもしれないけど、
とりあえず明日から改めて出直してくる。

本当にありがとう!!

284:デフォルトの名無しさん
10/02/17 01:38:07 .net
キーワードと "MSDN" をあわせてググレばたいていの説明は出てくる。

285:デフォルトの名無しさん
10/02/21 17:08:50 .net
test
<pre>
p
</pre>


286:デフォルトの名無しさん
10/02/21 17:29:45 .net
文字列の一部をコメントアウトする.vbs

Wscript.Echo "" _
& "aaa" _
& "bbb" _
& C("" & "ccc" _
) & "ddd" _
& ""

Function C(strArg)
C = ""
End Function

rem とかじゃだめなのさ

287:デフォルトの名無しさん
10/02/28 16:55:49 .net
文字列の一部をコメントアウト2.vbs

Set objDic = CreateObject("Scripting.Dictionary")
i = 0
i = i + 1 : objDic.Add i, "cmd.exe /c"
i = i + 1 : objDic.Add i, "("
i = i + 1 : objDic.Add i, "dir /w"
rem i = i + 1 : objDic.Add i, "|"
rem i = i + 1 : objDic.Add i, "sort /r"
i = i + 1 : objDic.Add i, "|| (pause & exit)"
i = i + 1 : objDic.Add i, ")"
i = i + 1 : objDic.Add i, "&& (echo well done. & pause)"
strCommandLine = Join(objDic.items, " ")
CreateObject("Wscript.Shell").Run strCommandLine


288:デフォルトの名無しさん
10/04/21 01:42:59 .net
だれかEXECメソッドの使い方教えてください;;
ググっても分からない。。

289:デフォルトの名無しさん
10/04/21 06:59:22 .net
wordの.docファイルに埋め込まれた画像をbmpで取り出すプログラムを書いています
Office2003以降のwordがインストールされているPCからだとうまく取れたのですが
OfficeXP以前のwordがインストールされているPCだとうまく動きません
どちらもword2000形式で保存されているファイルに対して操作しています
OfficeXP以前のwordがインストールされているPCでも動くように書くにはどうすればよいですか

290:デフォルトの名無しさん
10/04/21 07:42:42 .net
>>279
URLリンク(www.microsoft.com)
scd56jp.exeが日本語版ドキュメントだったはず。

291:質問なんすが
10/06/09 01:05:23 .net
vistaでファイルを選択するためのダイアログ ボックスを表示するには?
Hey, Scripting Guy! にあった

Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "All Files|*.*"
objDialog.InitialDir = "C:\"
intResult = objDialog.ShowOpen
If intResult = 0 Then
Wscript.Quit
Else
Wscript.Echo objDialog.FileName
End If


では1行目でエラー
ActivXコントローラはObjectを作成できないそうです

292:デフォルトの名無しさん
10/06/09 02:17:23 .net
>>282
XPでファイルを選択するためのダイアログ ボックスを表示するには?
の間違いだろ。
URLリンク(www.microsoft.com)

293:デフォルトの名無しさん
10/06/28 17:05:36 .net
>>282
URLリンク(technet.microsoft.com)
>UserAccounts.CommonDialog オブジェクトは、セキュリティ上の問題から Windows Vista で廃止されました。

294:デフォルトの名無しさん
10/07/05 11:44:59 .net
VBSって何?

295:デフォルトの名無しさん
10/07/05 11:59:08 .net
Virtual Big Size

296:デフォルトの名無しさん
10/07/05 22:22:36 .net
VESA BIOS Services

297:デフォルトの名無しさん
10/07/05 22:46:32 .net
Vagina Burst Shower

298:デフォルトの名無しさん
10/07/06 09:19:02 .net
Visual Browsing System

299:デフォルトの名無しさん
10/07/24 17:30:04 .net
数万件のデータをテキストへの書き出す方法で、軽くて早くしたいわけだが
書き出し方法としては

・データごとに直接書き込み
・変数に格納してから一括書き込み
・クリップボードに格納してから一括書き込み

の他になにかある?
配列に格納してエクセルシート経由くらいしか思い付かない

300:デフォルトの名無しさん
10/07/26 11:43:18 .net
元データの格納場所がDBならSQLって手もあるな

301:デフォルトの名無しさん
10/07/26 13:40:13 .net
複数箇所のフォルダ管理だからDB化は難しいかな

そして変数もクリップボードも足りなくて使えないや
数万件ファイル名に各々文字列連結して全部つぎ込むとかムリゲ
txtに書き出すなら配列に格納する意味無さそうだしなあ

302:デフォルトの名無しさん
10/07/26 14:02:03 .net
クリップボード出来ないことはないが、テキストに書き出す20倍くらい時間かかってる
IEクリップボードのせいか?
VBなら早いのに

バックグラウンド処理するのにこんなに時間も負荷もかかるなら、クリップボードは使えないな

303:デフォルトの名無しさん
10/07/26 18:15:12 .net
質問です!
クリップボード使ってテキスト書き出しってど~やるの?

304:デフォルトの名無しさん
10/07/26 18:37:47 .net
IE使うのが一般的かな
上がクリップボードから読み出し
下がクリップボードへ書き出し
書き出すときはクリップボードをクリアしてから格納すること
Microsoft Forms 2.0設定できればクリップボードも早くなるかもしらんが

objIE.document.parentWindow.clipboardData.GetData( "Text" )
Document.parentWindow.clipboardData.setData "text",""

305:デフォルトの名無しさん
10/07/26 18:40:17 .net
いや、その後に「一括書き込み」するんでしょ?そっちのやり方。

306:デフォルトの名無しさん
10/07/26 19:17:44 .net
何を聞きたいのかよくわからんが・・・
objOutFile.WriteLine strDate で書き込めるだろ
改行したいならクリップボードに格納するときに VBCRLFでつなげればテキストには反映される

307:デフォルトの名無しさん
10/07/26 19:27:58 .net
いや、なにか「速い」機能があるのかと思って・・・

VBだと速いの?

308:デフォルトの名無しさん
10/07/26 20:30:10 .net
そういうことか

前エクセルVBA使ってたときは、クリップボード経由のデータ貼り付けってかなり早かった気がする。
とはいえエクセルだと配列→セルが強力すぎるからあんまり使わないんだけれども。

309:デフォルトの名無しさん
10/09/30 20:04:17 .net
Set objFSO = CreateObject("Scripting.FileSystemObject")

set objOpenFile=objFSO.Open


310:TextFile("C:\hoge.txt",1,false) msgbox "ロックちゅ~" なんかもんだいありまっか?



311:デフォルトの名無しさん
10/09/30 20:45:49 .net
ファイルロックを同期に使うなとあれほど

312:デフォルトの名無しさん
10/10/22 12:09:59 .net
WshShell.Environment("USER").Item("UNKO") = "うんこ"
Wscript.Echo WshShell.ExpandEnvironmentStrings("%UNKO%")

結果:%UNKO%

値を「うんこ」に設定できません。自分で自分の環境変数は変えられないのですか?

313:302
10/10/22 12:35:04 .net
自己解決しますた

314:デフォルトの名無しさん
10/10/25 20:30:58 .net
以前、自動生成するファイルの拡張子に
.unk ってのを使ってたら(内容不明の場合に作るファイル)
「別に拡張子はナニつかってもいいけどさぁ
 "うんこ"ってのは、ちょっとどうなのよ」
て先輩に言われたことがあったのを思い出した。

315:デフォルトの名無しさん
10/10/26 01:31:14 .net
shine.unko
こんな感じですか?わかりません。

316:デフォルトの名無しさん
10/10/26 18:43:40 .net
>>305
unknownだっつってんだろダラズ

317:デフォルトの名無しさん
10/10/26 21:42:34 .net
うんこなうんか

318:デフォルトの名無しさん
10/10/29 23:53:34 .net
>>304
Lotus Notesなんかも添付ファイルが理解できない時に吐くみたいだね>unk
個人的には3文字中「un」で2文字使うのはどうかと思うので
「UKN」の方が好きだけど(天気図等で使うが少数派…)

いっそのこと3文字にこだわらずに拡張子を「.unknown」にしちゃえば?
(dir /xなど)8.3文字表示で見ると、ちゃんと「.unk」になるし

319:デフォルトの名無しさん
10/10/30 03:10:54 .net
>>308
なるほど、 .ukn か。

.unknownでもまぁ問題は無い気がするが
.unk でも十分伝わると思うんだ。
うんこって読む奴がうんこ。

320:デフォルトの名無しさん
10/10/30 09:52:51 .net
むしろunkでうんこって読める先輩って
kwsk、ktkr、wktk、ksk、gkbrみたいなアブジャド系表記に慣れてる2chねらなんじゃないのかw

321:デフォルトの名無しさん
10/10/31 22:53:19 .net
他コンピューターのパスを返す時に、ネットワークドライブ(\A~Z)ではなく、
\\サーバー名\フォルダ~というようにする方法はありますか?

322:デフォルトの名無しさん
10/11/01 00:28:50 .net
あります

323:デフォルトの名無しさん
10/11/06 00:05:55 .net
おまえ、わざと意地悪してるだろ
同僚や部下から嫌われるタイプだな

324:デフォルトの名無しさん
10/11/06 00:06:48 .net
死ねよ

325:デフォルトの名無しさん
10/12/25 06:45:27 .net
久しぶりになにかをVBSで書きたい。

326:デフォルトの名無しさん
10/12/26 21:35:06 .net
じゃあ「何か」を書いてみればいい。

327:デフォルトの名無しさん
11/01/02 00:13:10 .net
MsgBox "Hello World!!"


328:デフォルトの名無しさん
11/01/02 00:18:17 .net
MsgBox "Happy New Year !"

329:デフォルトの名無しさん
11/01/02 00:23:59 .net
ゴサっ

--------------------
dim i
dim j

for i=1 to 1000

j=j+0.1

next

MsgBox j


330:デフォルトの名無しさん
11/01/04 13:34:29 .net
TEXTファイルから
特定の文字や特定の行を抜き出す
スクリプトってない?
三次元測定機からCADに
XYZ手動で打ち込むのもういやになった。

331:デフォルトの名無しさん
11/01/04 15:12:23 .net
>>320
ある。というか簡単だよ
テキストファイルを開いて1行ずつ読みながら正規表現等でチェックしていくだけ
2行以上に渡るデータだと少し面倒だけど大した手間ではない

でも仕様によってはわざわざ作らずに
SakuraエディタなどのテキストエディタのGrep機能で充分だったりするけど


332:デフォルトの名無しさん
11/01/04 17:00:53 .net
textファイルをドラッグアンドドロップで

DIM


333: LOC1= LOCATION OF CIRCLE CIR1 UNITS=MM ,$ GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO AX NOMINAL +TOL -TOL MEAS DEV OUTTOL X 469.343 0.050 -0.050 469.343 0.000 0.000 ---#---- Y 2.106 0.050 -0.050 2.106 0.000 0.000 ---#---- Z 412.000 0.050 -0.050 412.000 0.000 0.000 ---#---- D 53.996 0.050 -0.050 53.996 0.000 0.000 ---#---- DIM LOC4= LOCATION OF CIRCLE CIR4 UNITS=MM ,$ GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO AX NOMINAL +TOL -TOL MEAS DEV OUTTOL X 386.074 0.050 -0.050 386.074 0.000 0.000 ---#---- Y 2.461 0.050 -0.050 2.461 0.000 0.000 ---#---- Z 577.913 0.050 -0.050 577.913 0.000 0.000 ---#---- D 44.971 0.050 -0.050 44.971 0.000 0.000 ---#----      ↑こんな感じの中身を      こんな風に↓ /469.343/2.106/412.000 /386.074/2.461/577.913 XYZを/に置き換えて さらにXYZのNOMINALの数字だけを残して さらにデスクトップにtextで保存されるようなやつです 難しいですね、すいません



334:その1
11/01/04 22:51:41 .net
>>322
とりあえず作ってみた

' [仕様]
' NOMINALの位置は固定(XYZの直後)
' X,Y,Zはこの順番で必ず出現
' 数値間はスペース区切り
' 出力ファイルはデスクトップに元ファイル名(拡張しなし)_XYZ.txtというファイル名で出力
Dim fso,wshShell,regXYZ
Dim inFilePath,outFilePath,inFile,outFile,sDeskTopPath,sLine,retMatches
Dim X,Y,Z,isOutput
Const REG_XYZ_NOMINAL = "^([XYZ]) +([^ ]+) " ' 先頭XYZ の後空白があり次に空白が来るまでの値
Const OUT_FILE_TAIL = "_XYZ.txt" ' 出力ファイル末尾
Set wshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set regXYZ = New RegExp
With regXYZ
.IgnoreCase = False ' 大文字小文字区別する
.Global = False ' 先頭の一致のみ
.Pattern = REG_XYZ_NOMINAL
End With
sDesktopPath = wshShell.SpecialFolders("Desktop") ' デスクトップの取得
inFilePath = WScript.Arguments(0) ' 入力ファイル
If Not fso.FileExists(inFilePath) Then MsgBox(inFilePath & "が存在しません"):WScript.Quit
outFilePath = fso.BuildPath(sDesktopPath, fso.GetBaseName(inFilePath) & OUT_FILE_TAIL)

If fso.FileExists(outFilePath) Then
If MsgBox(outFilePath & "ファイルが存在します。上書きしますか?", vbYesNo ) = vbNo Then Msgbox "処理を中止しました":WScript.Quit
End If

335:その2
11/01/04 22:52:49 .net
Set outFile = fso.CreateTextFile(outFilePath, True)
Set inFile = fso.OpenTextFile(inFilePath, 1, False)
X="":Y="":Z="":isOutput = True
Do While ( Not inFile.AtEndOfStream )
sLine = inFile.ReadLine
Set retMatches = regXYZ.Execute(sLine)
If ( retMatches.Count > 0 ) Then
Select Case retMatches(0).Submatches(0)
Case "X"
X = retMatches(0).SubMatches(1):isOutput = False
Case "Y"
Y = retMatches(0).SubMatches(1):isOutput = False
Case "Z"
Z = retMatches(0).SubMatches(1)
outFile.WriteLine("/" & X & "/" & Y & "/" & Z)
X = "":Y="":Z="":isOutput = True
Case Else
End Select
End If
Loop
if ( Not isOutput ) Then outFile.WriteLine("/" & X & "/" & Y & "/" & Z)
inFile.Close:outFile.Close
set inFile = Nothing:set outFile = Nothing:set WshShell = Nothing
set fso = Nothing:set regXYZ = nothing
MsgBox "完了"
' その1とその2の内容を一つのテキストファイルに貼り付け XYZ.vbs 等のファイル名で保存してください

336:323
11/01/04 23:46:30 .net
追記
ソースを短くするために複数ファイルのドラッグ&ドロップには対応していません
# 複数の関数に分かれていたのを1つにまとめたりしたので

↓辺りを参考にすれば変更は容易です
URLリンク(msdn.microsoft.com)

337:デフォルトの名無しさん
11/01/05 10:04:58 .net
プログラム板凄すぎワロタw
ありがとうございます!


338:デフォルトの名無しさん
11/01/07 15:49:03 .net
どなたかリムーバブルメディアを取り出すvbs作ってください
お願いします
ジャンクのスロットローディング式のドライブ買ったらボタンがありませんでした

339:デフォルトの名無しさん
11/01/07 16:53:37 .net
011100111111011111
011110000111101111
001111100011110110
111010101101011101
100011101010101010

340:デフォルトの名無しさん
11/01/08 08:04:12 .net
>>327
ちょっと検索すれば出てくる。少しは自力で探そう

VBSにこだわらないのなら
Vectorで「トレイ 開閉」とかで検索すればフリーソフトがいくらでもあるし

と言ってるうちに見つけた。1行で書けるのが面白かったので個人的にメモ

' 光学ドライブが1台の場合
CreateObject("WMPlayer.OCX").cdromcollection.item(0).eject()

' 光学ドライブが複数ある場合などドライブ指定が必要な時(例は Q: ドライブ)
CreateObject("WMPlayer.OCX").cdromcollection.getByDriveSpecifier("Q:").eject()

341:デフォルトの名無しさん
11/01/08 12:38:00 .net
>>329
APIしか思い浮かばなかった俺には目から鱗だわ<WMPlayer

342:デフォルトの名無しさん
11/01/08 21:00:10 .net
>>329
もうCで作っちゃったけど
1行で済むんですね
ありがとうございました!

343:こいぴ
11/01/09 21:54:03 .net
業務で、VBSにデジタル署名をする必要が出ました。
各種調査しましたが、どうしても方法が解りません。
どのたか、ご教示願います。

344:デフォルトの名無しさん
11/01/09 23:18:39 .net
>>332
ここが色々手順を説明しているので分かりやすいと思う
URLリンク(msdn.microsoft.com)

345:デフォルトの名無しさん
11/01/10 21:05:09 .net
無料RPG製作ツール「ロープレジェネレーター」

 直感的操作で簡単なゲームが作れます。 簡単に配布可能な状態に出力することができます。
(HSP製のソースコード付きで、スクリプトの知識があれば自由度の非常に高いカスタマイズ
ができます)
他にも仲間預かり機能(100人も)や、仲間の状態/状態異常を細かく設定できたり、
乗り物が作れたりゲーム中に画像を差し込んだり、回転やフラッシュなどのエフェクト
なんかも簡単に作れる様です。戦闘はデフォだとドラクエ系。
移動は矢印キーの他に、キャラがマウスを追っかけたりするとのこと。
 他にはオートアクションというのがあってオリジナルシステムの製作に役に立つかも
しれない機能です。これは、マップエディタで設定することで、「マップに入った時・
出た時・一歩歩いた時・戦闘開始前」に自動的に実行されるアクションを設定できる
機能です。
■分からないことや要望は掲示板へどうぞ。他にもいろいろ進化中みたい。


346:デフォルトの名無しさん
11/01/28 13:34:09 .net
デスクトップ上に任意の文字だけを表示するVBSを作るのはむずかしいでしょうか?

347:デフォルトの名無しさん
11/01/28 14:47:38 .net
>>335
目的がよくわからないけど
スクリーンセーバーでテキスを表示しておけばいいんじゃない?

348:デフォルトの名無しさん
11/01/28 14:52:47 .net
>>336
目的はホットキーに埋め込まれたマクロの実行をする際に

その実行するモードがいま何になっているかをキーを押した時に数秒デスクトップ上に表示させるためです。



349:デフォルトの名無しさん
11/01/28 20:13:40 .net
>>335だけ見ると、そんなの簡単じゃんって思うが。>>337は意味わからんわ。

350:デフォルトの名無しさん
11/01/29 01:00:3


351:6 .net



352:デフォルトの名無しさん
11/01/29 07:18:06 .net
それ、"デスクトップ上に"ではなく"ウィンドウ内に"だろ

それで良いならわざわざバッチファイル使わずWScript.ShellのPopupで良いはず

353:デフォルトの名無しさん
11/01/29 08:29:29 .net
>>338-340
具体的なイメージで言うと
透明ウィンドウにテキストのみ表示するかバルーンメッセージ的なものを考えていたのですが
VBSで透明ウィンドウはできないっぽいのであきらめようと思います


354:デフォルトの名無しさん
11/01/29 09:14:11 .net
まあ外部COM使えばどうにでもなる話ではあるが、
それ言うと他も全て「COM使え」で終わってしまう。

355:デフォルトの名無しさん
11/01/30 22:09:09 .net
しまうね

356:デフォルトの名無しさん
11/02/01 21:14:34 .net

       +           +
         +      +
    +     シマウネ━━━━!!!!  +
          /・/\__       +
     +    丶'\||||||||||)~  +
             << ̄>/    
      _|\∧∧∧MMMM∧∧∧/|_
     >                  <
  ─ / ─┐  /_   /_ヽ|  |ヽ  ム ヒ | |
 ─ /    / / ̄ /   ̄/  | ̄| ̄ 月 ヒ | |
 __ノ   \    _ノ   //\ / | ノ \ ノ L_い o o


357:デフォルトの名無しさん
11/02/01 23:48:04 .net
よろしくお願いしまう

358:デフォルトの名無しさん
11/02/08 22:16:59 .net
VBスクリプトで起動時にリモートデスクトップをマルチセッションで同時起動するスクリプトを書きましたよ

URLリンク(xbmc.inpane.com)

359:デフォルトの名無しさん
11/02/09 18:09:40 .net
質問です。

フルパスファイル名が書かれているテキストファイルを参照し、ファイル有無をチェックするやり方を教えてください。また、テキストファイルに記述されていないファイルが存在する場合もNGとしたいです。

360:デフォルトの名無しさん
11/02/09 19:43:41 .net
>>347
詰まる部分があるとは思えない初歩的なプログラムな気がするんだが。
とりあえず書いた所までどこかにアップしてみてよ。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch