VBSで便利なプログラムを作れスレ

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2007/02/03(土) 17:49:47
素人丸出しお粗末で遅くてもいいので
いますぐ使えるちょっぴり便利プログラムを作れ

(例○○を自動処理してくれるプログラム)
127122
垢版 |
2008/04/09(水) 13:06:21
>>126

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

このコードも活用させていただきますです。
ありがとう。
2008/04/10(木) 01:19:36
>>122
パスがわからないのならドラッグ&ドロップすればいいじゃない、牛丼がないのなら豚丼をたべればいいじゃない。

>>126
そのファンクションいただき。でもエクセルObjectがないと使えないのかー。
2008/04/10(木) 02:21:36
GetOpenFileNameとGetSaveFileNameでぐぐれば、タブンさんぷるでてくるぞ。
APIだからエクセルいらない。
2008/04/10(木) 16:40:35
>>128
通常Webから配布しているCSVを加工する為に、VBSを
クライアント配布で色々考えてた。
>>126氏の指摘通りエクセル操作が前提で。

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

>牛丼がないのなら豚丼をたべればいいじゃない。
メタボはいかん。
2008/04/20(日) 22:38:51
こんにちは。メッセージボックスの[OK]ボタンが押されるのを待たずに次の処理を
実行させたいときはどうするのでしょうか?

[OK]ボタンが押されなくても複数のメッセージボックス(?)を表示させたいのですが …
132デフォルトの名無しさん
垢版 |
2008/04/20(日) 23:39:08
>>131
2箇所に同じ質問書くと嫌われるよ。マナー違反。今後気をつけな。
2008/04/21(月) 00:21:17
3箇所ならOK。
2008/04/21(月) 20:15:02
ジミーペイジもそんな事言ってたな
2008/04/22(火) 11:02:10
>>134
じみへんは?

言ってないかw
2008/05/01(木) 22:03:51
初心者なんですけどいいですか?
VBSで二進法の数を十進法にして表示させるプログラムを教えてください。

137デフォルトの名無しさん
垢版 |
2008/05/01(木) 23:48:07
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
2008/05/01(木) 23:52:39
それ計算違うw
2008/05/01(木) 23:54:10
・・・と思ってら合ってるっぽいスマソ
2008/05/02(金) 00:25:00
助かりました〜
ありがとうございます。
141デフォルトの名無しさん
垢版 |
2008/05/03(土) 11:12:12
なんかClntの所でエラー表示が出るんですが(^^;
2008/05/03(土) 11:41:22
>>141
Valに直しとけ
143たわし
垢版 |
2008/05/03(土) 13:27:56
発投稿っす。どうぞよろしく。
二進法の数を十進法にして表示させるプログラムもう少し簡単にできませんか
2008/05/03(土) 13:29:00
ゆとりアラーム
145たわし
垢版 |
2008/05/03(土) 13:36:42
そこを何とかお願いいたします
2008/05/03(土) 20:23:26
137よりどう簡単にするんだ
147デフォルトの名無しさん
垢版 |
2008/05/03(土) 21:46:23
142>ありがとうございます
しかしValでも型が一致しませんとでるんですが
2008/05/03(土) 22:43:18
>>147
お前さんがとてつもない馬鹿で何一つ知らない情報弱者だから
こちらは超能力者にならざるを得ないのをとりあえず理解してくれ。

それを前提とした上で「パソコンでマウスを動かそうとした」とこから
「Valでも型が一致しませんとでる」までの経緯を
お前さんが認識してる「馬鹿」に分からせるように説明しろ。
149デフォルトの名無しさん
垢版 |
2008/05/04(日) 01:47:23
パソコン上でマウスを動かそうとし、動かしメモ帳を起動して137のプログラムをまずメモ帳に入力し、Clntをそれ以外いじらずValに変更した後、.vbsで保存して、実行しようとするとエラー表示されます
2008/05/04(日) 01:58:49
数値で渡してるなw
2008/05/04(日) 06:09:59
>>149
ValをCIntに戻して再実行してみろ。
CIntに戻したときのエラー表示の中で「文字が正しくありません。」
という文言があるのなら、全角スペースが原因。
行の先頭のスペースを全部削除してから再実行してみろ。動くはず。

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

>>150
1行目の10101101を文字列ではなく数値で渡しているって想定か?
別に数値で渡しても、勝手に型変換されて動くよ。
2008/05/04(日) 06:18:31
>>151
数値で桁が多すぎると(浮動少数表現に変わるから?)エラーでるよ
153デフォルトの名無しさん
垢版 |
2008/05/04(日) 12:33:44
やっぱりうまくいきません
型が一致しません"Clnt"とでます
パソコンが2000だからとかそういうわけでしょうか
あと素人丸だしですみませんが、一行目の10101101ってどういう意味ですか?
2008/05/04(日) 12:37:01
もうそのネタ飽きた
155デフォルトの名無しさん
垢版 |
2008/05/04(日) 16:39:54

そもそも「二進法」の意味がわかっとらんだろ?
156デフォルトの名無しさん
垢版 |
2008/05/04(日) 17:22:21
ところが2歩進んだと思ってたのに気が付いたら下がっていたという。
157デフォルトの名無しさん
垢版 |
2008/05/04(日) 19:25:19
2進数はわかってますが
2008/05/04(日) 22:40:33
>>152
すまんが、前提として10101101をそのままとしていた。
確かに桁が増えたらエラーになる。
16桁か17桁くらいが区切りのはず。
ちなみに浮動少数表現ではなく、対数表現な。

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

ついでにいうと、二進法で表現した数値を二進数と言うんだ。
159デフォルトの名無しさん
垢版 |
2008/05/05(月) 03:45:40
この会話・・・ぜったい2進数がわかってないな。
2008/05/05(月) 04:16:03
シュールストレミングうめえ
161デフォルトの名無しさん
垢版 |
2008/05/05(月) 17:06:00
すいませんXPでやったらできました
そこで入力した二進数を十進数に変えるプログラムはどうやるんですか?
2008/05/05(月) 17:20:48
二進数も十進数も見た目が違うだけで中味は同じ
だから変換は必要ない
163136
垢版 |
2008/05/05(月) 17:27:22
なんか変な流れ作っちゃってすまん

というか>>161なぜそこに戻る?
164デフォルトの名無しさん
垢版 |
2008/05/05(月) 17:39:30
inputboxをどこにいれりゃいいのかわかりませn
165デフォルトの名無しさん
垢版 |
2008/05/06(火) 12:29:27
おまい、ぜったいぜったい、ぜぇ〜〜ったい2進数がわかってないだろ。
2008/05/06(火) 14:22:30
おまいら暇だな〜
モレモナ〜w
167デフォルトの名無しさん
垢版 |
2008/05/06(火) 15:42:50
vbsで16進数を表示。たとえば
msgbox &hFE

とすると、結果は 254 と表示されます。
ほんとは FE のはずです。
こういうバグがあるから気をつけたほうがいいよ。
2008/05/06(火) 15:47:27
それはバグ・・・・とは思えないのだが。本来の仕様と違うとか?
2008/05/06(火) 17:18:09
>>168 変態度かぁ
170デフォルトの名無しさん
垢版 |
2008/05/06(火) 17:59:41
意味わからん
FEって表示したいのなら
msgbox "FE"
って書きゃいいじゃん。
自分で &h つけておいて、何言ってんだろ?
msgbox hex(&hfe)
でもいいけど
171デフォルトの名無しさん
垢版 |
2008/05/06(火) 18:31:12
数値の&HFE と 文字列の"FE" の違いすらわからんヤツがおるのか。
2008/05/06(火) 21:58:28
>>160
くせぇ!
今頃臭いが伝わってきたよ
2008/05/11(日) 04:40:36

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

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

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

▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
2008/05/11(日) 13:31:12
コピペ君って馬鹿だな、まで読んだ。
2008/06/17(火) 04:14:05
InputBox関数使って、入力値を得たいんですが、
255バイト以上の入力値って無視されるのでしょうか?

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


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

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

2008/06/17(火) 09:13:27
ユニコードで254文字+CR+LFの、最大値を超えています。
177デフォルトの名無しさん
垢版 |
2008/06/17(火) 22:19:12
VBScriptを使って、HTTPステータスコードを取得する方法を探しています。
ある任意のWeb画面に対してスクリプトでリクエストを行い、HTTPステータスコード(200 ok 等)を
取得する方法はありますでしょうか。
どなたかご存知の方がいらっしゃいましたら、ご教授下さい。
178>>177
垢版 |
2008/06/17(火) 22:24:08
すいません。スレ違いだった為、WSHのスレに移します。
2008/06/19(木) 14:20:45
vbsで、フロッピーのフォーマットを確認なしで実行
する命令ありますか?A:\固定で。
2008/06/19(木) 18:20:54
>>179 何で確認しなくていいのか?
2008/06/19(木) 20:40:04
VBSにはファイルにアクセスする命令すらありませんよ
2008/06/21(土) 07:38:22
それを言うならC言語にもファイルにアクセスする命令は無いな
2008/07/19(土) 09:45:08
ここまで便利そうなコードが殆どない件・・・
2008/07/19(土) 11:24:47
>>183が便利そうなコードを書きまくるそうです><
2008/07/27(日) 01:18:22
とりあえずExcelAddinをインスコするコードとかlnk右クリックでリンク先ディレクトリ表示とか
あるけど需要あるか?
2008/07/30(水) 21:22:27
test1.bin
test2.bin
test3.bin

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

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

ADODB.Recordset
ADODB.stream あたりを使えば可能?
2008/07/30(水) 21:26:24
copy /b
2008/07/30(水) 21:38:44
>>185
参考にさせていただきた
2008/08/13(水) 09:09:42
CIM_DataFileクラスを用いて、ファイルの各種情報を取得したいのですが、
「説明」のプロパティを取得するときに指定するプロパティ名が分かりません。

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

ファイルバージョンなどは、「Version」プロパティで取得できております。
ご存知の方、ご教示お願い致します。
2008/08/13(水) 18:30:02
189です。
カキコするところ間違えたみたいなので、移動します。スミマセン。
2008/08/17(日) 21:29:36
>>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
2008/08/17(日) 21:31:54
(つづき)

'ファイル名のリストをソートして一時ファイルに格納
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"

↑以上、実行時は行頭の空白を半角に。
2008/08/17(日) 22:04:23
copyは性能的にしょうがないかもしれんがsortぐらい自前でやれよw
2008/08/21(木) 21:13:21
VBSにて、SNMP情報の取得を考えてるんですが、
wsnmp32.dll を利用することはできないんでしょうか?

dynwrap.dll というラッパー?も使えないのでしょうか
2008/08/31(日) 18:59:35
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 とかは
永遠に消えちゃうので不安だ...。
2008/08/31(日) 19:01:10
すまん、> は、なし。
2008/08/31(日) 21:05:24
それ、ごみ箱のショートカットと比べてどう便利なの?
2008/08/31(日) 21:32:26
ファイルをドラッグアンドドロップていうのは
サンプル動作のためで、
関数をスクリプト内で
deletefile の代わりに使います。
199デフォルトの名無しさん
垢版 |
2008/09/16(火) 20:29:18
hail2u.net - Weblog - VBScriptでMSN Messengerの表示アイコンを変更する
http://hail2u.net/blog/coding/change-msn-messenger-display-picture-by-vbscript.html
このMessenger.UIAutomation.1を使って他にも色々出来ないかな、と思って
ドキュメントを探したんですが、どうにも見つからず…。
どなたか詳細ご存じの方いらっしゃいませんか?

Samurizeと組み合わせて、デスクトップから一発で名前とかステータス変えられたら…
200デフォルトの名無しさん
垢版 |
2008/10/05(日) 15:56:24
VBScriptとかJScriptで地味にWSHのプログラム書いてきたのに・・

IronPtythonなんてどうでもいい。

ていうことでVBScriptやJScriptを開発する統合環境みたいなツールってないの?
秀丸で書いてるんだけど、文法チェックや小文字大文字変換で不便でしょうがないんだけど。
2008/10/05(日) 16:31:17
そんな愚痴をこのスレで言う理由は・・・つまり
VBSで作れと?
202デフォルトの名無しさん
垢版 |
2008/10/05(日) 18:25:17
うん。昔からのVBSやJSユーザを生き伸ばすためにも言語拡張すりゃいいのにとおもって。
2008/10/05(日) 19:01:39
一応残るだろうけどVBSはもう進化しないでしょ。
同系としてVBAは今のところ代わりが無いから多少変わるかもしれんが。

WSHは見捨てられた子・・・
JScriptつーかJavaScriptならEclipseで使えると思うけど、それじゃダメ?だよね(w
204デフォルトの名無しさん
垢版 |
2008/10/05(日) 20:01:20
いや。わては、WSHとして使いたいんや。

でも、VisualWebDeveloperExpressEditionにWSH用のテンプレートがあるみたいだ。
インスコしよっと。
2008/10/05(日) 21:16:21
俺はサクラエディタでしこしこ書いとるわ。

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

そんなもんがあるんか。そのうち入れてみよっと。
206デフォルトの名無しさん
垢版 |
2008/10/06(月) 05:31:22
WebDevelopper
207デフォルトの名無しさん
垢版 |
2008/10/23(木) 19:41:52
a.vbsで定義したFunctionをb.vbsで使いたいが、
どうやったらいい?
2008/10/23(木) 19:55:52
aとかbって何?a.vbsとb.vbsってこと?

つWindows スクリプト ファイル (.wsf)
209208
垢版 |
2008/10/23(木) 19:58:58
レスしたら>>207の意味判ったw

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

もしくはスクリプトファイルを読み込んでExecuteGlobalするか。
210デフォルトの名無しさん
垢版 |
2008/12/11(木) 03:39:01
テーブルから14桁で取得した日付(例:20081210140059)に、
+1秒した日付(20081210140100)を取得するにはどうしたらいいですか?

windowsアクセスログの履歴がデータとして格納されているテーブルから最新利用履歴日付を取得し、
そこから1秒後の日付でwindowsアクセスログを再検索したいのです。
2008/12/11(木) 10:47:10
取得するじゃなくて自分で計算すればいいんじゃね?
212デフォルトの名無しさん
垢版 |
2008/12/12(金) 21:44:05
>>211
レスありがとうございます。
秒計算のできる関数を発見したので、試してみます!
213デフォルトの名無しさん
垢版 |
2008/12/13(土) 22:10:34
VBSのことでお助け願いたいのですが…どなたかお願いします!
214デフォルトの名無しさん
垢版 |
2008/12/13(土) 22:22:50
用件書かないやつなんか知らんわ
215デフォルトの名無しさん
垢版 |
2008/12/15(月) 23:48:05
助けて下さい。
25個のエクスプローラを起動させるようにプログラミングしたものが
あるのですが、3の倍数のエクスプローラーが起動したときのみに
ツールバーを表示させるようにしたいのですが
どのように、命令すればいいのでしょうか・・・。
2008/12/16(火) 00:32:48
>>215
助けて下さい。
25本のチンポを勃起させるようにプログラミングしたものが
あるのですが、3の倍数のチンポが勃起したときのみに
包茎を表示させるようにしたいのですが
どのように、命令すればいいのでしょうか・・・。

ってくらいいみふ
2008/12/16(火) 01:22:01
>>215
ナベアツに聞け
2008/12/16(火) 01:35:15
>>215

たとえば 26475
この各桁を足すと 2+6+4+7+5 = 24
さらに各桁を足す 2+4 = 6
この値 6 が 3 の倍数ならば
26475 は 3 で割り切れる。
219デフォルトの名無しさん
垢版 |
2008/12/16(火) 10:08:16
ほほぅ
2008/12/24(水) 08:41:03
すいません ど素人なんですがよかったら教えてください

CreateObject("WScript.Shell").Run で実行したバッチファイルを停止するスクリプトってどう書くんでしょうか?
2009/01/09(金) 14:14:10
>>220
ぱっと思いついたのがそのDOS窓掴んで
sendkeyで^C→Yを送るくらい
もっと賢くてスマートなのは他の有識者に任せる
222デフォルトの名無しさん
垢版 |
2009/01/29(木) 14:36:12
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の子ノードが;;表示されない・・・
だ・だれか・・・
2009/01/29(木) 22:07:43
>>220
そのバッチファイルのタイトルをtitleコマンドで適当に一意なものに変更しておいて
一致するプロセス取得してkillすればいいんじゃね?
2009/01/29(木) 22:32:01
>>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>
2009/01/30(金) 10:58:34
どこで質問していいか分からないのでここで質問させて下さい!

vbscriptでmapiを使ってサーバからメールを受信するプログラムを作ってます。
http://72.14.235.132/search?q=cache:iTxznV_noXcJ:msdn.microsoft.com/ja-jp/library/cc421145.aspx+vbscript+MAPI.Session+%E3%83%A1%E3%83%BC%E3%83%AB%E5%8F%97%E4%BF%A1&hl=ja&ct=clnk&cd=5&gl=jp
を見ながら作ってるんですけど、
エラーコード:8004011Dが出て困ってます…

どなたかお知恵を拝借頂けないでしょうか?
basp21は使わない方向でお願いします!
2009/01/30(金) 20:14:39
BASP21はSMTP/POP3サーバ、MAPIはExchangeサーバに使うものだよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況