VBScriptについて必死に話し合うスレ

このエントリーをはてなブックマークに追加
1邪神名無し君
VBScriptについて必死に話し合ってください

VBS以外はスルーの方向で(・∀・)

※質問スレではありません、質問は最低限し抑えましょう※

2デフォルトの名無しさん:2009/05/12(火) 23:19:26
なんでぇぇぇぇぇぇぇぇぇぇぇっ
いまさらぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁっ!!
ぶぃっ・う゛ぃーっ・すくりぷとぉぉぉぉぉぉぉぉっ
なんでっすかーーーーーーーーーーぁぁぁぁぁぁあああああああああああ
ぱわあああああああああぁぁぁぁぁぁぁっっぉああああああああああっ
しぇるぅじゃなくてぇぇぇぇぇぇぇぇぇぇぇーーーーっ!!

みたいな感じでよろしいでしょうか。
3デフォルトの名無しさん:2009/05/12(火) 23:43:51
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
4デフォルトの名無しさん:2009/05/13(水) 02:53:29
>>3
お前らゴールデンウィークの間なにしてたんだよ。
休んでもいいけど、アイちゃんのコンソールをそのままにして行くなよ。
5デフォルトの名無しさん:2009/05/18(月) 10:38:03
VBScriptのよさを全世界に広げるためには
まずIE以外のブラウザで使えるようにすべきだと思うんだ。
VBScriptはJavaScriptのように変数や命令を大文字小文字を分けて書く必要もなく、
エラーが出てもOn Error Resume Nextで全部エラーを無視してくれる。

こんなすばらしい言語なのになぜIE以外で使われないのか理解できない!!
6デフォルトの名無しさん:2009/05/18(月) 22:22:23
だってお手軽なIDEがないもん
VBSEditってのがあるけど、それなりな金額がかかるし(お金を払う価値はあると思うけど)

あと、導入に適した本がなかなか見当たらない。
いままで見てきた本で一番役に立ったのは

WSHクイックリファレンス
ttp://www.oreilly.co.jp/books/4873113091/

これかなぁ
IEはシラネ
7デフォルトの名無しさん:2009/05/25(月) 08:56:39
msscrdbg.exe というのがあったがまともに動かない。
そもそもデバッグ開始ができない。
8デフォルトの名無しさん:2009/05/25(月) 20:43:34
悪用法しか思いつかない
9デフォルトの名無しさん:2009/05/31(日) 08:48:58
そこでPowerShellですよ
10デフォルトの名無しさん:2009/06/07(日) 00:46:21
VBSで、ブートローダの設定を切り換えるって可能?
例えば、XPとVistaをデュアルブートしてたらXPを無効にしたり。
11デフォルトの名無しさん:2009/06/08(月) 18:42:35
ふつうのVBとVBSってどのような特徴があるのですか?
全くの初心者ですが、今からプログラムを始めるならばどちらが適していますか?
12デフォルトの名無しさん:2009/06/08(月) 18:55:46
両方とも適してない
13デフォルトの名無しさん:2009/06/08(月) 18:59:27
言語には用途ってもんがある。
プログラムで何がしたいんだ?そこが重要だ。

回答によってはVBもVBSも候補になりうる。
14デフォルトの名無しさん:2009/06/12(金) 20:14:14
>>10
Vista側でVBSからbcdeditコマンドを叩く

http://technet.microsoft.com/en-us/library/cc731662(WS.10).aspx
15デフォルトの名無しさん:2009/06/12(金) 21:27:13
サーバーサイドvbscriptで開発してるが、

・クラス機能がしょぼ過ぎる
・try catchを実現するために、関数を1つかまさなきゃらないのは面倒過ぎ
・ショートサーキット評価のないif文(おかげでネストが深くなる)
・Null引数で落ちる組み込み関数多過ぎ
・Set 〜 = New のせいでオブジェクト型/その他を混在で返す関数が作れない

くらい最悪
16デフォルトの名無しさん:2009/06/13(土) 14:02:24
なんでサーバーサイドの開発で VBScript を選んだの?
17デフォルトの名無しさん:2009/06/13(土) 14:29:32
それを聞くのはヤボだろ。既存のシステムの維持拡張させられてるって可能性もあるわけだし。
え?新規?死んでください。
18デフォルトの名無しさん:2009/06/22(月) 23:09:01
vbscript って、visual studio でプログラムを書けないの?
サクラエディタとか秀丸とか必要なの?
19デフォルトの名無しさん:2009/06/23(火) 01:11:04
エディタありゃ書けるよ。つまりVisualStudioでももちろん書ける。
20デフォルトの名無しさん:2009/06/23(火) 04:38:22
>>19
ありがとう。vbscriptの拡張子はなんにすればいいですか?
21デフォルトの名無しさん:2009/06/23(火) 19:25:10
*.vbs だよ、なんでググれないの?
22デフォルトの名無しさん:2009/06/23(火) 20:00:29
>>21
バカでごめんよ。
23デフォルトの名無しさん:2009/06/24(水) 00:17:54
まぁ、どうせ糞スレなんだ
どんな書き込みだって許せる板さ(´_ゝ`)
24デフォルトの名無しさん:2009/09/03(木) 23:28:32
最近使い始めたけど、面白いね
文字列を実行コードに出来るんて新鮮だった
これ使えばテンプレートみたいな事出来そう
カオスになりそうではあるがw
25デフォルトの名無しさん:2009/09/09(水) 23:33:34
文字列を返す関数の戻り値を変数の参照にする方法はありますか?
26デフォルトの名無しさん:2009/09/10(木) 00:07:08
27デフォルトの名無しさん:2009/09/13(日) 03:19:24
VBScriptプログラムを学習するのに、個人的にこの本は良かった。
VBScriptハッカーズ・プログラミング
http://www.amazon.co.jp/dp/4896272838

ただamazonの評価にあるように、これは学習用の教科書として使う。
サンプルをとにかく試したいならサンプル集を探した方が良い。
っていうかサンプル集は本を買うよりググった方が良いと思う。
28デフォルトの名無しさん:2009/09/13(日) 21:39:15
VBScript は徐々に消えつつあるけど、PowerShell は普及してるんかね
29デフォルトの名無しさん:2009/09/13(日) 22:40:55
なんのかんの言ってもVBScriptが現在の標準だろ
少なくともWindows 2008でも標準インストールされないPowerShellを普及してるなどとはとても言えない
30デフォルトの名無しさん:2009/09/21(月) 08:39:27
>>27
俺もその本で入った。
サンプル見ながら色々できるし、最初は便利だよね。

VBScript+HTAで色々やるんで、辞書みたいなのが欲しいんだけど、
良い本知ってる人居ますか?
機能逆引きできて、書式が出てればそれでOK(サンプルとか不要)な感じなんですが。

名前は忘れたけど、白地に文字の表紙で、10x20cmくらいの縦長の薄い本で
VBScriptの簡易リファレンスみたいなのがあって便利だったんですが、
今は絶版だったと思います。

WSHとVBScriptで別々に買うのが良いのかな。
31デフォルトの名無しさん:2009/09/21(月) 08:45:01
VBScriptはHTAと組み合わせるとかなり色々できるようになるよね。
Windows上ならメモ帳で書いて、ほぼどこでも動作可能、
言語的にも色々な面でお手軽な所が好き。

クリップボード使えたりD&Dでの読み込み出来たり
文章や画像の表示もIE使えばIEで出来るだけ表示できるし
思った以上に色々できる。

ノートン先生に「悪意のあるプログラム」扱いされるのが許せん。
悪意は無いのに(´・ω・`)
32デフォルトの名無しさん:2009/09/21(月) 15:34:06
ノートン先生使ってないけど
オレオレ署名入れてもだめ?
33デフォルトの名無しさん:2009/09/22(火) 02:33:00
MSXML2.XMLHTTPを使ってWebページの自動取得をしています。
Refererで制限かかってるページあるんですけれど、
VBSで偽装できますか?
34デフォルトの名無しさん:2009/09/22(火) 03:55:53
調べたけど、久しぶりにDLLヘルを見た
35デフォルトの名無しさん:2009/09/22(火) 05:54:57
>>32
俺も使って無いからよく知らないが、
ノートン先生入れてる友人にVBScriptで作ったプログラム渡したら
「悪意のあるプログラムなので隔離しました」
とか出たらしい。
悪意はねぇよな。

自己レスだけどポケットリファレンスVBScriptって本が割りとよかった。
よく探したら家にあった。
36デフォルトの名無しさん:2009/09/22(火) 08:51:49
>クリップボード使えたり
htmlfileは、about:blankのセキュ設定次第なんだよな
ナンか回避方法ないかと、てstしたがムダだった
37デフォルトの名無しさん:2009/09/22(火) 10:35:46
>>36
HTAなら使用可能だと思うよ。
38デフォルトの名無しさん:2009/09/22(火) 13:09:39
>>37
今は、インターネッツのセキュ設定を変更しない方法で、IE使ってる
もちろん、HTAも使えるんだけど
要は、アウトプロセスじゃなくインプロセスでやりたくなったわけ^^
3933:2009/09/23(水) 16:57:22
33です。
CreateObject("InternetExplorer.Application")して
Navigateメソッドで自己解決しました。

ところで取得したDocumentオブジェクト内のImageオブジェクトを
そのままファイルに保存すること、できませんか?
40デフォルトの名無しさん:2009/09/24(木) 00:47:53
VBScriptとHTAでファイルのバックアップを自動で取るプログラム作ったんだけど、
作業途中で止める方法をどうするかで困ってる。
何か良い方法ないかな。

ループで指定フォルダ下のファイルを、まぁちょっと色々加工してから自動的に別の場所にコピーするんだけど、
処理中はHTAのボタンとかは弄れないし・・・

別のHTAで識別用ファイルを生成して、そのファイルを発見し次第、緊急停止
という方法を思いついたけど、どう考えてもスマートなやり方じゃないよね。
41デフォルトの名無しさん:2009/09/24(木) 03:43:52
>>40
処理中止後の後処理が不要であればCScript
[CTRL]+[C]で処理を止めることができる
42デフォルトの名無しさん:2009/09/24(木) 06:54:04
>>41
ありがとう。
わりと大事なファイルのバックアップで、
DVDへの書き込みとサーバー上へのファイル移動を行なうから、
出来るだけ強制終了的な終わり方は避けて、
何らかの方法でループ中に判定で正常終了したい。

あと、HTAで使ってると、WScriptやCScriptと違ってmshtaとして動くから
そういうショートカットキーとかは使えないんじゃない?
43デフォルトの名無しさん:2009/09/24(木) 11:10:46
>>42
HTAのボタンを常に押せる状態にしたければ、実処理を別プロセスにする方が良い
私ならCScriptで作った「バックアップ処理」と「ロールバック処理」をキックするけどね


[CTRL]+[C]を使わない場合は↓のようにしてEOF検出変化を利用する
  待ち側:判定用ファイルをリードオンリーで開きっぱなしにして定期的にEOFを判定
  指示側:判定用ファイルに追記
44デフォルトの名無しさん:2009/09/24(木) 13:29:26
>>43
実処理を別プロセスにする というのが良さそうですね。それで試してみます。
バックアップ処理自体はCScriptに投げてHTAの方の処理は終了、
緊急停止などGUI操作専用にするって感じですかね。

一つのファイルを開いておいて中身で判定というのも、ファイル自体の存在チェックよりは良さそうですね。
値の受け渡しも出来るし、進行状況の表示にでも使おうかな。
45デフォルトの名無しさん:2009/09/26(土) 14:36:41
これまでCユーザでしたが、最近業務でVBScriptを使うようになり現在勉強中の者です。
VBScriptを使っていて、ちょっと不便だなと思ったことがあります。
それは、関数にオブジェクトのプロパティを参照渡しすることができないということです。
たとえば、call swap( obj1.x, obj2.y )を実行して、obj1.xとobj2.yの値を
入れ替えようしても、うまくいきません。
うまくオブジェクトのプロパティを参照渡しする方法は無いのでしょうか?
よろしくお願いします。

46デフォルトの名無しさん:2009/09/26(土) 14:37:30
すみません。ageさせてください。m(_ _)m
47デフォルトの名無しさん:2009/09/26(土) 16:39:14
>>45
無理。
プロパティは事実上、Get/Setという2つの関数からできているのと同じ(正確にはSetRefの場合もあるが)。
そういう意味で変数と違うから参照渡しはできない。

VBSだとCallByNameも使えないしねえ。
48デフォルトの名無しさん:2009/09/26(土) 20:47:02
だな
49デフォルトの名無しさん:2009/09/26(土) 21:42:18
ASPが出た頃はこれからVBScriptが主流になると思っていたが
今では書店でもあまり見かけなくなった
5045:2009/09/27(日) 17:19:57
>>47
ありがとうございました。
51デフォルトの名無しさん:2009/10/07(水) 00:27:08
WSH Lab.掲示板の過去ログ読んでたら、vbsからインプロセスで窓オブジェを使う方法がわかった
先人恐るべし
52デフォルトの名無しさん:2009/10/07(水) 01:11:17
オブジェを飾ってどうするつもりだ
53デフォルトの名無しさん:2009/10/07(水) 20:49:18
つまらん
54デフォルトの名無しさん:2009/10/08(木) 22:07:29
IEを操作するクラスを作っています。
IEからのイベントに応答する場合、
CreateObject("InternetExplorer.Application","IE_")
などと書きますが、
コールバックされる IE_ から始まるプロシジャを自作クラス内に置くことはできませんか?

あるいはc++でいうスタティックなプロシジャにするにはどう書けばよいのでしょうか。
55デフォルトの名無しさん:2009/12/09(水) 16:46:21
VBSで二重起動防止ってどうやればいいでしょう?
Mutexとか使えると良いのですが・・・
56デフォルトの名無しさん:2009/12/09(水) 19:48:29
VBScriptの機能拡張はCOM一択
57デフォルトの名無しさん:2009/12/09(水) 22:13:00
>>55
fso.opentextfile(wscript.scriptfullname,8)
58デフォルトの名無しさん:2009/12/09(水) 22:17:26
>>54
executeglobal "set IE_hoge=getref(""hoge"")"
59デフォルトの名無しさん:2009/12/11(金) 09:07:23
scripting.dictionaryは順序ほ保持してくれる連想配列ですか?
60デフォルトの名無しさん:2009/12/11(金) 10:04:50
できないことは多すぎるくせに、キッチリすることを偏執なまでに要求するひどい言語だった
>>1には悪いが、モダンな言語使った方が絶対楽だ!
61デフォルトの名無しさん:2009/12/11(金) 23:53:14
一体何をやろうとしたんだ?
62デフォルトの名無しさん:2009/12/12(土) 19:22:48
scripting.dictionaryはVBScriptと関係ないな
63デフォルトの名無しさん:2009/12/26(土) 11:45:12
>>61
恋人ができるスクリプト
64デフォルトの名無しさん:2009/12/30(水) 21:47:15
Win7になってなにか変わった?XPの時に使ってたvbsが使えなくなったんだけど
XPでは、右クリック→送る から以下のvbsでファイル更新日を変えてたんだけどWin7では更新日が変わってくれなくなった。なんでだろ?
もちろんcygwinはちゃんとセットアップしてあるし、touch.exe 単体で更新日は変えれてる。

option Explicit

Dim objFSO
Dim objWshShell
dim objArg

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWshShell = CreateObject("Wscript.Shell")

for each objArg in Wscript.Arguments
 if objFSO.FileExists(objArg) then

  ' 更新日変更
  objWshShell.Run "C:¥cygwin¥bin¥touch '"+ objArg + "'", 0

 end if
Next
65デフォルトの名無しさん:2009/12/30(水) 22:08:06
>>64
なんでfsoで更新日を変更しないの?
66デフォルトの名無しさん:2009/12/30(水) 22:17:55
おぉ
変更できないのか
6764:2009/12/31(木) 10:41:22
どうもcygwinのtouch側の問題みたい。
パスに日本語があるとダメッぽい。Pathがアルファベットだけなら更新日が変わってくれた。
ディスクトップのパスは「c:¥User¥[xxx]¥Desktop」と英語表記だからOKなのかな?
XPの時はどうだったろ?
この前、cygwin自体がUTF8対応で変更されたみたいだからその影響かな?
68デフォルトの名無しさん:2009/12/31(木) 15:58:06
>>64
なんでshell.applicationで更新日を変更しないの?
6964:2009/12/31(木) 22:30:07
う〜ん、やっぱりvbs側かなぁ
パスに日本語があると exe 側に渡される引数が「'」で挟まれた状態のまま渡されてくる
 'C:\Users\myname\Desktop\aあ'
 C:\Users\myname\Desktop\a

「'」で挟まないとパスに空白があると上手く動いてくれないし


>68
>なんでshell.applicationで更新日を変更しないの?
どの関数を使うの?
70デフォルトの名無しさん:2009/12/31(木) 23:21:17
>>69
なんで「"」でパスを挟まないの?
7164:2010/01/01(金) 18:19:34
vbs以前の問題としてExplorerの段階で「"」で挟んだ文字列が作られてくる

専用の改造版touch.exeを作って対応するかなぁ
単純な「"」を打ち消すだけのラッパでOKかな

>>70
> >>69
> なんで「"」でパスを挟まないの?
>
「"」で挟んでも一緒だった
72デフォルトの名無しさん:2010/01/01(金) 19:05:41
>>69
なんでPowerShell使わないの?
73デフォルトの名無しさん:2010/01/01(金) 19:30:48
なんで質問ばっかなの?
74デフォルトの名無しさん:2010/01/01(金) 20:25:56
どれが質問なの?
75デフォルトの名無しさん:2010/01/01(金) 20:43:47
>>69
なんでtouchのショートカットにしないの?
76デフォルトの名無しさん:2010/01/17(日) 05:13:38
てか、VBScript開発でなんでIDEなんて要るのか
疑問に感じる
77デフォルトの名無しさん:2010/01/19(火) 15:15:29
なんでtouchのショートカットにしないのるのか
疑問に感じる
78デフォルトの名無しさん:2010/01/28(木) 20:32:06
VBScriptとJScript
実行速度は同じ?
79デフォルトの名無しさん:2010/01/28(木) 21:10:29
>>78
VBScriptの方が若干高速
実行速度より性質の違いを気にするべきだと思うけど・・・
80デフォルトの名無しさん:2010/02/23(火) 15:31:29
PowerShellはIE操作出来ないからな。
やっぱVBSしかないか〜
81デフォルトの名無しさん:2010/02/23(火) 21:53:27
VBSなら一応Windows95やWindowsNTでも使える。
外部コマンド関連などWindows9x系とWindowsNT系で挙動が微妙に異なる場合もあるが。
82デフォルトの名無しさん:2010/03/05(金) 01:09:06
てっきり化石スレかと思ったら比較的新しいんだなw

別にここでもいいんじゃないの
VBSで便利なプログラムを作れスレ
http://pc12.2ch.net/test/read.cgi/tech/1170492587/
83デフォルトの名無しさん:2010/03/28(日) 22:01:08
初心者dosからきました。

やりたいことは、
既存のタスクを一括で"タスクを実行するためにスリープを解除する”
に変更したいです。

schtasksのオプションでは出来ないため、悩んでます。
ttp://64.4.11.251/en-us/library/aa383306%28VS.85%29.aspx
Property WakeToRun As Boolean
とかかれても具体的にどうすればいいやら

84デフォルトの名無しさん:2010/03/28(日) 23:31:11
85デフォルトの名無しさん:2010/04/09(金) 01:13:23
86デフォルトの名無しさん:2010/04/16(金) 00:56:42
BrowseForFolder
について質問なんですが
Optionsに&H4000を指定して
ファイルも表示出来る状態にした場合に
選択されたファイルのパスを取得する方法はありますか?
87デフォルトの名無しさん:2010/04/16(金) 01:46:45
ない
88デフォルトの名無しさん:2010/04/16(金) 03:51:36
SHBrowseForFolder()
89デフォルトの名無しさん:2010/04/25(日) 18:54:39
代わりに
8856F961-340A-11D0-A96B-00C04FD705A2

55136805-B2DE-11D1-B9F2-00A0C98BC547
を使えばやりたいことはできるんじゃないか
90デフォルトの名無しさん:2010/06/04(金) 23:30:39
getref、クラスの中のメソッドも参照しろよ!
91デフォルトの名無しさん:2010/06/05(土) 18:12:50
今更ながらに、VBScriptで.netのクラスを一部使用できることを知った。

http://technet.microsoft.com/ja-jp/magazine/2007.01.heyscriptingguy.aspx
92デフォルトの名無しさん:2010/06/09(水) 19:00:51
>>90
クラスの中からexecuteglobalでglobal contextに作ればよい
93デフォルトの名無しさん:2010/06/12(土) 13:48:17
やりたいこと

WSH(VBS)から別途準備したxlsファイルのA列のデータの入っている最終行の行番号の取得

理由

xls内でマクロ(VBA)があるとファイルを開くたびに有効するかの問い合わせがある為
xls内にはマクロを組まず、外部からvbsで取得をしたい。

わからないこと

xls内でVBAで取得する場合には、"Range("A65536").End(xlUp).Row"で取得できる。
しかし、外部のVBSからはEnd(xlDown)が使えないようでエラーしてしまう。
同様に"SpecialCells(xlLastCell)"もダメ・・

教えてほしいこと

何か良い方法がないか教えてください。

------
こんな気持ち悪いコードしか思い浮かばない・・・・

Set getExcel = WScript.CreateObject("Excel.Application")
getExcel.Workbooks.Open("C:\book1.xls")
For i = 65536 To 1 Step -1
If getExcel.Worksheets(1).Cells(i, 1) <> "" Then
e = i
Exit For
End If
Next
WScript.echo("last row:" & e)
94デフォルトの名無しさん:2010/06/12(土) 14:08:01
ExcelVBAの定義(xlDown,xlLastCellなど)はvbs側でそのまま使えない
vbs側では「自分で定義して使う」or「値を直接入れる」しかない
95sage:2010/06/12(土) 14:24:07
>>94

サンクス!
今のところ、上の気持ち悪いコードしか思い浮かばないので、もう少し考えてみる。
自分で定義・・か、少し時間がかかりそうだな。俺には

ありがと
96デフォルトの名無しさん:2010/06/12(土) 19:09:10
WSFでExcelへの参照を明示する手もある。拡張子wsfでたぶんこんな感じ。
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<job>
  <reference guid="{00020813-0000-0000-C000-000000000046}"/>
  <script language="VBScript">
    <![CDATA[
      Set getExcel = WScript.CreateObject("Excel.Application")
      getExcel.Workbooks.Open("C:\book1.xls")
      For i = 65536 To 1 Step -1
        If getExcel.Worksheets(1).Cells(i, 1) <> "" Then
          e = i
          Exit For
        End If
      Next
      WScript.echo("last row:" & e)
    ]]>
  </script>
</job>
97デフォルトの名無しさん:2010/06/12(土) 19:28:01
>>95
今回は自分で定義する必要は無いかな。
>>94さんの言うとおり、値を直接入れれば終わり。

msgbox getExcel.sheets(1).cells(65535,1).end("-4162").row

で動くはず。
試してみて。

ExcelやVBの定数を調べる時は、
イミディエイトウィンドウに ?xlup
と入力してリターン押すと値が表示されるよ。
98デフォルトの名無しさん:2010/06/12(土) 19:44:17
>>95
一応動作確認したよ。きちんと動いてくれました。
VBSはあまり触らないんだけど、workbookをsetさせるのって出来ないのかな。
あまりスマートじゃない構文になってしまって、ちょっと悲しい。

dim Ex
dim a
const BkPath = "ブックのパス"
const BkName = "ブック名"

set ex = createobject("excel.application")
ex.workbooks.open(bkpath& "\" & bkname)
a= ex.sheets(1).cells(65535,1).end("-4162").row
ex.workbooks(bkname).close
msgbox a

何とかブックを開かずに取得出来るとスマートですね。
excel4macroでブックを開かずにデータを取得出来たはずなので、
そっちも少し試してみようと思います。
99デフォルトの名無しさん:2010/06/12(土) 19:54:28
excel4macroだと、セルを直接指定しないと取得出来ないので、できないかもしれません。
スレ汚し失礼しました。
100デフォルトの名無しさん:2010/06/18(金) 21:10:59
a="10"
b=20
if a > b then
wscript.echo """10"" > 20"
else
wscript.echo """10"" <= 20"
end if

で、 a > b が真になるのは、どういう理屈からでしょうか?
101デフォルトの名無しさん:2010/06/18(金) 22:24:42
>>100
比較演算子では、一方の式が数値、他方が文字列の場合、数式の方が文字列式より小さくなる。
http://msdn.microsoft.com/ja-jp/library/cc392349.aspx

ところが、If文に変数でなく即値を記述するなどいろいろ試してみると
結果が違ったりして、厳密な変換ルールは謎
102デフォルトの名無しさん:2010/06/18(金) 23:07:00
>>101
どうもありがとうございます。

"10" > 20 は偽なんですよね。悩ましい…
明示的に数値か文字列かどちらかに変換するしか
なさそうですね。
103デフォルトの名無しさん:2010/06/19(土) 08:30:26
>>102
VBSはVartiant型しか宣言出来ないのだから、
やはり型変換の手間が必要な時もあるよね。
104デフォルトの名無しさん:2010/06/20(日) 01:35:49
>>96-99

ありがとう!
助かった。
お礼が遅くなってごめんよ
105デフォルトの名無しさん:2010/07/07(水) 09:24:08
スクリプトで、「そのドライブが存在するかどうか」を判定するには
どうすればよいのでしょうか?

存在するか否かを判定させて、処理させるか否かを分岐させたいと思っています。



ネットワークドライブに分かり易く名前を付ける為、バッチファイルの中で
------------------------------------------------------------
NET USE F: \\ochinko\chinchin /USER:kintama penis
NET USE G: \\192.168.0.69\共有 /USER:hiv aids

c:\ND_rename.vbs
------------------------------------------------------------
と記載し、ND_rename.vbsの中で

------------------------------------------------------------
strDrive = "F:\"
strName = "Fカップ"

With CreateObject("Shell.Application").NameSpace(strDrive)
.Items().Item().Name = strName
End With
 :
 :(以下ドライブ分同様の記述)
------------------------------------------------------------
としています。

これだと、相手のPCが落ちている場合等、毎回VBScriptのエラーが
出てきて精神上よろしくないのです…そのドライブが存在しないのならば
処理を飛ばせればよいのかと思いました。
106デフォルトの名無しさん:2010/07/07(水) 10:09:03
107デフォルトの名無しさん:2010/07/07(水) 20:18:54
>>105
cscript c:\ND_rename.vbs
108デフォルトの名無しさん:2010/07/29(木) 10:59:40
メモリにアクセスして書き換えるってどうやるの?
ゲームやってるときに限界突破とかしたい
109デフォルトの名無しさん:2010/07/29(木) 11:57:16
110デフォルトの名無しさん:2010/07/29(木) 13:50:20
自分で書けばよかろう
何がしたいんだ?
111デフォルトの名無しさん:2010/09/13(月) 18:13:46
On Error Resume Next がいまいちよく解りません…
「実行時エラーを発生させたス テートメントの直後にあるステートメント、または、On Error Resume Next ステートメントが入っているプロシージャから最後に呼び出しを行ったステー トメントの直後のステートメントに制御を移動」…
つまり、どっからどこまでがエラー処理が必要で、どこからが通常通りエラーメッセージ吐いて終了してくれるんでしょうか
112デフォルトの名無しさん:2010/09/13(月) 19:11:19
on error resume next は on error goto 0 で閉じるもの。
2つセットで覚えておくと良いよ。

resume next ってのは、例えエラーを吐いたとしても無視して次の行に移動するって事。

エラーが起きるって事はプログラムの不備なので、しっかりプログラミングが出来れば、
”基本的に” on error resume next を噛ませる必要は無いよ。
エラー処理面倒だから無理やり動かしちゃえ!ってのは最悪のケース。
113デフォルトの名無しさん:2010/09/13(月) 19:36:12
使えれば素直にそれを使ったんですが
On Error GoTo 0 が無い&ネット接続不可の環境なんです(つまり書き込みしてる環境とは別の環境です)
色々なサイト読むと Resume Next だけでも安全なコードは書けるっぽいのでそれで何とかしようと思ったんですが…
イマイチResume Nextの有効範囲がよく判らない(どうやらコードの最後までという訳ではないらしい?)ので質問しました
114デフォルトの名無しさん:2010/09/13(月) 21:09:19
いや、最後までだろ?
115デフォルトの名無しさん:2010/09/13(月) 21:34:22
>>113
関数/サブルーチン内なら該当の関数/サブルーチン終了まで
関数外なら最後まで
だと思う

On Error GoTo Next
は基本的にエラー処理のモードを変更するような意味合いなので、
自分で明示的に再設定しない限り勝手に戻ったりはしない
116デフォルトの名無しさん:2010/09/14(火) 17:06:09
よくわからんなら、必要なところだけセットで括るようにすればいいじゃん。
他の言語での例外処理はそういうやり方になってるんだし。
117デフォルトの名無しさん:2010/09/14(火) 19:49:19
>>115
ありがとうございます。関数/サブルーチン終了までですね
エラー処理部分だけサブルーチンに括るようにします
118デフォルトの名無しさん:2010/10/09(土) 21:43:59
超基本的な質問で悪いんだけど
文字で「"」を扱うにはどうしたらいいですか?
改行はvbcrなのは分かったんですけど「"」は
vbscript 「"」で検索してもだめだ・・・
119デフォルトの名無しさん:2010/10/09(土) 21:49:53
chr(34)
120デフォルトの名無しさん:2010/10/09(土) 21:56:43
ふおぉぉおありがとうございます!!!
121デフォルトの名無しさん:2010/10/10(日) 02:23:15
""""
122デフォルトの名無しさん:2010/10/10(日) 12:17:58
ImageMagickをVBscriptで使いたいのですがインストール後
Set im = CreateObject("ImageMagickObject.MagickImage.1")
のところで
「ActiveXコンポーネントはオブジェクトを作成できません」という
エラーが出てしまいます。
どうしたらVbscriptでImageMagickを使う事が出来るのでしょうか?
OSはwindowsvistaです。

以下をやってみたけどやはり同じエラーが出続けます
インターネットオプションのセキュリティのタブで
レベルカスタマイズからActiveX関連の部分を有効にする
regsvr32 /c /s "C:\Program Files\ImageMagick-6.6.4-Q16\ImageMagickObject.dll"の実行
ImageMagickのアンインストールと再インストール
インストールフォルダーをC:\Program FilesではなくC:\にして管理者権限でインストール

ImageMagickについていたTEST用の.vbsを実行してみましたが
同じSet im = CreateObject("ImageMagickObject.MagickImage.1")で
同じエラーが出るのでこの文章自体は間違っていないようです。

気になるのは
インストール時にppm・・・というエラーメッセージが出た事です。
検索したらvbscriptには関係ないとのことでしたが一応状況を書きました。

↓エラーメッセージのスクリーンショットです。
http://viploader.net/ippan/src/vlippan156229.jpg
123122:2010/10/10(日) 16:19:07
あの・・・とりあえずVBscriptを再インストールしようと思うのですが
どこでダウンロードできますか??
マイクロソフト内が広すぎてどのファイルか分かりませんでした。
124デフォルトの名無しさん:2010/10/10(日) 17:49:17
>>123
VBScriptは単体ではなく、WSHの一部だよ。
再インストールはできないし、その必要もない。
現在のWSHのバージョンは5.7だろ?
「WSH 5.6」、「WSH 5.7」で検索してみろ。
それでヒットするMSのページがそうだが、必要ないぞ。
まあ落ち着け。
125デフォルトの名無しさん:2010/10/10(日) 20:11:38
いきなり難しいことに挑戦してるなー。
そもそもImageMagickがCOM(ActiveX)を持ってるとは知らなかったぞ。

>インターネットオプションのセキュリティのタブで
>レベルカスタマイズからActiveX関連の部分を有効にする
これはIEおよびIEコンポーネントの設定。IEというブラウザの話なので無関係。

http://www.imagemagick.org/script/ImageMagickObject.php
ここにはこう書いてあるぞ。
The ImageMagickObject is registered if the checkbox, Register ImageMagickObject, is checked at install time.

>ImageMagickのアンインストールと再インストール
途中の6個あるチェックボックスの一番下に
□ Install ImageMagickObject OLE Control for VBScript, Visual Basic, and WSH
という、チェックの入ってないやつがあっただろう。チェック 入れた?


でも新しいやり方ではなく、今まで通りのコマンドライン実行の方が良いのでは?
実行するのには"WScript.Shell"のExecメソッドとRunメソッドがある。それぞれちょっと違う。
126123:2010/10/10(日) 21:25:09
>>124
そーなんですか・・・ありがとうございます。

>>125
□ Install ImageMagickObject OLE Control for VBScript, Visual Basic, and WSH
にはチェック入れました。

コマンドライン?コマンドプロンプトでって事ですか?
とりあえず動かないのも寂しいので
Vbscriptでバッチファイルを自動で作るようにして
ImageMagickでの動作はbatファイルにさせてみましたけど
なんだかなあです。
127デフォルトの名無しさん:2010/10/10(日) 21:30:39
スマン、またトンチンカンなこと言ってたな。
ImageMagickObjectのインストール自体は出来てるんだな。

regsvr32 /c /s "C:\Program Files\ImageMagick-6.6.4-Q16\ImageMagickObject.dll"
これを変なオプション付けずに、
regsvr32 "C:\Program Files\ImageMagick-6.6.4-Q16\ImageMagickObject.dll"
でやったらどうか。

テストするならここのがいいんじゃない。
C:\Program Files\ImageMagick-6.6.4-Q16\ImageMagickObject\Tests
128デフォルトの名無しさん:2010/10/10(日) 22:02:34
http://up3.viploader.net/ippan/src/vlippan156404.jpg
↑やってみましたけどエラー出ました。

教えて貰ったtestsにあるvbsも同じ
Set im = CreateObject("ImageMagickObject.MagickImage.1")で
エラーになります。
129デフォルトの名無しさん:2010/10/10(日) 22:03:15
>>128=>>123です
130デフォルトの名無しさん:2010/10/10(日) 22:36:55
どうせ二人しか居ないよ。
一応、>>124>>125>>127な。
あと、某スレの>>230>>232>>234でもある。
しばらく手伝うよ。でも俺もレベル超低いからそこは期待するな。

とりあえず、
regsvr32 0x80070005
でググるべきだろう。
131デフォルトの名無しさん:2010/10/10(日) 22:50:23
>>128
"Users"ってことは、Vistaか7?管理者で実行してくれ。
132124:2010/10/10(日) 23:15:22
あら他にも助っ人がいらっしゃるぞ。良かったな。
そう、管理者権限があやしい。

で、もしImageMagickObjectがうまく入ったとしても…
こんな問題があるなら一般ユーザーには使いにくいのでは。

>Vbscriptでバッチファイルを自動で作るようにして
そこまで出来るんならわざわざバッチファイルを作ってそれを起動するんじゃなく、
VBScriptにoraファイルをドラッグ&ドロップで開始し、いろいろやって、
直接VBScriptからImageMagickを起動すればいいじゃん、て話。
VBScript一本のみにするとなんか問題あるかな??
133123:2010/10/11(月) 18:27:41
>>131
vistaです。
ありがとうございます!

>>132
たしかにそうおもいますね
いろんな人に使って欲しいから
無理に解決せず
vbscript+バッチでやらせた方が
いいですね。
某所でもアドヴァイスありがとう!!
134124:2010/10/11(月) 22:45:15
>vbscript+バッチでやらせた方がいいですね。
どうしてもバッチから離れられないんだね(笑)
まあ確実な逐次実行ならバッチも良い選択だが。

oratopsd4見たぞ。お疲れさん。短時間でここまで仕上げるとは、たいしたもんだよ。
説明含めていろいろツッコミどころが多いけどね…
なんか不要な部分が多いね。Wscript.echoが大量に有る(笑)
これ、クリックするのが大変そうだな。まだまだα版てとこかな。

次に進む前にかなり整理した方がいいんじゃない。
最初に一回CreateObjectしたらそれを使いまわし、最後にNothingするとか。
整理できれば複数ファイル対応に拡張するのも容易だろう。

ついでに重箱の隅をつついてみると、
・chr(34)は""とも書けるよ。好みの問題だけど。 Dir1="""C:\Program Files"""
・wscript.sleep(4000)はいらないんじゃない?objWShell.Run zipname,0,True は終了待ちするから。
というか、今のobjWShell.Runする方法ではダブルクリックしてるのと同等だから、
各ユーザーの環境(インストールされてる解凍ソフト)の挙動に左右されると思う。
ZIPの解凍については「WSH ZIP 解凍」等でググって…もうやってるか(笑)
135123:2010/10/11(月) 23:45:26
ああ、どうもアドヴァイスありがとうございます。
Wscript.echoは
一応「 ' 」で止めてありますけど
の数はエラーを探した回数&またすぐに調べるようにってことで・・・。
オブジェはまったく調べてないので(もう日にちがやばいので・・・orz)
もうおまじない的につけまくりましたwww

136124:2010/10/12(火) 00:31:55
「 ' 」で止めてないのが9個もあるけどそれでいいのか(笑)

じっくり取り組めば不可能だったことも可能になると思うよ。
まあゆっくりやってください。
137デフォルトの名無しさん:2010/10/12(火) 01:14:05
>>136
ぐえっ直しとくよ・・・
指摘ありがとう!
138124:2010/10/12(火) 01:27:16
ああ、それと、
ベクターにある「ZIP.VBS」は見といたほうがいいと思う。
http://www.vector.co.jp/soft/winnt/util/se355605.html
ZIP作成も出来るぞ。
139123:2010/10/12(火) 01:45:42
>>138
それは試したけど駄目だった・・・
というかまだよく分かってないときにやったから
出来なかっただけで
次は出来るかもしれないですね!
ありがとう!!
140デフォルトの名無しさん:2010/10/16(土) 21:05:46
VBScriptでスクリーンセーバーの「モニタの電源を切る 時間」を設定する方法を教えてください。
141デフォルトの名無しさん:2010/10/19(火) 22:35:46
sendkeys
142デフォルトの名無しさん:2010/10/25(月) 20:55:06
powercfg
143デフォルトの名無しさん:2010/11/02(火) 18:32:21
保護モードで動いているか調べる方法を教えてください
144デフォルトの名無しさん:2010/11/02(火) 20:30:50
保護モードではできないことをやってみればよいのでは?
145デフォルトの名無しさん:2010/11/02(火) 22:12:47
たとえば?
146デフォルトの名無しさん:2010/11/03(水) 10:11:02
c:\ にファイルつくるとか
147デフォルトの名無しさん:2010/11/03(水) 12:58:00
それってUACと勘違いしてない?
148デフォルトの名無しさん:2010/11/05(金) 00:52:23
区別してやらないことをやってみればわかるな
149デフォルトの名無しさん:2010/11/21(日) 04:57:26
Windowsタスクスケジューラー権限昇格 0day
http://www.exploit-db.com/exploits/15589/
150デフォルトの名無しさん:2010/11/22(月) 18:28:46
きれいなソースだね
151デフォルトの名無しさん:2011/04/02(土) 21:18:03.59
PCがWindows7になると、JoinDomainOrWorkGroupでドメイン参加ってできないですか?
MSDNみてもいまいちわからないです。
152デフォルトの名無しさん:2011/04/03(日) 02:24:32.57
>>151
俺も良く分からんが、これじゃないか?
ttp://blogs.technet.com/b/junichia/archive/2009/08/24/3276197.aspx
153デフォルトの名無しさん:2011/04/03(日) 22:24:17.80
>152
レスサンクスです。これをベースにつくったんですけれど、
XPは参加できたけど、7はダメだったんです。
もうちょっと見直してみます。
154デフォルトの名無しさん:2011/04/04(月) 21:22:28.89
Win32_NetworkAdapterConfigurationで
IPV6のアドレスを取得条件で省きたいんですが、
可能でしょうか?
155デフォルトの名無しさん:2011/04/04(月) 22:10:51.61
うん
156デフォルトの名無しさん:2011/04/06(水) 00:25:25.01
>>155
アオマエに聞いてるんじゃネェよ。とっとと失せな!
157デフォルトの名無しさん:2011/04/15(金) 18:21:51.45
うん
158デフォルトの名無しさん:2011/04/27(水) 23:51:46.09
いかんな‥‥2年かけて158か‥‥必死さが、全く伝わってこない‥‥w
159デフォルトの名無しさん:2011/05/01(日) 17:40:42.29
スクリプトでセキュリティゾーンと保護モードを調べる方法を教えてくれー
160デフォルトの名無しさん:2011/05/17(火) 18:36:00.43
プロパティを表示して引っこ抜け
161デフォルトの名無しさん:2011/06/07(火) 13:14:19.32
今ASP(クラシック)&VBS勉強してるがダメか?
162デフォルトの名無しさん:2011/06/18(土) 03:53:30.64
ラテン語だって勉強していいんだから
163デフォルトの名無しさん:2011/06/28(火) 01:30:43.46
全然必死さが足りない
164デフォルトの名無しさん:2011/06/28(火) 18:09:17.69
ieのmenuextでクリック箇所のフォント、色、文字サイズを調べるにはどうすりゃいい?
165デフォルトの名無しさん:2011/07/01(金) 21:05:32.84
スレ違い

それはIEの話であって、VBSの話じゃない
ActiveXアプリケーション(IEとかExcelとか、MS以外だとIrvineとか)の話まで
VBSの話として扱うと、なんでもありになって収拾がつかなくなるからな
166デフォルトの名無しさん:2011/07/02(土) 19:05:37.43
external.event.srcelement.style.font
167デフォルトの名無しさん:2011/07/02(土) 22:15:03.42
まったくの初心者です。
自分なりにネットで調べてもよくわからなかったので、よろしければ教えてください。

VBSで"notepad.exe"を起動させたいとき、
Execメソッドを使うと瞬時にメモ帳が起動するのに、
Runメソッドだと2〜3秒たってからメモ帳が起動します。

Runメソッドというのは、もともとそういうものなのでしょうか?
Runメソッドを使ったときでもメモ帳を瞬時に起動させることはできないでしょうか?

よろしくお願いします。
168デフォルトの名無しさん:2011/07/03(日) 00:12:47.25
>>167
俺はExecしか使わんけど
http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_02.html
ここに「別プロセスとしてプログラムを起動する」と書いてあるから、それで多少時間がかかるんじゃない。


話は違うかも知れんけど、
AccessのVBAでもRunSQLとExecuteってのがあって、
RunSQLが非同期実行でExecが同期実行。
ExecuteだとSQL実行中にエラーがあると教えてくれるが、
RunSQLだと失敗しててもエラー吐かないから普通は使わない

169デフォルトの名無しさん:2011/07/03(日) 00:42:23.03
>>168
ありがとうございます。
Runメソッドを使ったときも、Execメソッドのときのように
一瞬で起動してくれるといいのですが、もともと使い道が違うのかもしれません。
もう少し勉強してみます。教えていただいたURLも参考になりました。 m(_ _)m

170デフォルトの名無しさん:2011/07/03(日) 16:11:41.79
runはshellexecute()
execはcreateprocess()
だから
171デフォルトの名無しさん:2011/07/03(日) 22:14:58.87
>>170
ありがとうございます。
shellexecute()、createprocess()というのを
調べてみます。
172デフォルトの名無しさん:2011/11/22(火) 12:55:38.53
調べた結果は?
173デフォルトの名無しさん:2011/11/22(火) 22:13:48.07
結果往来
174デフォルトの名無しさん:2012/03/09(金) 12:53:56.73
VBScriptのClassは継承できないのではなく、継承する必要性が全く無い事にようやく気が付いた...orz
175デフォルトの名無しさん:2012/03/09(金) 20:55:28.95
VBScriptよりJScriptの方が配列の扱いが柔軟だし作りやすい
けどWindows上でのパスを扱うならエスケープ扱いを受けないVBScriptの方が勝手がいい
自分の中で必死に話し合ってみた
176デフォルトの名無しさん:2012/03/10(土) 11:14:56.41
VBScriptのClassがヤバイほど面白れぇ...
何これ、派生クラスは作れないのに、派生クラス使ってコード書くのとコード量が変わらねぇw
177デフォルトの名無しさん:2012/03/10(土) 13:45:22.16
ラブレター
>>176
基底クラスを書かない分むしろ短かったりする
179デフォルトの名無しさん:2012/05/09(水) 02:18:33.22
起動してバックグランドでキー監視って出来ませんか?

指定したキーが押されたら処理が始まって終わったらまたキー待ちという処理をしたい。
180デフォルトの名無しさん:2012/05/09(水) 12:04:19.21
>>179
VBSにそういう機能はありません。

そういう機能を持ったCOMを自作することで、VBSで目的を実現することは可能ですが
だったらCOM作るより普通にexe作った方が良いでしょう。

あとはAutoHotkeyというスクリプトツールだと、比較的簡単に目的のこと出来ますよ。

「起動したらBGでキー監視」はAHKのデフォルト機能で、起動するだけでやってくれるから、あとは
キー::Run, wscript.exe 〜.vbs
って書けば、AHKが常駐してキーが押される度にVBS実行してくれる。

もちろんAHKの言語覚えて、VBS使わずに全ての処理をAHKにやらせてもいいし。
181デフォルトの名無しさん:2012/05/09(水) 18:34:23.16
ありがとうございます。
早速、試してみます。
182デフォルトの名無しさん:2012/05/11(金) 16:13:03.66
alt ctrl shiftならバックグラウンドでもsetintervalなどで監視できるよ
183デフォルトの名無しさん:2012/05/13(日) 11:37:18.01
標準入力をバイナリで読む方法はないものか……。
読めなくてもファイルにコピーできればそれでいいんだけど。

ぐぐって無変換のテキストとして読む方法はわかったんだけど、
2バイト単位でしか読めないから最後の1バイトがどうにもならない。

Windowsの標準機能だけでファイルアップローダーを作りたいんだ。
IISとVBS(WSH)以外の選択肢があればVBSにこだわりはないんだけど、
別途インストールが必要なものは不可という条件で。
184デフォルトの名無しさん:2012/05/14(月) 12:02:08.37
>>183
JavaScriptでできるっぽくね? 試してないけど…
185デフォルトの名無しさん:2012/05/14(月) 21:28:58.33
JSって標準入出力(というか入出力自体)使えるんでしたっけ。
見たところVBSと同じようにオブジェクト作って同じメソッド使うようなものしか見つけられなかったのですが。
いったん最後まで読めてしまえば融通はききそうなのですが……。
186デフォルトの名無しさん:2012/05/15(火) 11:07:17.75
クッキーだけじゃね。
187デフォルトの名無しさん:2012/05/15(火) 11:11:38.55
html5ならローカルファイルにアクセスできるよ。できるよ。
かけないけどね><
188デフォルトの名無しさん:2012/05/15(火) 17:12:03.61
>>185
cscript.exeで実行するんでしょ?
こんな感じで読み書きできるじゃん。

var text="";
while(!WScript.StdIn.AtEndOfStream){
text+=WScript.StdIn.ReadAll();
}
WScript.StdOut.Write(
encodeURI(text)
);

JSなら文字列をバイト単位で扱える、と思ったけど試してない

↓このスレとか参考にならんかね
ttp://kohada.2ch.net/test/read.cgi/php/1059745064/
189デフォルトの名無しさん:2012/05/15(火) 20:11:26.67
>>188
IISからの標準入力だとEOF相当のものをつけてくれないらしくて、
ReadAllだと帰ってこなくなっちゃいます。
一緒に長さも送ってくるのでRead()で読めばいいのだけど、
Readで指定する長さはUnicodeでの文字数なので半分にして
使わないといけない。
そして奇数バイトだと最後の1バイトを読もうとするとこれまた
応答がなくなっちゃうという。

ReadAllないし、ストリームからバイト単位で読み出す方法があれば
よいのだけど、JScriptにせよ読み出す部分は同じTextStreamの
メソッドなので、うまくいかない……というのが今までのところ。

参考情報ありがとうございます。これから読んでみます。
190デフォルトの名無しさん:2012/05/17(木) 18:18:34.70
無理無駄諦めろ
191デフォルトの名無しさん:2012/05/19(土) 12:54:43.29
いろいろ調べてみたのですがやっぱり無理ぽいですね……。
とりあえず用立てるために奇数サイズの末尾1バイトはダミーデータで置き換えることで妥協しました。
なんで文字コード変換しつつ行単位で読み書きなんてのができて無変換でバイト単位の読み書きができないのやら……。
192デフォルトの名無しさん:2012/05/19(土) 16:41:55.19
fsoがtextstreamしかサポートしてないからだと思うが?
イヤならbinarystreamをサポートするCOMをvb.netでちょろっと書いてやればいい
それくらい簡単だろ?
193デフォルトの名無しさん:2012/05/19(土) 18:07:09.62
VBScriptがバイト型をサポートしてないからだと思うが?
194デフォルトの名無しさん:2012/05/21(月) 01:06:57.56
これなんで?

x = "0"
a = 0

WScript.Echo x > a ' True
WScript.Echo "0" > a ' False
195デフォルトの名無しさん:2012/05/21(月) 02:16:50.83
当然だろ
WScript.Echo asc("0")
WScript.Echo 48 > a ' True
WScript.Echo 48 > 48 ' False
196デフォルトの名無しさん:2012/05/21(月) 02:42:11.19
>>195
へー(棒読み)
197デフォルトの名無しさん:2012/05/21(月) 23:20:28.01
>>195
何がどう当然なのかさっぱりです
198デフォルトの名無しさん:2012/05/21(月) 23:55:45.68
WScript.Echo 48 > 0 ' True
199デフォルトの名無しさん:2012/05/22(火) 00:09:51.48
>>194
VBScriptでは数値と文字列の比較では原則として文字列が大きいと判定されるけど、
http://preview.library.microsoft.com/ja-jp/library/cc392349.aspx

文字列が数値を表す定数である場合には、数値に変換されて数値同士の比較になるみたい
200デフォルトの名無しさん:2012/05/22(火) 04:19:55.11
>>199
へー(棒読み)
201デフォルトの名無しさん:2012/05/22(火) 20:17:23.97
潜在的バグ潜みそうすなぁ…

x = "0"
a = 0

WScript.Echo x > a ' True
WScript.Echo x > 0 ' False
202デフォルトの名無しさん:2012/05/23(水) 01:52:45.36
潜在的バグなら潜みそうすなぁ… あほか
203デフォルトの名無しさん:2012/05/23(水) 02:07:33.73
>>202
お前馬鹿って良くいわれるだろ。
204デフォルトの名無しさん:2012/05/23(水) 14:00:26.69
良くいわれるだろ。 … あほか
205デフォルトの名無しさん:2012/05/23(水) 18:23:10.02
>>204
え?何言ってんのコイツ。
206デフォルトの名無しさん:2012/05/23(水) 19:41:34.31
x = "0"
a = 0

WScript.Echo( x > a )// False
WScript.Echo( x > 0 )// False
WScript.Echo( x == a )// True
WScript.Echo( x == 0 )// True
207デフォルトの名無しさん:2012/05/23(水) 20:43:11.42
>>204
馬鹿晒しage
208デフォルトの名無しさん:2012/05/24(木) 00:56:24.37
わからんならスルーすればよいのに
ttp://alphatxt.cocolog-nifty.com/blog/2009/04/post-92e9.html
209デフォルトの名無しさん:2012/05/24(木) 01:31:17.21
ソースがブログ … あほか
210デフォルトの名無しさん:2012/05/24(木) 01:47:54.17
あほか 基本常識だからそこらにあるんだろ 真性のあほだな
211デフォルトの名無しさん:2012/05/24(木) 01:56:17.91
あほか ソースがないんならスルーすればよいのに 真性のあほだな
212デフォルトの名無しさん:2012/05/24(木) 08:47:04.56
あら恥ずかし外でも使ってんのか?あらかわいそう誰も教えてくれないのか?
213デフォルトの名無しさん:2012/05/24(木) 09:33:06.66
外でっつーか、ビジネスメールでも使っているのかねぇ。
相手に鼻で笑われるかもしれないのに。
214デフォルトの名無しさん:2012/05/24(木) 10:06:20.47
人にソースを示すときにブログの URL を貼る馬鹿が何を言っても無駄。
215デフォルトの名無しさん:2012/05/24(木) 16:09:21.35
>>208
こういう奴がTwitterでデマ拡散とかしてんだろうな…
216デフォルトの名無しさん:2012/05/24(木) 18:45:13.57
基本常識のソースで何だ?
?十年も日本語使ってりゃ分かりそうなもんだが?
そっかテレビゲームばっかで使ってないのか
217デフォルトの名無しさん:2012/05/24(木) 19:13:24.81
人にソースを示すときにブログの URL を貼る馬鹿が何を言っても無駄。
218デフォルトの名無しさん:2012/05/24(木) 19:41:19.46
何このバカ? そんなにソースが欲しいのか? ほら喰らえ >>201
219デフォルトの名無しさん:2012/05/24(木) 19:44:01.54
>>208
馬鹿晒しage
220デフォルトの名無しさん:2012/05/24(木) 19:53:31.32
そんなに痛いか?
だから誰も教えてくれなかったのね?
知らぬは一生の恥 を続けてればいいよ
221デフォルトの名無しさん:2012/05/24(木) 19:58:25.78
ソースとしてブログを持ち出した後、基本常識連呼!
客観的にこれがどう見えるか、基本常識をお持ちなら分かりませんか?
222デフォルトの名無しさん:2012/05/24(木) 20:07:40.92
認めなよ、自らの過ちを。見苦しいだけだよ。
223デフォルトの名無しさん:2012/05/24(木) 20:09:55.17
>>222
「見苦しい」

正解。
224デフォルトの名無しさん:2012/05/24(木) 20:22:37.57
だからソースじゃないと言ってるだろ?
なんで基本常識にソースが要るんだ?あほには分からんか?かわいそうにな
225デフォルトの名無しさん:2012/05/24(木) 20:32:21.93
> 208 名前:デフォルトの名無しさん[sage] 投稿日:2012/05/24(木) 00:56:24.37
> わからんならスルーすればよいのに
> ttp://alphatxt.cocolog-nifty.com/blog/2009/04/post-92e9.html

ブログ(笑)
226デフォルトの名無しさん:2012/05/24(木) 23:19:44.15
> ブログ(笑)
底なしのアホですね かわいそうに
227デフォルトの名無しさん:2012/05/24(木) 23:37:15.10
>>221
>ソースとしてブログを持ち出した後、基本常識連呼!

これが全てを物語ってるな
惨め過ぎる
228デフォルトの名無しさん:2012/05/24(木) 23:46:32.12
> 208 名前:デフォルトの名無しさん[sage] 投稿日:2012/05/24(木) 00:56:24.37
> わからんならスルーすればよいのに
> ttp://alphatxt.cocolog-nifty.com/blog/2009/04/post-92e9.html

恥ずかしい…
229デフォルトの名無しさん:2012/05/25(金) 00:09:47.23
ブログにトラウマでもあんのか?
230デフォルトの名無しさん:2012/05/25(金) 00:17:25.82
>>208 の馬鹿が今回の件でトラウマになるだけだろ
もしも「基本常識」とやらを持っているのなら
231デフォルトの名無しさん:2012/05/25(金) 00:32:57.72
ところでソースがブログだと何なんだ?あほか?
232デフォルトの名無しさん:2012/05/25(金) 00:44:21.47
よく世話になるブログがいくつかあるけどな
ブログの良し悪しが分からんのか?
233デフォルトの名無しさん:2012/05/25(金) 00:49:38.90
ソースがブログだと何なんだ? … あほか
234デフォルトの名無しさん:2012/05/25(金) 01:06:02.71
>>231
馬鹿晒しage
235デフォルトの名無しさん:2012/05/25(金) 01:19:38.73
馬鹿晒しage … あほか
236デフォルトの名無しさん:2012/05/25(金) 01:33:26.44
> ところでソースがブログだと何なんだ?あほか?
底なしのアホですね かわいそうに
237デフォルトの名無しさん:2012/05/25(金) 10:16:58.19
お前馬鹿って良くいわれるだろ。
238デフォルトの名無しさん:2012/05/25(金) 11:03:29.03
お前馬鹿ってよく言われるだろ。
239デフォルトの名無しさん:2012/05/25(金) 11:22:42.60
ソースにブログのURLを貼って馬鹿にされると「基本常識」連呼。
ついには「ソースがブログだと何なんだ?」と開き直り。

これはないわ。
240デフォルトの名無しさん:2012/05/25(金) 11:26:36.48
お前馬鹿って良くいわれるだろ。
241デフォルトの名無しさん:2012/05/25(金) 11:30:18.10
お前基本常識がないってよく言われるだろ。
242デフォルトの名無しさん:2012/05/25(金) 11:30:26.55
ついにコピペに走ったか…
これ以上何を言っても馬鹿を晒すだけだと気付いたか。
243デフォルトの名無しさん:2012/05/25(金) 11:52:55.76
ブログでも読んで日本語勉強しろよ
244デフォルトの名無しさん:2012/05/25(金) 12:00:51.09
245デフォルトの名無しさん:2012/05/25(金) 13:15:44.96
お前、馬鹿と岩猿追えない、とか、思ってんだろ?
246デフォルトの名無しさん:2012/05/25(金) 13:18:57.46
>>208
なかなか良さそうなサイトなのでサイト検索でブックマークしときました
247デフォルトの名無しさん:2012/05/25(金) 18:48:29.85
ウサギ美味しい とか思ってんだろ?
248デフォルトの名無しさん:2012/05/26(土) 16:48:16.39
こいつらは必死に話し合っていてスレタイをよく理解しているようだが肝心の部分が読み抜けてる。
249デフォルトの名無しさん:2012/05/26(土) 17:56:46.74
こいつ等は必死に話し合って居てスレタイを良く理解して居る様だが肝心の部分が読み抜けてる。
250デフォルトの名無しさん:2012/05/26(土) 19:06:25.89
>>245
お前は朝鮮人か。
読点の位置が間違ってるぞ。
岡崎洋三 『日本語とテンの打ち方』 を読め。
251デフォルトの名無しさん:2012/05/26(土) 19:41:29.92
そこに間違いと書いてあるのか?そんなバカな
252デフォルトの名無しさん:2012/05/27(日) 15:11:11.18
>>250
岡崎洋三 『日本語とテンの打ち方』 を良く読め。
253デフォルトの名無しさん:2012/05/27(日) 17:23:00.89
コピペにマジレスしてる馬鹿は何なの?
254デフォルトの名無しさん:2012/05/28(月) 03:24:19.85
岡崎洋三 『日本語とテンの打ち方』 を良く読め。… あほか
255デフォルトの名無しさん:2012/05/28(月) 15:56:03.05
岡崎洋三 『日本語とテンの打ち方』 を良く読め。… あほか … あほか
256デフォルトの名無しさん:2012/05/29(火) 11:47:06.99
>>252
だっせー
257デフォルトの名無しさん:2012/06/10(日) 17:06:10.77
258デフォルトの名無しさん:2012/06/21(木) 01:03:13.68
vbsからsqlを発行するプログラムを作ってます。
この時sqlの「in( )句」にvbs内で可変長に作成する文字列変数を
渡して検索することってできるでしょうか?

変数a = "'11','12','13',・・・" ←個数は可変

・・・
where colum in( 変数a )

↑こんな感じです

昔C#で似たようなことしようとしたんですけど、エラーだかでできませんでした。
確かカンマも文字列で認識されるから?とかだった気が。。。

259デフォルトの名無しさん:2012/06/21(木) 01:03:47.94
あげわすれ
260デフォルトの名無しさん:2012/06/21(木) 01:06:45.09
>>258
SQLを発行していると言うことは、最終的に文字列にしていると言うことだろ。
だったら、エスケープするなどの工夫は必要かもしれんができないわけはないな。
261デフォルトの名無しさん:2012/06/21(木) 10:15:56.32
>>258
データベースによっては数が多すぎるとエラーになるな
262デフォルトの名無しさん:2012/06/21(木) 20:16:32.84
>>260,>>261
ありがとうございます。個数的には少ないのでやってみます!
263デフォルトの名無しさん:2012/07/26(木) 23:23:18.48
VBScript歴3ヶ月のおいらが必死にレスしたいのだが良いか?
264デフォルトの名無しさん:2012/07/27(金) 11:30:01.72
是非
265デフォルトの名無しさん:2012/07/27(金) 22:46:23.92
ありがとう…では…。
VBScript は「出来るようで出来ない子」という話から。

Visual Basic for Script Editon の意味を最初はあまり理解できなかったのだが、
Wn32API を呼べない、OLE オートメーションを呼べてもそのプロセスIDすら取れない、ことに気付いてからの理解は早かった。

VBScript はバッチファイルの置き換えを意図したものに他ならず、
1. 定型的なバッチ処理
2. 対話的なバッチ処理
以上のことをやろうとするとべらぼうにハードルが上がる。
基本的にリアルタイムイベント処理が不可なのである。

WMI や .NET のクラスを VBScript から使おうとすると感じる疎外感はすさまじい。
非同期処理を求められるクラスのインスタンスがことごとく使えない。
System.IO.FileSystemWacther さえ使わせてくれない。
これはこのクラスに COM インターフェイスが無いからであるが、にしても冷遇過ぎる。

ていうか __InstanceOperationEvent クラスがどの程度 VBScript から使えるのかという情報すら無い。
調査中だが、キーボードやマウスからの入力イベントは多分キャプチャできない。という予感がしている。
266デフォルトの名無しさん:2012/07/27(金) 22:50:52.66
IE オブジェクトの OnUnload イベントに GetRef で関数を代入して、
IE オブジェクト変数に Quit させてを IE プロセスを破棄する時にキーイベントを取るとかいう…。

そんな不毛なことしかできないのかよこれ…。
ていうか、できないよな…調べたけど…。

絶望した!VBScript に絶望した!!
267デフォルトの名無しさん:2012/07/27(金) 23:02:56.64
>>5
JavaScript の方が良くできてるからに決まっている。理解しろ。

>>6
IDE があったらあったでこまる。
そんな大規模なものを VBScript で書かれたらメンテする方が迷惑する。
書籍にロクなものが無いのは完全同意。
手に入る本が

Windows自動処理のためのWSHプログラミングガイド
http://www.amazon.co.jp/Windows%E8%87%AA%E5%8B%95%E5%87%A6%E7%90%86%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEWSH%E3%83%97%E3%83%AD
%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%AC%E3%82%A4%E3%83%89-%E4%BA%94%E5%8D%81%E5%B5%90-%E8%B2%B4%E4%B9%8B/dp/4883376583

しかなかったのだが本当に酷かった。安易に買って反省した。
そこで@ITの

チェック式 WSH入門
―― 演習方式で身につけるWSH超入門 ――
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_01.html

で勉強し直した。クラス定義までは行かないものの、この連載は良く分かった。
全部印刷して今でも持っている。

>>7
それは知らなかった。今度落としてみよう。
試用してみるわ。
268デフォルトの名無しさん:2012/07/27(金) 23:24:48.76
>>9
PowerShell のコマンドレットから OS やアプリの機能を呼ぶ、という点においては変わりなくない?
俺は PowerShell 良く知らないから聞くのだけど。

>>10-14
流れの通りで。
以下、流れの通りには返さない。

>>15
逆に考えるんだ、バッチスクリプトでやらされるよりはマシだと考えるんだ。

>>24
逆に eval 出来ないスクリプト言語の方が珍しい。
あるサイトで「VBScript には eval が無い」とか書かれてて、慌ててリファレンスで Eval 関数探したわ。
あってホッとした。

>>25
意味不明。

>>27
面白そうだが評価が真っ二つだな…。安いから買ってみるか…。
269デフォルトの名無しさん:2012/07/27(金) 23:25:52.80
>>28-29
少なくとも、2012年段階では C#より普及してないと思う。
「Windows にあらねば OS にあらず」というようなある種の開き直りが見て取れるから。
C# は mono でコンパイルして JIT 抜きの VM 込みで配布すれば iPhone でもイケるらしいし。

>>30-31
個人的には HTA には全く未来が無いと思うのでやらない方がいいと進言する。
セキュリティに穴を開けまくって実現している機能なので、予告なしに消える可能性が高い。

>>32
俺は一般ユーザー権限で動くものしか作らないという信条なのでその辺は知らん

>>33
何故だか Byte Array に変換しないといかんらしいが、ヘッダはいくらでも作れる。

今日はこんなところで。とりあえず必死に語ってみた。
270デフォルトの名無しさん:2012/07/27(金) 23:38:34.38
まだそのレベルか
まあ今が一番面白いというかハマる時期なんだろうな
271デフォルトの名無しさん:2012/07/27(金) 23:43:34.56
書こうと思って書き忘れてた。

俺の調査によると、Long 型で表現できる以上の数を Mod しようとするとオーバーフローする。
Currency 型に強制キャストしても無駄だった。
色々調べたが、日本語、および英語サイトのどこにも情報を見つけることができなかった。

Project Euler の問題を解いていてつまづいたんだが…。
何でこんな基本的な情報がどこにも無いんだ?

つうか WMI を調べてると「WMI Fun」とかいうゴミサイトがノイズになってイライラする。
wbemtest やら WMI Code Creator やらが吐くテストコードを転載しているだけのくせに。

絶望した!Scripting Guys が
「自分たちもこれらのクラスをどれくらい使えるのかわからない」
と言ってる時点で絶望した!!

どんだけ C++/C# 優遇なんだよ?

余談だが、
一応IT関係の仕事してますブログ
http://teruterublog0700.seesaa.net/
も相当ノイズになって腹が立つ。
「○○さんのブログの手順でやってみました」
「できました!」
だけのゴミブログ。
条件が少し変化しただけでものすごく苦労させられる課題に関してもこの調子だからムカつく。
272デフォルトの名無しさん:2012/07/27(金) 23:45:24.35
>>270
VBScript でどこまで行けるのか教えてほしい。

今日は本当にこんなところで。
273デフォルトの名無しさん:2012/07/29(日) 15:37:38.01
> 俺の調査によると、Long 型で表現できる以上の数を Mod しようとするとオーバーフローする。
これはネットに情報があった。
恐らく、ヘルプでの調査とネットでの調査を混同していた。
お詫びして訂正する。
274デフォルトの名無しさん:2012/07/29(日) 15:48:35.53
今日のお題は、
「OLE オートメーションのメソッド呼び出しにカッコが要ったり要らなかったりするのが気持ち悪い」
ということ。

VBScript を書き始めて3ヶ月、自分なりのスタイルを構築してきた。例えば、
1. 式はカッコでくくる(For 分は除く)
2. Wihie 〜 Wend は使わない。Until もできるだけ使わない。
3. Not 演算子はできるだけ使わない。<>演算子を使う。
等である。
優先順位は 1. > 2. > 3. だ。

何故 1. > 3. > 2. ではないかというと、Not 演算子の位置が気持ち悪すぎるから。
275デフォルトの名無しさん:2012/07/29(日) 15:51:17.80
普通は
If (objHoge Is Not Nothing) Then
と書きたい。しかし、
If (Not objHoge Is Nothing) Then
と書かなくてはならないのは苦痛だ。できれば
If (Not(objHoge Is Nothing)) Then
と書きたいがカッコがややこしくて別な意味で不細工になる。

まぁでもこいうのには慣れた。
276デフォルトの名無しさん:2012/07/29(日) 15:56:33.31
なんか前回より話題のレベル落ちたなw
完全に初歩的な勘違いの領域になっちまった
277デフォルトの名無しさん:2012/07/29(日) 15:57:18.86
さて本題である。

1. カッコを付けて怒られるパターン
 a) 引数が1個の場合はすんなり動く
 b) 省略可能な引数を省略せずに書くと「Subプロシージャーは…」というエラーが出る。
2. カッコを付けないと怒られるパターン
 「行の終わりが不正です」と怒られる。

ちなみにこれらには規則性が全く無い。
同じ OLE オートメーションのメソッド間でも統一性が無い。

一応、「カッコを付けないで書いて、怒られたら付ける」というマイルールを作ったのだが、
何故こんなことが起こるのかが分からない。
278デフォルトの名無しさん:2012/07/29(日) 16:00:13.28
>>276
どこを勘違いしているのかを教えてくれれば助かる。
C系で育ったので、VB系の構文は慣れるまで非常に苦痛だった。
279デフォルトの名無しさん:2012/07/29(日) 16:34:21.19
引数付きコンストラクタが書けないとか、
クラスメソッドやクラス変数が使えないとか、
そういうのは Cっぽく名前空間で逃げれば何とかなる。

言語単体では標準入出力すらできないくらい OLEオートメーションに頼った設計のくせに、
頼みのそいつらを VBScript からどれくらい操れるのかという情報が、大抵の場合、ない。
MSDN を見ても C++、C#、VB しか相手にしてませんのよ、ごめんあさぁせ、と言われているような錯覚に陥る。

結果、メソッドをチマチマ叩いてみるしかない。(引数の型で予想できる場合もあるにはある)
IE オブジェクトの ClientToWindow メソッドは VBScript からは使えない。
Visible = False な IE オブジェクトに仕込んだ JavaScript にお願いして…ってしなきゃいけないの?
WMI は多分単に解像度を返してくるだけだし、ツールバーを考慮に入れた描画領域を得るのにまた調べものか…。
ていうか、何かやろうとする度に延々調べて不毛なテクニックを得なければならないなんて…。

パトラッシュ、僕疲れちゃったよ
280デフォルトの名無しさん:2012/07/29(日) 16:50:20.32
最近 PowerShell や C#、.NET がおいでおいでをしている。
確かに、COM や .NET の世界の入口を探訪できた経験は貴重だったが、
思い切って行っちゃおうか…

来年、つまり Windows XP のサポートが切れる1年前に行こうかと思っていたのだが…。
何で MS は Microsoft Update で強制的に XP に PowerShell や .NetFramework を入れないんだろう。

絶望した!これらをオプションインストール扱いにする MS に絶望した!!
281デフォルトの名無しさん:2012/07/29(日) 17:05:22.06
きっとバカなんだね
所謂、勉強の出来るバカ、テストの点数は良いバカ

アレも出来ない、コレも出来ないと扱き下ろしだけは一人前だが
自分が間違っていて規則性のあるエラーが出ても規則性に気付けず統一性が無いとか言っちゃって
自分の書いた論理式の論理的におかしい部分にも気付けない

一つ覚えたら凝り固まっちゃって、仕様の違いも調べず、「これで出来るはず」という勘違いを押し通して
それでエラーが出たら、貧弱だ不適切だと自分の無能を棚上げして言語を批難する

君には、臨機応変に多数の言語や実効環境を使いこなすのは無理だ
282デフォルトの名無しさん:2012/07/29(日) 17:07:15.30
>>35
署名の有無で挙動が変化するかは分からないが、2012現在、メーラで普通に弾かれる。

>>36
有名な解法を。
objIE.Navigate "about:blank"
With objIE
.Document.Body.InnerText = "クリップボードに入れたい文字列"
.execWB 17, 0
.execWB 12, 0
.Quit
End With

>>39
その Image が指す URL の画像ファイルを直に取ってきて保存すればいいんじゃない?
MSXML2.HTTP で取ってきてエンコードしてバイナリストリームに変換して保存。

HTA 関係はパス。
283デフォルトの名無しさん:2012/07/29(日) 17:16:56.89
>>281
言語そのものは批判してないんだけど?
「一定の逃げ方、書き方」を確立すればいいし、それでも無理ならそこが言語としての限界でしょ。

COM の呼び出しメソッドに関しては、「何故そうなるのかが分からない」と言っている。
恐らく COM 側のインターフェイスの都合なのだろうが、どの資料を見れば分かるのか?
調べたつもりだが本当に分からん。

> 自分の書いた論理式の論理的におかしい部分にも気付けない
Not のことか?Not "ブール式" という仕様なのは理解してるし、VBScript を使うなら納得するしかないし、
でも個人的にはなるべく使いたくないから使わない記法をマイルール化というだけの話。
SQL は IS NOT と書くからね。
284デフォルトの名無しさん:2012/07/29(日) 17:24:55.91
というか「絶望した!」というフレーズを本気にしたら駄目だよ。
さよなら絶望先生のセリフだから。

今日はこのへんで。
285デフォルトの名無しさん:2012/07/29(日) 17:33:52.64
あ、そうそう、このスレでの自分はかなり縛りをキツくしてレスしている。
・VBScript から使えるものしか使わない。
・一般ユーザー権限で使えるものしか使わない(管理スクリプトは例外)。
・Windows XP の最小構成でやれることの限界を目指す(だから Excel 経由で〜や、.NET のクラス経由で〜も無し)
VBScript は 周りの助けを借りて動く言語なので、構成と権限を最小にした環境を「言語環境」だと思っている。
286デフォルトの名無しさん:2012/07/29(日) 17:42:05.49
言い訳ばっかり
ダメだこの子
287デフォルトの名無しさん:2012/07/30(月) 19:33:36.52
さて、可愛そうな >>286 を放置して我々は先へ進もう。
何故なら、>>286 に VBScript を食わせても多分、というより確実に動かないからだ。
つまり >>286 の価値は VBScript より下である。我々にとっては Err.Description の方がよほど有用なのである。

今日のお題は「VBScript の良いところ」である。
1. Windows2000 以上だったら(ほぼ)確実に動く。追加インストールは不要
2. OLE オートメーションが呼べる
3. 古式ゆかしい BASIC に慣れた人々にも優しい
… 3. はかなり無理をしている。

でだ。>>281 の人はものすごく勘違いしているのだが、1. のメリットが無ければ VBScript の魅力の 80% は失われる。
自分の書き方が悪かったのかもしれないが、C系で育った、というのは自分的には UNIX 的思想で育った、という意味もある。
(主に中括弧文化という意味で)
Perl も PHP も AWK も bash もイケるんだが(Ruby と Python は書けない)、最小を想定すると Perl と PHP は外さざるを得ない。
Emacs しか使えないと客先に vim しかないと窮するから使えた方がいい、というのと似ている。
288デフォルトの名無しさん:2012/07/30(月) 19:44:25.61
「どの環境でも動く」というのは美しい。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
これを忘れた輩が昨今多いのは嘆かわしいことであるが、実は Win 厨に多いのも事実である。
VB で納品されたアプリが正直に「With ステートメントでエラーが出ました」て吐くか普通?いや普通ではない。

COBOL が分かる人間は減ったが相変わらずメインフレームで動いているので、育児がひと段落した元コボラーの主婦でも雇う流れはまだある。
とは言え元コボラーで現C使い、てな人間は目が腐るようなコードを書いてくる。
見たくもないがオブジェクト指向COBOLなんてものもあるらしい。

これからはラムダ式や匿名関数、匿名オブジェクトバリバリの時代が来るのは、まぁ、分かっている。
C# の進化っぷりを見れば予想はつく。
289デフォルトの名無しさん:2012/07/30(月) 19:56:11.89
ならば VBScript を踏み台にして Windows の底なしに暗く、深い闇に眼を投じてみようではないか。
自分は WScript.Shell クラスにはほとんど興味が無い。多分10分で使えるようになるから。だから執拗に COM に執着してきた。

普通のテキストバッチ処理は普通にバッチスクリプトで普通に出来ることが多い。
仕事上でのテキスト処理はほぼ Perl でやっているが、配布するとなるとまず使わないし、使えない。
そのような理由で Win に関わるようになって VBScript に興味を持ったのだが。まぁそれも終わりだ。

あらかじめ絶望していた!VB系の連中のレベルの低さに絶望していた!!
予想斜め45°下の低さっぷり!ありがとうございました!!
290デフォルトの名無しさん:2012/07/30(月) 19:59:42.14
遺体、板杉
291デフォルトの名無しさん:2012/07/30(月) 21:49:06.41
何がどのように痛いのかを指し示すことができなければお前が最上に痛い。
VB系の自称プログラマの底辺っぷりをさらすのみ。

きちんと反論しろよオラ?
292デフォルトの名無しさん:2012/07/30(月) 21:55:49.87
ちなみに >>281 の人間が言う「論理式」という言葉は BASIC 系以外ではまず出てこない。
C や Perl でも同等の表現はできるが、「論理式」という表現はまずしない。
「ブール式」もしくは「ブール型を返す式」としか言わない。

というところで「すら」底辺っぷりを晒すお前ら。
生きてて恥ずかしくないか?
293デフォルトの名無しさん:2012/07/30(月) 22:04:16.96
というところで、
「VBScript がスクリプト言語として負わされた悲しみというべきもの」
言うなれば、
「遊びで付き合った女に中出ししてできちゃった結婚したものの、嫁が過去のトラウマを背負った○○だった」
そういう悲劇めいた喜劇に踊らされている者達よ。

VBScript に罪はないが、お前らのスキルの低さは万死に値する。

今夜はこんなところで。
294デフォルトの名無しさん:2012/07/30(月) 23:38:59.13
今夜はってまた来るのかよ。
大好きじゃん。
295デフォルトの名無しさん:2012/07/31(火) 00:39:30.67
感想を書きたいのか
VBScriptユーザを貶めたいのか
>>263の目的がわからなくなってきた
296デフォルトの名無しさん:2012/07/31(火) 01:28:54.30
>>295
自慰行為。
297デフォルトの名無しさん:2012/07/31(火) 11:40:59.91
>>292
フレーズ検索の使い方わかる?
"論理式" "C言語" 約 11,300 件
"論理式" 約 185,000 件
"ブール式" 12,300 件

論理式 ブール代数 ブール値 がごっちゃになってるんじゃないか?

まあ、ここはおまえの日記帳だから好きなだけ吠えて行けよ。
ここで恥をかいたってリアルの知り合いにバレるわけじゃないし、君が生きてることを恥じる必要はないよ。
298デフォルトの名無しさん:2012/07/31(火) 22:23:49.02
さて、今日のお題は「さようなら、Sub プロシージャ」。
ちなみに、自分に対する罵詈雑言があるだろうから無視して書く。

その前に、Call ステートメントという意味不明なステートメントを呼ばないと Function が Sub 扱いになることを知らなかったことを
ここにお詫びして訂正する。
「こんなもんは呼び出しを明示的にするだけのもんだろ」と思っていたら甘かった。

何の発想はモダンな言語であれば至極当然なのだが、さすがは古い因習の怨念に取りつかれた BASIC 系言語。
これは、「式文」という概念が VB 系言語にはない、ということの証左である。
式が値を返さない場面があって当然、というのは圧巻である。今時有り得ない。
自分はこれで「Set」という意味不明なステートメントがある理由や、「=」という記号が場面によって意味が違うという気持ち悪さを納得した。

一律で「Call」と書けばよいところを、何で Sub があるかという話だ。
「Call」と書けば Function の取りたくもない返り値を捨てることもできる。
だがさすがは VB系、伊達に過去の負の遺産を背負ってはいない。
299デフォルトの名無しさん:2012/07/31(火) 22:31:31.50
厳密に言えば、全ての式文は値を返す。
が、void を返したりして意味が無いので捨てて当たり前な場面が多々ある、というのが実情である。

「だったら Sub プロシージャ、いらない子じゃん」
普通はそう思うが、Sub 君はどうやら私生児ぽい扱いらしい。
大文字小文字を区別しない処理系同様、この子も変に互換性やしがらみを背負わされたっぽい。

だがこれは実に迷惑な話だ。
300デフォルトの名無しさん:2012/07/31(火) 22:34:45.78
>>297
どうでもいいけど俺の直上にあったからレスしとく。
ともかく、「返す値がブール値」という意味でしか使ってないから。
Google の検索結果?それとも Bing?
ていうかそれって「ネットになかったら世界に存在しない」というくらい可愛そうな発想だ。
301デフォルトの名無しさん:2012/07/31(火) 22:44:30.45
「式文という概念がない」というのは、自分にとって VB系の意味不明さを氷解させるポイントだった。
「各個のステートメントが状態遷移上で個別に処理されている」ということが分かれば話は早い。
VB系言語はもう 終 わ っ て い い

ところが Linux の sh系シェルは実は似たような処理系ながら死ぬ気配が無い。
OS の違いは別として、決定的な違いがある。

「グールー言語としての魅力に天と地との差がある」
ということだ。
302デフォルトの名無しさん:2012/07/31(火) 22:49:59.83
sh系シェルの構文は、処理する側から見るとすごく「酷い」代物だ。

Win のバッチスクリプトと考え方は変わらんからだ。が、
あれは「ものすごく酷い」。
引数すらまともにコマンドに渡せない代物だからだ。
土台がおかしいとその上もいびつになる、という好例である。
303デフォルトの名無しさん:2012/07/31(火) 22:55:05.69
ということで、俺は VBScript を3ヶ月で網羅的に会得した。
別個にブログしているが、グダグダここに書いたのはここがまさに便所の落書き所だからだ。
ウンコしながら考えを整理するくらいにしか実際役に立たなかったし。

結論:
VB系でプログラミングを覚えた連中はカス。
ム板もマ板もカス。
俺のウンコ食ってろ。
304デフォルトの名無しさん:2012/08/01(水) 06:18:42.72
すげぇ、世の中楽しいだろうなぁ。
305デフォルトの名無しさん:2012/08/01(水) 08:30:20.19
このレベルで、これだけ自己陶酔出来る奴ってのも珍しいよね
ある意味幸せな奴だw
306デフォルトの名無しさん:2012/08/01(水) 14:02:54.47
>>299
式に含めてはならないプロシージャを宣言するのがSub
式に含めるべきプロシージャを宣言するのがFunction
307デフォルトの名無しさん:2012/08/03(金) 19:28:41.83
>>300
お前は >292 で自分で言ったことを、自分で理解してないんじゃないか?

> ちなみに >>281 の人間が言う「論理式」という言葉は BASIC 系以外ではまず出てこない。
> C や Perl でも同等の表現はできるが、「論理式」という表現はまずしない。
> 「ブール式」もしくは「ブール型を返す式」としか言わない。

これがどうして

> ともかく、「返す値がブール値」という意味でしか使ってないから。

こういう解釈になるんだ?

> ていうかそれって「ネットになかったら世界に存在しない」というくらい可愛そうな発想だ。

同情してくれてありがとう。
それで、「論理式」という単語を使う奴は生き恥をさらしてて、「ブール式」と書き換えるべきだと、
ネットで「論理式」という単語を使っているすべての Web ページに対して主張するわけ?
ネット以外の世界(例えば教科書とか)では、「論理式」が多数派で、「ブール式」と間違えている
のは少数派という主張でいいのね?
amazon で「コンピュータ・IT」カテゴリから "ブール式" と "論理式" で検索してみたところ、
ブール式はわずかに一件。Erlang に感謝しな。"論理式"は 86 件。

もう一回、>292 を読み返してみたらどうだ。
308デフォルトの名無しさん:2012/08/03(金) 19:36:13.69
>>301
「グールー言語としての魅力に天と地との差がある」
グールーって、もしかして glue ?
309デフォルトの名無しさん:2012/08/04(土) 00:29:24.65
さて今日のお題は「VBScript において、配列はどんな夢をみるか?」である。

結論から言おう。
配列は、原始型でもオブジェクト型でもない中間的な夢を見る。
近年の言語では、配列は鬼っ子である。
型ではないし、とはいえクラスでもない、中間的な何か。

プロトタイプベースな言語では割と自然な形で取り込めなくもないが、クラスベースだとかなり不自然な存在である。
我らが VBScript でも、かなり鬼っ子的扱い(逆に言えば特別扱い)になっている。

VBScript における配列の扱いは三種類あると自分は考える。
1. 純然たる配列
2. 配列しか格納できない縛りのあるバリアント型、に格納されている配列
3. 何でも格納できる上で、配列も格納できるバリアント型、に格納されている配列

何でこう考えるかって?

プロシージャの引数や返り値に配列を混ぜてみればこう考えざるを得ないのだ。
1. は古式ゆかしい配列である。プロシージャの引数で ByRef するとプロシージャ内で ReDim もできない。
が、ByVal なら ReDim できる。
これは何故か。

ここから先を読むには、「わっふるわっふる」と書き込んでください。
310デフォルトの名無しさん:2012/08/04(土) 02:37:13.85
↓自演の「わっふる」
311デフォルトの名無しさん:2012/08/13(月) 16:22:41.79
>>309
VBScriptの場合、配列どころか変数すら、原始型でもオブジェクト型でもないじゃん
312デフォルトの名無しさん:2012/08/28(火) 22:33:44.69
>>311
そんなことはない。バリアント型というメタ型だ。
バリアント型に格納できる変数をよくよく追いかけてみると C の構造体だ。

あーさて何の話だったかな。
あぁそう、VBScript における配列の話な。
VBScript における配列は、言語内唯一の「データ構造」として扱われる。
スカラー値しか扱えなかった C言語だが、C89 で構造体をスカラーっぽく扱えるのと似ている。

1.、および 2. は古式ゆかしい BASIC を引きずっている。
しかし VB ライクな使い方はどう考えても 3. だ。

ちなみに VBScript は引数(ByValの場合)も戻り値もバリアント型(に格納できる型)を要求してくる。
(VBScript にはそれ以外の型は無いので普段気にする必要はない。)
そこで行われるのは、まぎれもなく「コピー」なんだよね。それ以外の何者でもない。

由緒正しそうなサイトでも「Function プロシージャは内部で生成した配列を返せない」という、間違った情報が載ってたりする。
Function プロシージャで内部生成した配列を返しても問題ない。
ただし、巨大な配列を返すと酷い目に遭う。

よって、「巨大な配列を受け渡ししたい場合は ByRef 推奨。ただしこのやり方はイケてなさが漂う」のである。
313デフォルトの名無しさん:2012/08/28(火) 22:36:09.48
Dictionary オブジェクトがクソみたいに遅い。Please die now! 的遅さ。
再帰もクソ遅いし、やっぱこの手には向いてない。この言語。
ttp://projecteuler.net/problem=14
最初にブルートフォースで解いて 4分。
探索済みシーケンスを Dictionary に放り込み&再帰で書いたら Corei5 で 40分。
再帰を解いてループに直して 20分。
業を煮やしてブルートフォースに直して 4分。

答えを投稿して他の回答者のコメントを見たら
「ハッシュテーブルを使って高速化したよ」
C/C++ 使いならそうなるよなぁ。
ちなみに巨大配列を用意してハッシュテーブルの代わりに使う、は典型的 NG。

.NET に同様のクラスがあるのは既知である。
しかし縛りをかけているので自分は使わない。
XP が死亡したら .NET クラスを堂々と使うけどな。PowerShell から。
314デフォルトの名無しさん:2012/08/28(火) 22:39:20.74
>>307
知らんよ。
315デフォルトの名無しさん:2012/08/28(火) 23:08:27.24
最近触る時間が無い。
OLEオートメーションはある程度見捨てたので、あとはどんだけ言語としての面白さを楽しめるか、だ。
さてどこまでが限界やら。
316デフォルトの名無しさん:2012/08/28(火) 23:31:05.28
VBScriptの深淵を見つめたいなら、Classを極めないと駄目だろうな...
317デフォルトの名無しさん:2012/08/29(水) 00:29:10.56
>>316
ありがとう。それは薄々気づいていたところだ。
Project Euler の問題が段々難しくなってきていて、BigInteger クラスを自前で実装しないとこの先キツいかなと思っていたところだ。
しかし心配はしていない。

名前のスコープが
1. プロシージャ
2. ファイル
の二段階しかいないC言語方式!!

幸い GetRef があるので色々と面白いこともできそうだ…。
VBScript のクラスはかなり C の構造体に近い扱いでイケると思っている。

まぁ、来月からですかな。
318デフォルトの名無しさん:2012/09/19(水) 13:23:43.04
質問宜しいでしょうか。

動画のエンコードにAviUtl Controlという物を使い、それに
標準でついていたvbsを使用して録画後自動処理を行なっ
ているのですが、こちらの記述を フォルダ全体を対象に
処理するのではなく、読み込んだ動画 ファイル一つだけを
対象に処理させる方法はないでしょうか?

理由としては、1つ目のエンコード処理が終わっときに2つ目
の動画ファイルが録画中だと、エラーを吐いて処理が止まって
しまうからです。

ttp://www.dotup.org/uploda/www.dotup.org3437483.txt

『' キャプチャしたファイルがあるフォルダが空になるまで繰り返す』
『' SOURCE_FOLDER で一番古いファイルを探す』

といった辺りの文を削除して実行した所、エラーが出て止まっていましました。

行:78
文字:1
エラー:ステートメントがありません。
コード:800A0400
ソース:Microsoft VBScript コンパイルエラー

正確にはどう削除するのが正解でしょうか、教えてください。
319デフォルトの名無しさん:2012/09/19(水) 15:09:38.34
>>318
While - WendをDo While - Loopに替えてExit Doで抜けちゃったらいいよ

' キャプチャしたファイルがあるフォルダが空になるまで繰り返す
Do While Fs.GetFolder(SOURCE_FOLDER).Files.Count > 0
  ……
  
  ' エンコードが終わったファイルを移動する
  Call Fs.MoveFile(input, MOVE_FOLDER)
  
  Exit Do
Loop
320デフォルトの名無しさん:2012/09/19(水) 16:17:33.63
>>313
Dictionaryを変に使ったんじゃねえの?そんな時間かかるわけないだろ。
321デフォルトの名無しさん:2012/09/19(水) 17:17:00.24
>>319
ありがとうございます。無事希望通りの動作を実行できました。
322デフォルトの名無しさん:2012/09/19(水) 21:36:48.81
すみません、重ねて質問させて下さい。
>>318の書式で、処理するフォルダに入っているサブフォルダ内
のファイルも処理対象にする方法はありませんでしょうか。

' キャプチャしたファイルがあるフォルダ(最後の文字は"\")
Const SOURCE_FOLDER = "F:\video\"

デフォルトだと、上記の通り一個の指定したフォルダしか対象にできません。
323デフォルトの名無しさん:2012/09/20(木) 16:09:09.07
>>322
途中までできた、デバッグ出力するだけだけど
http://www.dotup.org/uploda/www.dotup.org3438838.txt

出力先フォルダとソースフォルダが入れ子になってるからちょとまんどくさい。
ソースフォルダって変えることできる?
324デフォルトの名無しさん:2012/09/23(日) 23:39:55.76
>>320
[email protected] でそれだ。
俺が変に使う訳がない。
自分で書いてみろ。それで分かる。
325デフォルトの名無しさん:2012/09/24(月) 07:53:48.89
>>324
わかった、俺のセロリンさんが全力出して50分かかった。
326デフォルトの名無しさん:2012/09/26(水) 00:10:56.98
>>324
ゴミCPU乙。
327デフォルトの名無しさん:2012/10/09(火) 22:46:20.06
>>325-326
近頃の馬鹿はOLEの重さ加減も知らんのか…。
まさに生きるゴミ。
328デフォルトの名無しさん:2012/10/09(火) 22:53:41.23
>>327
黙れ雑魚
329デフォルトの名無しさん:2012/10/10(水) 01:52:47.33
JScriptに対するアドバンテージって何よ?
330デフォルトの名無しさん:2012/10/10(水) 01:57:56.64
鯖管がwin鯖だけで済むはずないんだから、SSJSを使えと思うんだけど
どうすれば世界からVBScriptを抹消できるでしょうか?
331デフォルトの名無しさん:2012/10/10(水) 02:44:11.38
>>329
・参照渡しができる
・ローカル変数を宣言せずに使用できる
・巨大な配列の生成速度が速い
・参照カウントでオブジェクトを破棄しちゃうのでCOMと相性がいい
・無限ループの構文がきれい
・配列を使うときに[]を書かなくていい
・;を書かなくていい
・クラスを作成できる
332デフォルトの名無しさん:2012/10/10(水) 02:46:06.03
>>330
絶対阻止だよそんなの
333デフォルトの名無しさん:2012/10/10(水) 18:29:51.04
>>331
どれも大した長所じゃなくね?
むしろ、ひとつの言語であれもこれも弄れた方が嬉しいのに
334デフォルトの名無しさん:2012/10/10(水) 20:47:58.75
>>333
あれもこれもってどういう意味?
335デフォルトの名無しさん:2012/10/11(木) 11:29:52.86
>>333
なんでも出来るじゃん...
336桃白白:2012/11/15(木) 19:53:58.92
      (゚д゚ )・・・*
    (:) 殺(:) ミミミ
    <(::)ヽ二ゝ ミミミミミ
/ ̄ヽ二二二二ーー、
ヽ_ノ三三二二ニニ′三二ニ ブイ〜ン

どうも桃白白です。バイナリーサーチツリーをVisitorパターンを使って実装したいんです。
ノードの追加と削除をVisitorに丸投げしたいんです。エンタープライズランゲージVBScriptで
できないことはないと思うんです。どう実装すればいいですか?教えてください。
桃白白困っています。教えてください、お願いします。
337桃白白:2012/11/27(火) 14:34:12.00
&nbsp;&nbsp;&nbsp;
338デフォルトの名無しさん:2012/11/27(火) 14:40:51.17
&amp;nbsp;
339桃白白:2012/11/28(水) 06:38:32.42
>>336
できたわ!
CTANとかCPANとかあるじゃん?VBScriptにもそういうのがあればいいと思うんだよね。
VBSAN、超いい名前じゃん。もしあれば桃白白もコード提供できると思うんだよ。
桃白白じつはバブルソートには自信があって、エリートバブリストなんだよね。
バブりたくなったらいつでも呼んで。桃白白バブっちゃうからさ。
340デフォルトの名無しさん:2012/11/28(水) 09:14:43.55
バブルソートなんてくだらないものに自信を持たれてもなぁ。
341桃白白:2012/11/28(水) 18:28:13.46
>>340
そういうことは桃白白のコード見てから言ってくれない?
これ見ても同じ事言えるの?

Friendpaste - Bubblesort
https://friendpaste.com/2XV1rOgFjeUtHoyTJIDQvF
342デフォルトの名無しさん:2012/11/28(水) 22:08:27.98
ラッキーソートこそ最速のアルゴリズム
343デフォルトの名無しさん:2012/11/29(木) 11:02:25.54
>>341
うん、下らない。交換回数で選択ソートに、比較回数で挿入ソートに劣る。
基礎として学ぶこと、改良すること自体は悪くないけれど、>341はこれといった改良も見られない。
悔しかったらせめてコムソート位ものにしてから言ってくれ。
344桃白白:2012/11/29(木) 18:54:49.23
>>343
バブルソートプロフェッショナル桃白白がくしで髪をととのえたら超魅力的ってことでしょ。
つまりこういうことでしょ。
Friendpaste - combsort
friendpaste.com/3srgnFOCGUoBtcI1UyT65m
345デフォルトの名無しさん:2012/12/01(土) 09:08:38.20
まともなGUIを作れない?
346デフォルトの名無しさん:2012/12/02(日) 00:59:55.06
作れるよ。GUI系のCOM使えばね。

逆にCOM使わなかったら、ファイルの読み書きも出来ないし
ネットアクセスも出来ないしで、GUIに限らずまともな処理というか
大した処理は出来ない

ただ、ファイル読み書きとかのCOMは標準で入っていて
逆にGUIを自由に作れるCOMは標準では入ってないし
かなりマイナーな部類だけどね

まあ、InputBoxの入力欄をドロップダウンリスト(コンボボックス)に
したいという程度ならまだしも、まともなGUI作ろうとしたら、フリーの
GUIアプリ開発環境使った方が遙かに手軽に作れるし
347デフォルトの名無しさん:2012/12/02(日) 01:11:27.43
>InputBoxの入力欄をドロップダウンリスト(コンボボックス)に
ゴクリ
348デフォルトの名無しさん:2012/12/02(日) 04:16:38.11
あれをこうしてああやってWin32API使えるようにしてSendMessageで えいっ ですの?
349デフォルトの名無しさん:2012/12/02(日) 12:07:55.66
>>345
HTA使えばGUI作れるだろ?
350デフォルトの名無しさん:2012/12/04(火) 08:23:40.43
HTA最悪
351デフォルトの名無しさん:2012/12/04(火) 17:03:59.80
>>350頭悪
352124:2012/12/06(木) 22:07:26.88
昔IEで、なんちゃってコンボボックス作ったことあるよ。
見た目、使い勝手で特に問題なかった。
353デフォルトの名無しさん:2012/12/07(金) 12:43:24.53
VBSでちょっと凝ったUIを提供しようと思ったら中でIE生成だよな。
本格的なアプリケーションを作りたいならHTAだな。HTAはなかなか頭いい。
354デフォルトの名無しさん:2012/12/13(木) 20:33:07.68
VBSの実行中にIEで実行中ダイアログ出して、そのIEが閉じられたら
実行も中断するようにしてたんだけど、処理実行中にSleep仕込まないと
イベント取れない(っていうかスクリプト終了まで待たされる)のね。
今までどこかしらに待ちを含んでたみたいでさっぱり気づかなんだ。
355デフォルトの名無しさん:2012/12/13(木) 21:30:54.80
イラつく文章だな
356デフォルトの名無しさん:2012/12/14(金) 11:58:21.50
汎用的な小さなプロシージャをファイルにまとめてる?common.vbsとかで。
頂戴!>n<
357桃白白:2012/12/14(金) 15:50:54.20
>>356
じゃあ桃白白があ・げ・る。
Sub Say(o)
Call WScript.StdOut.WriteLine(o)
End Sub
358デフォルトの名無しさん:2012/12/14(金) 19:44:23.25
vbsではなくwscにまとめてる
作るのはvbsより多少手間がかかるが
扱いやすさは断然上なのでいろんなところで頻繁に使う物はwsc
長いスクリプトをモジュール分けするような場合はvbsでインクルードするけどね
359デフォルトの名無しさん:2012/12/14(金) 23:22:16.77
>>358
wscってHTMLタグみたいなのを記述して
このファイルはこういうプロシージャとかこんなプロsryて明示するやつだっけ(ggrks)
扱い易いならちょっと興味あるわサンクス

俺にうpろだを紹介しようかどうしようか。ゴクリ
360デフォルトの名無しさん:2012/12/14(金) 23:22:47.45
x 俺に
o お礼に
361デフォルトの名無しさん:2012/12/15(土) 10:53:51.32
>>358
wscを調べてみた...Classステートメント涙目だなw
362デフォルトの名無しさん:2012/12/15(土) 19:22:22.12
Classを使いこなせてない奴らしい意見だなw
wscをガンガン使ってる上でClassも手放せないほど便利で
全然涙目状態にはならないんだがなw
363デフォルトの名無しさん:2012/12/24(月) 21:12:59.46
classもwscも使わんなあ
364桃白白:2012/12/24(月) 21:27:26.57
>>363
マジで〜? グローバルな関数ごっそりな感じ?
まあそっちのほうがわかりやすいこともあるよな。
365デフォルトの名無しさん:2012/12/25(火) 06:13:04.55
まあまともなプログラム言語もやってる奴は
効率化や再利用性を考えるからクラスやインクルードファイルやwscを活用するが
VBSしか使わないような人は動けばOKで、より使いやすくしていこうって発想は無いことが多いからな
366デフォルトの名無しさん:2012/12/25(火) 09:43:50.17
つーか、VBSだからこそ、再利用性を確保しなければならないと思うが...
367桃白白:2012/12/25(火) 10:06:13.21
お前らおはよおおお、そしてクリスマスおめでとおおお
     /⌒\
    ○⌒):::::::\
      ノ::::::::::::::\
     ⊂ニニニニ⊃
      | ノ      ヽ
     /  ●   ● |
     |    ( _●_)  ミ
    彡、   |∪|  、`\
   / __  ヽノ /´>  )
   (___)   / (_/
    |       /
    |  /\ \
    | /    )  )
    ∪    (  \
          \_)
368デフォルトの名無しさん:2012/12/26(水) 23:47:19.73
どこで質問したか忘れてしまったので再カキコ

Windows.Formsを呼び出せるCOMってないですかえ?
なんでCollectioはCOMの相互呼び出しできるのに
Formsはできないんだよ
369デフォルトの名無しさん:2012/12/27(木) 00:12:34.49
>>367
ありがとちゅっちゅ
370デフォルトの名無しさん:2012/12/27(木) 03:29:33.55
つか使い捨てのちょっとしたスクリプトぐらいにしかVBS使わないんだが
371デフォルトの名無しさん:2012/12/27(木) 22:24:18.60
PowerShellの実行ポリシー無ければVBSなんか使わないんだが。
さすがにキッティング屋なんかは勝手にポリシー変えられないだろうな。
372デフォルトの名無しさん:2012/12/30(日) 23:43:44.21
使い捨てるから、真面目に組む必要があるんじゃん
同じ人物の発想なんて、基本的に対して変わらんじゃないか

所謂、オブジェクト指向の世界だろ
373デフォルトの名無しさん:2012/12/31(月) 00:09:06.91
>>371
起動オプションで実行ポリシー設定すればいいんでない?
374デフォルトの名無しさん:2013/01/01(火) 22:41:55.87
>>366
関数レベルで管理してる。
インクルードだとファイル数が増えて配布する際に色々と面倒だし。
# JARみたいなのが作れると楽なのに
サーバに置いておくとクロスサイトスクリプティングだ何だと言われるし。

当然、保守性は下がるので、
バージョン管理ソフトだけでなく grep & WinMergeとか無いとやっていけない。
375デフォルトの名無しさん:2013/01/19(土) 07:04:19.34
あれ?format関数って使えないんだ。メンドクセ
376デフォルトの名無しさん:2013/01/19(土) 10:00:22.73
使えないこともないけどね

使えるようにするのと、使わないで処理するのと
どっちが面倒かで各自が決めれば良いこと
377デフォルトの名無しさん:2013/01/19(土) 10:55:19.98
もうぶっちゃけhtaで作った方が
378桃白白:2013/02/17(日) 08:01:16.98
htaで2chブラウザって作れないのかな。お前ら技術力あるんだからできるだろ。
スレをソートするところで桃白白が持つバブルソーティングインプリメンテーションも活用できると
思うんだよね。誰か作ってよ。
379デフォルトの名無しさん:2013/02/17(日) 09:15:15.23
作れるけど、作るメリットが無いよ

HTA+VBSで忍法帖対応書き込みできるブラウザ作ったら
その丸見えのソースから書き込み部分を抜粋して厨房でも荒らしスクリプトを作れるという
荒らしを目論む厨房にとってのメリットはあるかもしれないが

あと板によってはスレッド数が数百にもなるのに、バブルソートみたいに簡単だけど遅いアルゴリズムは使わないってw
というかバブルソートごときで独自開発した革新的なアルゴリズムを持っているかのような書きっぷりは何なの?
380桃白白:2013/02/17(日) 09:31:56.51
>>379
メリットはVBScriptがより多くの人に使われるようになることだよ。
うまくいけばVBScriptの普及に貢献したってことでマイクロソフトから表彰される
かもしれないよ。このスレのみなさんと桃白白さんがVBScriptの普及に貢献してくださいました
本当にありがとうございますと言われるかもしれないよ。製品がもらえるかもしれないし
マイクロソフトから認められることがうれしいしすごいことじゃん。
だから名誉を得られるっていうメリットがある。
ごときってなめたようなこといってるけどいっとくけど桃白白はバブルソートを
そらで実装できるレベルにあるからね。本とか見ないでそらで実装できるからね。
もう桃白白が開発したようなものだよ。
381デフォルトの名無しさん:2013/02/17(日) 10:54:19.36
過去に2度MicrosoftMVPを受賞した経験者として言わせて貰えば
固有掲示板用じゃどんなに高機能にしても無理で、もっと汎用性が高く
革新的なモノじゃないと評価されないし、荒らしにより多く使われるようになっても嬉しくない

それでもやりたければ、他人を当てにせず自力でやったらいいじゃん
自力で出来ないなら、自分の器以上のものを求めようとするな
それでも求めたければ自分の器を磨け
382デフォルトの名無しさん:2013/02/17(日) 11:54:18.67
つ PowerShell
383デフォルトの名無しさん:2013/02/17(日) 15:39:15.11
>そらで実装できるレベルにあるからね。本とか見ないでそらで実装できるからね。
>もう桃白白が開発したようなものだよ。

まるで、ロミオとジュリエットを諳んじることができるからロミオとジュリエットは私が書いたと言わんばかりの馬鹿だな。
384デフォルトの名無しさん:2013/02/17(日) 15:41:25.13
>もう桃白白が開発したようなものだよ。

最後はちょっとだけ笑ったかな
今後はもう少しコンパクトにしてくれると引き続き読むけど
毎回長いようならスルーすることになるわ
385桃白白:2013/02/17(日) 22:00:58.50
>>381
(; ・`д・´)へーもう受賞してるんだうける・・・

>>382
PowerShellのGuiてWindows Forms?桃白白は.NETに対してはわりと
敵愾心をもってるからPowerShellはあまりあれだな。難しそうだし。

>>383
まさにロミジュリをそらでいえるのはシェイクスピアくらいでしょ。
じゃあ桃白白がVBScript界のシェイクスピアということでいいじゃん。

>>384
ぐぬぬ・・・
386デフォルトの名無しさん:2013/02/17(日) 23:58:20.27
>そらで実装できるレベルにあるからね。

ソラって普通?サラって言うんだけど・・・
387桃白白:2013/02/18(月) 00:54:39.40
>>386
そらはたぶんふつうのはず。漢字で書くと空。

そら【空/虚】の意味 - 国語辞書 - goo辞書
http://dictionary.goo.ne.jp/leaf/jn2/131534/m0u/%E3%81%9D%E3%82%89/

さらはなんだろ。まっさらからきてんのかな。ゼロから構築できるみたいな。
388デフォルトの名無しさん:2013/02/18(月) 13:07:46.09
>>387
Twitterのユーザー検索で「桃白白」多すぎワロタ
全部お前か?
389デフォルトの名無しさん:2013/02/18(月) 17:20:37.13
>>381
ってかそんなヤツ普通に特定できるだろwこの馬鹿
390桃白白:2013/02/19(火) 07:24:35.00
>>388
桃白白はTwitterやってないから全部違う。みんなTwitterやってんのかな。
桃白白使い方わかんないからさ。つぶやきたいことがあったらここに書く。
それが桃白白の誇り。
391デフォルトの名無しさん:2013/02/19(火) 09:30:50.91
つまらねぇ誇りだな。埃の間違いじゃね?w
392桃白白:2013/02/21(木) 22:33:35.00
みなさんこんばんわ。桃白白のお時間です。
VBScriptにはVBAで使えるCollectionオブジェクトがないんだよ。
これは由々しき事態だよ。この事態を打開するためにスキップリストが実装されるべきだよ。
VBAのCollectionを凌駕するにはそれしか道は残されてないよ。マイクロソフトから認められた
ガチのエンジニアの人もいるみたいだしやってできないことはないと思うんだよね。みんな作ってよ。
393デフォルトの名無しさん:2013/02/21(木) 22:46:33.89
Dictionaryじゃ駄目なんでしゅか?VBA. Collectionは何が出来るんでしゅか?
394桃白白:2013/02/21(木) 23:13:28.91
>>393
DictionaryはVBScriptでも使えるからダメだ。DictionaryがCollectionだというのであれば
Collectionが存在する意味がないわけだからCollectionをDictionaryに置き換える
のはさながら桃太郎がいなかったから浦島太郎に鬼を退治しておくれといってなかばむりやりに
浦島太郎を送りだすようなものだ。しかも浦島太郎は竜宮城から帰ったあとの浦島太郎だからね
完全におじいちゃんだからね。蛮勇をとどろかす旅路どころかもはや鬼ヶ島への島流しだろ。
イヌサルキジは介護するためにおともするわけじゃないんだよ。
395デフォルトの名無しさん:2013/02/21(木) 23:37:26.64
スベったな桃白白

15点
396デフォルトの名無しさん:2013/02/22(金) 00:28:32.22
要するにCollectionの特異性、優位性は何でしゅか?
397桃白白:2013/02/22(金) 00:33:40.65
>>396
桃白白はスキップリストをご所望なの。必要なのはその情報だけでじゅうぶんでしょうが。
Collectionについて知りたいのなら自分で調べなさいよ。聞いたらなんでも答えてもらえる
と思ったら大間違いよ。甘ったれんじゃないわよ。スキップリストをお作りになったらいいじゃないのよ。
398デフォルトの名無しさん:2013/02/22(金) 02:30:11.82
> 聞いたらなんでも答えてもらえる
> と思ったら大間違いよ。
紙に描いてモニターの横にでも貼っておけ>桃白白
399桃白白:2013/02/22(金) 05:45:52.71
>>398
やだ。モニターがベタベタになるじゃん。
ところでさ、VBScriptって継承ができないじゃん。どうしてる?
プライベート変数に親のインスタンスを持っておいて委譲したりしてる?
みんなどう書いてんだろ。
400デフォルトの名無しさん:2013/02/23(土) 11:06:31.19
>>399
継承は出来ないが、多態性は持っているので気にした事が無い
401デフォルトの名無しさん:2013/02/23(土) 12:37:25.26
桃白白って継承解るの?

具体的に言うなら、継承使える言語は何を使っているの?

それとも継承なんて使ったこと無いし良く知りもしないけど
なんか便利そうな機能でVBSでは使えないって言うからシッタカぶってみただけ?
402桃白白:2013/02/23(土) 13:09:38.55
>>401
もうVBScriptの話より桃白白の話になってるじゃん。別にいいけどさ。
四六時中桃白白のことを考えてくれちゃったらいいけどさ。桃白白に
恋してくれちゃったらいいけどさ。お前は桃白白は継承わかると思う?
それとも桃白白は継承わからないと思う?お前が思う桃白白ってどんなの?
403デフォルトの名無しさん:2013/02/23(土) 13:20:28.93
コテ名乗ってるからコテで名指しただけで
単に「質問者は〜」と質問者の理解度を確認してるだけの話じゃん
404桃白白:2013/02/23(土) 13:53:05.07
>>403
気休めでもいいから桃白白のこと好きっていってくれたらいいじゃん。
これじゃあ桃白白ピエロじゃん。勝手に勘違いしただけのピエロじゃん。
むしろ桃白白のほうがお前に一方的に気があるみたいじゃん。
405デフォルトの名無しさん:2013/02/23(土) 13:57:56.17
>>404
大好きだよ
桃白白は俺にとって超お気に入り
 
 
 
 
 
…の玩具
406桃白白:2013/02/23(土) 15:24:01.42
>>400
共通の処理をくくりたいときってあるじゃん?
別々のクラスにそれぞれ書いてたら修正するときめんどうだしさ、
そういうときBaseクラスを用意して処理を委譲したりしない?
ところでさ、桃白白いまランダムで悩んでるんだけどスキップリストで
ランダムな数を使うらしいんだよね。0が出る確率は1/2で、1が出る確率は1/4で、
31が出る確率は1/2^32で、0から31までの乱数をえたいの。桃白白困ってるの。教えて。
407デフォルトの名無しさん:2013/02/23(土) 16:04:14.13
0が1/2で50%、
1が1/4で25%、
2が1/8で12.5%
3と4が1/16でそれぞれ6.25%
なら
1〜分母の最大値(16)の範囲の整数乱数返して(0〜15でもいいが)
1,2,3,4,5,6,7,8なら0、(8/16=1/2=50%)
9,10,11,12なら1、(4/16=1/4=25%)
13,14なら2、、(2/16=1/8=12.5%)
15なら3、16なら4、(1/16=6.25%)
とすれば、狙った確率で出るようになるけど、
こういうのは変動する規則数であって乱数とは呼ばないよ

乱数がいくつの時に、どの規則数を返すかは算術演算でやってもいいけど
32パターンくらいならSelect Caseでもいいんじゃね?

というか分数と比率を習う小学4,5年生程度の頭があれば
この程度の算出方法くらい簡単に思いつくと思うんだけど、なんでこんなので悩んでるの?
408桃白白:2013/02/23(土) 16:37:30.28
>>407
なるほど、それでいこうかな。
409桃白白:2013/02/23(土) 17:05:52.12
>>407
よく考えたら桃白白がやりたいのは違ってた。すまん。
0が1/2
1が1/4
2が1/8
3が1/16
4が1/32
5が1/64
……
30が1/2147483648
というふうに出したいの。
410デフォルトの名無しさん:2013/02/23(土) 17:40:12.64
問題ないじゃん
411桃白白:2013/02/23(土) 17:47:21.93
>>410
コード教えてほしいな〜桃白白コード教えてほしいな〜
コード教えてもらえたら桃白白超うれしいな〜
412デフォルトの名無しさん:2013/02/23(土) 18:57:35.38
集計しやすいVBAで確認してみた

Const MaxValue = 5
Const Counter = 10000

  出現回数 出現率   目標出現率
0   5168   51.6%.    50%. . . 1/2
1   2504   25.0%.    25%. . . 1/4
2   1240   12.4%.    12.5%.  1/8
3   . 619   . 6.19%   . 6.25% 1/16
4   . 312   . 3.12%   . 3.12% 1/32
5   . 157   . 1.57%   . 1.56% 1/64

----------------------

Const MaxValue = 9
Const Counter = 100000

  出現回数  出現率    目標出現率
0   50249   50.2%. .    50%. . . . 1/2
1   24837   24.8%. .    25%. . . . 1/4
2   12552   12.5%. .    12.5%. .  1/8
3   . 6185   . 6.18%.    . 6.25%.  1/16
4   . 3170   . 3.17%.    . 3.12%.  1/32
5   . 1614   . 1.61%.    . 1.56%.  1/64
6   . . 753   . 0.753%   . 0.781% 1/128
7   . . 358   . 0.358%   . 0.390% 1/256
8   . . 193   . 0.193%   . 0.195% 1/512
9   . . . 89   . 0.089%   . 0.097% 1/1024
413桃白白:2013/02/24(日) 07:21:10.74
>>412
承知した。そのコード桃白白がもらいうける。
414デフォルトの名無しさん:2013/02/24(日) 08:18:43.16
どうぞどうぞ

アルゴリズムを作り上げるところでコードは9割以上完成してるので
その9割以上まで完成したコード、勝手に貰っていって勝手に使ってくださいな
415桃白白:2013/02/24(日) 08:20:30.43
>>414
なにいってんのかよくわかんないけど、コード貼ってよ。
416デフォルトの名無しさん:2013/02/24(日) 09:14:49.90
417デフォルトの名無しさん:2013/02/24(日) 11:40:35.30
VBAのRndは精度悪いから使い物にならないぞ。
Sub test()
 Dim val As Double
 Dim count(31) As Double
 Dim r As Double
 
 Rnd -1
 Randomize 999
 
 Dim i As Long
 For i = 0 To 2 ^ 31 - 1
  r = Rnd()
  If r = 0 Then
   val = 31
  Else
   val = Fix(-Log(r) / Log(2))
  End If
  count(val) = count(val) + 1
 Next '最後オーバーフローでエラー
 Stop
End Sub
418417:2013/02/24(日) 11:44:12.65
Num結果理論値差
010737416961073741824-128
15368709125368709120
2268435584268435456128
3134217600134217728-128
467108864671088640
53355456033554432128
616777216167772160
783884808388608-128
8419430441943040
9209715220971520
10104857610485760
11524416524288128
122621442621440
131310721310720
1465536655360
153264032768-128
1616384163840
419417:2013/02/24(日) 11:46:16.79
すまん、tabが消えた
Num 結果 理論値 差
0 1073741696 1073741824 -128
1 536870912 536870912 0
2 268435584 268435456 128
3 134217600 134217728 -128
4 67108864 67108864 0
5 33554560 33554432 128
6 16777216 16777216 0
7 8388480 8388608 -128
8 4194304 4194304 0
9 2097152 2097152 0
10 1048576 1048576 0
11 524416 524288 128
12 262144 262144 0
13 131072 131072 0
14 65536 65536 0
15 32640 32768 -128
16 16384 16384 0
420417:2013/02/24(日) 11:47:08.31
Num 結果 理論値 差
17 8192 8192 0
18 4096 4096 0
19 2048 2048 0
20 1024 1024 0
21 512 512 0
22 256 256 0
23 256 128 128
24 0 64 -64
25 0 32 -32
26 0 16 -16
27 0 8 -8
28 0 4 -4
29 0 2 -2
30 0 1 -1
31 128 0.5 127.5
421デフォルトの名無しさん:2013/02/24(日) 12:42:33.31
酷ぇw
422桃白白:2013/02/25(月) 01:12:00.83
>>417
RndはSingle型の値を返して、Single型の仮数部の最大値は(2 ^ 24) - 1で、
0 - 16777215
の値を
0 - 2147483647
の範囲に割り振っちゃったら多少の誤差は仕方がないと思うの。桃白白そう思うの。ドンマイ。
423桃白白:2013/02/25(月) 06:18:55.37
みんなちょっと聞いて。VBAのCollectionの連想配列機能は質が良すぎるの。
Dictionaryでもかなわないレベルだわ。桃白白てっきり線形探索でも
やってるんだろうと思ってたわ。どん引きだわ。

Collection
65536 1.08
131072 2.32
262144 4.949
524288 10.494
1048576 21.871

Dictionary
65536 0.34
131072 1.191
262144 4.43
524288 18.58
1048576 90.939
424デフォルトの名無しさん:2013/02/25(月) 16:33:41.81
>>423
>てっきり線形探索でもやってるんだろうと思ってたわ
その結果をみると、Collectionは件数と時間がほぼ比例してる
つまり、Collectionは線形探索だと予想されるわけだが
お前、線形探索って理解してるのか?
425桃白白:2013/02/25(月) 19:49:22.57
>>424
Collectionが線形探索だとすると線形探索より遅いDictionaryは
どんな探索方法なんだろうかと思わないでもないんだけれども、
自然数の和の公式n(n+1)/2ってのがあるっしょ。nが2倍になれば
和は約4倍になるっしょ。1 〜 Nの値を取得するのにかかった時間を
桃白白さんは出力されたんだと考えれば数字と桃白白の言葉の整合性
はとれるっしょ。じゃあそういうことでいいんじゃないでしょうか。
426デフォルトの名無しさん:2013/02/25(月) 20:00:52.60
まるっきり解ってないのかよw
427デフォルトの名無しさん:2013/02/25(月) 22:54:24.80
桃白白さん、僕と結婚して下さい。
428桃白白:2013/03/01(金) 19:35:35.23
これってどうしてできないの?エラーが投げられちゃうの。
桃白白困ってるの。教えてください。お願いします。

Microsoft VBScript 実行時エラー: 型が一致しません。: 'TestProperty'

Call Test()

Sub Test()
  Dim o
  Set o = New TestClass
  Call o.TestMethod()
End Sub

Class TestClass
  Sub TestMethod()
    Set TestProperty(0) = New TestClass
  End Sub
  
  Property Set TestProperty(ByVal index, ByVal value)
    Call WScript.StdOut.WriteLine("TestProperty")
  End Property
End Class
429デフォルトの名無しさん:2013/03/01(金) 23:49:34.84
Set Me.TestProperty(0) = New TestClass
430桃白白:2013/03/02(土) 09:28:54.07
>>429
解せぬわ!
431デフォルトの名無しさん:2013/03/02(土) 09:58:40.69
解す必要はない、ただ仕様に従えば良いだけ

それが嫌なら自分で新規言語作れ
432桃白白:2013/03/02(土) 10:21:34.27
>>431
それはそうだろうけど、なんでそういう仕様なのかわかる?
桃白白はそれを知りたいの。うちのしきたりに従えないんだったら
でてけとどなりつけるいじわるご主人さまにつかえる超絶かわいい
メイドさんの気分だよ。
433デフォルトの名無しさん:2013/03/02(土) 11:07:09.59
なら、ご主人様(Microsoft)にお伺いを立てろ

開発に関わってない奴が、仕様の内容ならまだしも
そういう仕様にした理由まで知るわけ無いだろw
434桃白白:2013/03/02(土) 11:28:14.19
>>433
仕様には明記されてるの?もしあるならそれ教えて。
そっから桃白白が推理してみるから。
435デフォルトの名無しさん:2013/03/02(土) 11:39:00.90
推理したいなら邪魔はしないので勝手にどうぞ
436桃白白:2013/03/02(土) 14:00:42.43
>>435
仕様に明記されてるんだったらそれを教えてほしいなって思ったの。
勝手にどうぞといわれてもそれがどこにあるかわからないから桃白白は
聞いてるわけで、桃白白はいまちょっとまってよというお気持ちでいっぱいです。
437デフォルトの名無しさん:2013/03/02(土) 14:15:14.47
白白少し黙ってなさい
438桃白白:2013/03/02(土) 18:01:56.68
>>437
いやだ、桃白白はぜったいに黙らない。
・・・・・・。
439桃白白:2013/03/05(火) 14:52:26.52
ドシーン ドシーン パオーン
/ ̄ ̄ ̄ ̄ ̄\
| ・ U      |
| |ι        |つ
U||  ̄ ̄ ||
   ̄      ̄
みんな聞いて。桃白白、トライを実装したいんだけど難しすぎてできないの。
手取り足取り教えてくれる人いない?
440デフォルトの名無しさん:2013/03/05(火) 14:55:38.80
Try-Catch-Finally? その話題、
少し前VB6スレですごく荒れてなかった?
だったら論破厨が大暴れするからやめれ。
441桃白白:2013/03/05(火) 15:08:44.49
>>440
うんにゃ、データ構造のトライのほう。Trie。
442デフォルトの名無しさん:2013/03/05(火) 22:19:44.70
桃白白さん、僕と結婚して下さい。
443桃白白:2013/03/14(木) 00:22:20.62
   ∩___∩
   | ノ      ヽ    _
  /  ●   ● |  //ヽ
  |    ( _●_)_ / /  |
 彡、   |∪|r'`    { 〔 ̄()  < みなさんこんばんは、ホワイトデーおめでとう
/ __. ヽノ|.__ {  ~~〕
(___)    Е)  \\_/
 |       /|~|      ̄
 |  /\ \~
 | /    )  )
 ∪    (  \
       \_)
444デフォルトの名無しさん:2013/03/14(木) 00:28:20.56
え?円周率の日ですよ
445デフォルトの名無しさん:2013/03/14(木) 00:31:09.87
>○<

桃白白にキャンディあげる
446デフォルトの名無しさん:2013/03/29(金) 16:51:50.89
タオパイパイはデータ構造とかをちまちま実装して勉強してる真面目系初心者なんだろうけど
わかったふりしてレスされても、前提がデタラメだらけで混乱するんだよ
だがそれがわかってしまえば無害なんだけどね。

むしろ>>431とか、実際周りにいたらちょっと嫌な感じなのはこっちだw
447デフォルトの名無しさん:2013/04/03(水) 03:49:52.83
>>428>>429>>430
vbsでClassめったに書かないからやってみた

・クラスブロックにおける自身のメンバへのアクセス時のMeの有無
Property Set
Publicプロパテイを呼ぶときはMeをつける。それ以外は全部エラー
Property Let と Get
Privateプロパティを呼ぶときにMeつけるとエラー。それ以外はどっちでも可
Fucntion と Sub
Meをつけるとエラー
変数
Private変数はMeつけるとエラー。Public変数はどっちでも可

けっきょくMeはつけるの?つけないの?
448桃白白:2013/04/03(水) 12:45:10.54
>>447
ナイス検証。ナイスインフォメーション。
アクセス修飾子が関与しちゃってるわけね。
桃白白の環境ではすこし違った結果になった。
https://friendpaste.com/zDNzkaVoNMYlKEDZlNQ8A
上がコードで下が結果。
http://i.imgur.com/kD6TzWc.png

つまり結局Meは付けないってことでいんじゃないか。
449デフォルトの名無しさん:2013/04/03(水) 15:29:52.39
>>447
思うに、Me.は自身のインスタンスを表す特別な修飾子ではなくて
単純な自身のインスタンスへの参照なんだろうな

>Publicプロパテイを呼ぶときはMeをつける。それ以外は全部エラー
プロパティは実質関数呼びだしだから、自身のプロパティへの代入はできない
インスタンス参照が必要だからMe.が無いとエラー

>Privateプロパティを呼ぶときにMeつけるとエラー
PrivateなプロパティにMe.をつけてると、Me.の参照してるインスタンスのPrivateなエリアなんだからアクセスできない

>Fucntion と Sub
>Meをつけるとエラー
これがよくわからんな。Privateなファンクション呼んだんじゃないのか?
450桃白白:2013/04/03(水) 16:31:28.21
>>447
>>449
桃白白ちょっと聞いてほしいことがあるの。
Setプロパティに値をセットするときにSetステートメントを
使用しなかったらMeを付けずに呼び出せるみたいなの。試してみて。
Setステートメントは.演算子と一緒に使うものですよーみたいな制約がありそうじゃない?
451デフォルトの名無しさん:2013/04/03(水) 17:13:32.06
>>450
何言ってるかわからん
ちょっとコード書いてみろ
452デフォルトの名無しさん:2013/04/05(金) 18:46:36.51
期待してた動作ではないが、これでも一応通るな。
Dim TestProperty(1)
Set TestProperty(0) = New TestClass
453桃白白:2013/04/05(金) 20:40:24.23
>>451
こういうこと。

https://friendpaste.com/31AaQR1EX7BKztYwIgElN4

Setステートメントを使ったらエラーが投げられる。
Setステートメントを使わなかったらエラーが投げられない。
プロパティの引数が単数個ならSetステートメントを使ってもエラーが投げられない。
引数が複数個のプロパティは言語上特別扱いされるみたいなの。理屈がわからないの。
454デフォルトの名無しさん:2013/04/06(土) 16:51:55.16
>>453
たしかにおかしな動作するな

おかしなのは2点
引数つきProperty Setがちゃんと呼べない
引数つきPropertyにSetなしで(Letで)代入してProperty Setが呼ばれる

試しにProperty SetとProperty Let作るとちゃんとProperty Letが呼ばれてる
Property Letが無いと勝手にProperty Set呼ぶのか?エラーにならんとダメなはずだが
VBAでは想定通りに動くっぽいからVBScriptのバグじゃね?

マイクロソフトに問い合わせてみたら?
455桃白白:2013/04/06(土) 18:33:45.19
>>454
でしょ、おかしいっしょ。

えーでも桃白白マイクロソフトに知り合いいないしさ。
サポートインシデントも持ってないしさ。やましいところもあるしさ。
桃白白がマイクロソフトに問い合わせるのは無理だよ。
このスレにはMVPの人とかもいるみたいだしマイクロソフトの中の人と
知り合いの人もいるんじゃない?MVPの人とかだったらマイクロソフトも
無下にできないと思うんだよね。ちょとーどういうことなのよーて言ってもらえないかな。
桃白白からのお願いです。
456デフォルトの名無しさん:2013/04/08(月) 14:52:44.90
2*2*2*2 は 2の4乗 で 2^4 と記述する 累乗じゃん。
2+3+4+5 は 階乗だっけ?どうやって記述するの?
あと、2+4+6+8 (for i = 2 to 8 step 2 sum = sum + i)みたいなのは
階乗じゃなくてなんていう?これも階乗って言っていいんだっけ
簡単な記述の方法ってある?VBSあんま関係なくてごめん
457デフォルトの名無しさん:2013/04/08(月) 15:59:14.96
階乗は5なら1*2*3*4*5
2+3+4+5や2+4+6+8には特別な算術名称は無いと思う
故にそれを計算する関数も無い

でも別にForでいいじゃん
一度書いてしまえば使う上では一緒だし、自作関数にすれば使い回せるし
(2 + n) * (n / 2 / 2)とか無理して書くよりForの方が解りやすいし
458デフォルトの名無しさん:2013/04/08(月) 21:37:08.62
>>456
「等差数列の和」としか言いようがないな
459桃白白:2013/04/10(水) 10:10:58.11
>>456
桃白白がクールなコードを教えてあげちゃう。

Function Sum(ByVal lngStart, ByVal lngEnd, ByVal lngStep)
  If lngStart <= lngEnd Then
    Sum = lngStart + Sum(lngStart + lngStep, lngEnd, lngStep)
  Else
    Sum = 0
  End If
End Function
460デフォルトの名無しさん:2013/04/10(水) 11:45:16.48
>>459
再帰はクールだけど、スタックオーバーフローで再起不能
461デフォルトの名無しさん:2013/04/10(水) 12:09:08.87
桃白白 = Sum( 0, 1, -1 )
462デフォルトの名無しさん:2013/04/10(水) 12:20:06.24
Function Sum(ByVal lngStart, ByVal lngEnd, ByVal lngStep)
  lngA = lngEnd - lngStart
  lngB = lngEnd - ( lngStart + lngStep )
  If lngA <= lngB Then
    Sum = "桃白白"
    Exit Function
  End If
  If lngStart <= lngEnd Then
    Sum = lngStart + Sum(lngStart + lngStep, lngEnd, lngStep)
  Else
    Sum = 0
  End If
End Function
463デフォルトの名無しさん:2013/04/10(水) 12:29:04.98
末尾再帰にしてみたが最適化はやってくれないな
.NETでコンパイルして、64bitCLRで動かせば最適化してくれるはず

Function Sum(ByVal lngStart, ByVal lngEnd, ByVal lngStep, ByVal lngSum)
  If lngStart <= lngEnd Then
    Sum = SumT(lngStart + lngStep, lngEnd, lngStep, lngSum + lngStart)
  Else
    Sum = lngSum
  End If
End Function
464桃白白:2013/04/12(金) 11:10:26.00
   ∩___∩
   | ノ      ヽ
  /  ●   ● | みんなー!!
  |    ( _●_)  ミ
 彡、   |∪|  、`\
/ __  ヽノ /´>  )
(___)   / (_/
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)

関数で複数の値を返したいときってみんなどうしてる?
戻り値用のオブジェクト作る? 参照渡し使っちゃう?
どうしてる? 桃白白どうしようか悩んでるの。みんなどうやってるのか教えて。
465デフォルトの名無しさん:2013/04/12(金) 11:22:49.97
             ;' ':;,,     ,;'':;,
            ;'   ':;,.,.,.,.,.,,,;'  ';,
           ,:'           : :、
          ,:' \  ,,. 、./  ノ( ::::::::',
          :'  ●     ● ⌒   :::::i. 場合によるだろ
          i  ''' (_人_) '''' *   :::::i 初心者かお前は
           :    {+ + +}      :::::i  具体的なケースを書けよ
          `:,、   ̄ ̄      ::::::::: /
           ,:'        : ::::::::::::`:、
           ,:'         : : ::::::::::`:、
466桃白白:2013/04/12(金) 12:05:00.89
>>465
そんな怒んないでよ。場合によるって参照渡し使ったりオブジェクト作ったり
混在させちゃうの? じゃあどういう場合に参照渡し使うの? みんなが
どういうときにどういうやり方をするのか桃白白教えてほしいな。
467デフォルトの名無しさん:2013/04/12(金) 13:16:03.80
それぞれメリットデメリットがあるので
どのメリットを取りたいか、どのデメリットを避けたいかで使い分けるだけの話だろ

因みに、それぞれにどういうメリットとデメリットがあるかはググれ
468桃白白:2013/04/12(金) 14:26:38.30
>>467
Googleさんの意見が聞きたいならGoogleさんに聞くよ。
桃白白はいまこのスレにいるみんなの意見を聞きたいの。
みんなの経験にもとづく苦労話やスーパーハッピーストーリーに桃白白はお耳を傾けたいの。
桃白白のかわいらしいお耳はそのためにあるものなの。じゃましないでちょうだい。
469デフォルトの名無しさん:2013/04/12(金) 15:11:45.56
Googleに聞くのは意見じゃなくて仕様、特徴
「どのメリットを取りたいか、どのデメリットを避けたいかで使い分ける」が意見

以上
470デフォルトの名無しさん:2013/04/12(金) 15:21:07.37
VBScriptをクラスベースでバリバリ使うって人はまた違った意見だろうが
VBScriptなら返値クラス作るのはないな
まあまずは複数値もどす設計がVBScriptで妥当か検証する
参照渡しするぐらいならグローバルな変数使う方が多いんじゃないかなぁ
それで見通せないようなサイズのスクリプトは書いたことないし書く気もないから
471デフォルトの名無しさん:2013/04/12(金) 15:55:24.68
VBScriptの場合、変数は全部バリアントなんだし、
多値関数の戻値は配列でよくない?

function foo(i)
foo = array(1.5, 2,"hello", i*2)
end function
472桃白白:2013/04/12(金) 17:30:00.40
>>470
参照渡しは基本的に使わないタイプ?参照渡しは変数が影響を受ける範囲が
直感的にわかりづらいところがあるから、その点グローバル変数を使う方が
わかりやすいかもしれないな。そういうこと?そういうことじゃないのかもしれないけれども、
グローバル変数使っちゃう派ね。

>>471
そのやり方スタイリッシュっすよね。PythonやHaskellといった昨今人気のある言語で複数の値を返すときに
使われるタプルみたい。
473デフォルトの名無しさん:2013/04/14(日) 16:54:14.36
昨今?だいぶ前だろ・・・
Objective-Cをsublime textで書くのが最もナウいらしいよ

オワコンのvbsなんてやめてpowershellでもやろうぜ
また5年後にはじめるのか?
474桃白白:2013/04/14(日) 20:02:53.81
>>473
PowerShell使ってる?難しそうなんだよね。桃白白全力で及び腰。
VBScriptこそが最高の言語だよ。
475デフォルトの名無しさん:2013/04/16(火) 09:25:31.13
powershellスレなくなったかな?
あれはスクリプト言語なのか、管理ツールなのか
はっきりしないのが流行らない原因のような気がする。
利用者もシステム管理者なのかプログラマなのかも不明だし。
476デフォルトの名無しさん:2013/04/16(火) 10:33:43.55
ちゃんとあるけど?現在Part4

というわけでPowerShellの話はPowerShellスレで
477デフォルトの名無しさん:2013/04/16(火) 12:11:58.82
windows板にあった、そっち行ってくる
478デフォルトの名無しさん:2013/04/17(水) 03:13:25.51
リファレンスを見ずに書けるほど簡単ならいいのだが(まあ自分の勉強不足なんだけど)。
cmd.exeもCreateObjectとかそれを扱えるだけの表現力があればいいんだが、
どうにも帯に短し襷に長しで。
479桃白白:2013/04/22(月) 11:51:38.40
みんな聞いて。桃白白教えてほしいことがあるんだけど、
このHumanの配列をNameでソートしたりNameとBloodtypeでソートしたり
実行時にフィールドを指定してソートしたいときってどうすればいいの?
フィールドの組み合わせごとにソート関数をこしらえるのは嫌なの。そんなの桃白白無理。
どうやるのか教えてほしいの。

Class Human
  Dim Name
  Dim Bloodtype
  Dim Likecolor
End Class

Sub Sort(ByRef Humans)

End Sub
480デフォルトの名無しさん:2013/04/22(月) 13:13:02.83
Cだと関数ポインタ、いまどきの言語だと高階関数を渡すところかね。
VBScriptだと無かったんだっけ?
481デフォルトの名無しさん:2013/04/22(月) 15:09:54.83
桃白白って、知識はそこそこ付いてきたけど
応用力は全くないままなんだな

詰め込み型の勉強はそこそこ出来るが
根本的に頭の回転が悪いタイプ、所謂
偏差値そこそこでIQ低いってやつかな
482桃白白:2013/04/22(月) 16:05:32.76
>>480
GetRefがある。GetRefでSortに比較関数を渡すことはできるんだけど、
そうすると比較するフィールドの組み合わせごとに比較関数を用意
しなきゃいけないの。超大変なの。
483デフォルトの名無しさん:2013/04/22(月) 17:12:30.36
ないのもねだりしたってしょうがないだろ
クラスに、名前かインデックス受け取って該当するプロパティ値を返すメソッド作れよ
484デフォルトの名無しさん:2013/04/22(月) 17:25:38.71
>>482
>GetRefでSortに比較関数を渡すことはできる
こんなことホントにできるのか?
具体的なコード書いてみてくれ
485桃白白:2013/04/22(月) 17:29:32.79
>>483
桃白白は実行時にフィールドを指定してソートする方法を教えてほしいの。どうやるのか教えて。
486桃白白:2013/04/22(月) 17:32:59.65
>>484
GetRefでググればわかんだろ。甘ったれんな。出直してこいはなったれ。
487デフォルトの名無しさん:2013/04/22(月) 18:16:21.88
>>485
フィールドを指定したらその値を返すメソッド作れって言われてるんだろ
実行時にそのメソッドの値でソートするだけじゃないのか?
488桃白白:2013/04/22(月) 18:21:58.80
>>487
桃白白に聞かれてもわかんないよ。桃白白バカだから。
実行時にフィールドを指定してソートする方法を教えてほしいの。
どうやるの?具体的に教えてよ。コード書いて。
489デフォルトの名無しさん:2013/04/22(月) 19:57:40.66
>>488
ググればわかんだろ。甘ったれんな。出直してこいはなったれ。
490桃白白:2013/04/22(月) 20:09:08.54
>>489
それは桃白白が言った台詞だよ。尊敬してる人の言動は感染するって言うけれど、
桃白白にあこがれてるの?桃白白は他人の真似事をするんじゃなくて確固たる
自分を持っていてダンディでアダルティな人が好き。
491デフォルトの名無しさん:2013/04/22(月) 20:22:13.27
「自分を棚上げして、何言ってるんだ?」という指摘であることに気付けないのかな?
492桃白白:2013/04/22(月) 20:30:36.33
>>491
え? どういう意味? もっかいちゃんと説明して。
493片山博文MZパンク ◆0lBZNi.Q7evd :2013/04/22(月) 20:43:05.91
フィールド集合を配列にして比較関数でインデックスを用いて比較
494桃白白:2013/04/22(月) 23:01:16.95
>>493
    〃〃∩  _, ,_
     ⊂⌒( `Д´) < ヤダヤダ!
       `ヽ_つ ⊂ノ
              コード書いてくれなきゃやだーわかんないー
495桃白白:2013/04/22(月) 23:03:18.43
>>481
頭の回転が良くて応用力のある人が考えた回答はまだなの?
桃白白首を長くして待ってるんだけど。このままじゃ桃白白あの動物になっちゃうよ?
496桃白白:2013/04/22(月) 23:12:10.89
497デフォルトの名無しさん:2013/04/22(月) 23:15:40.52
◆じゃあのさんの入れ知恵◆
じゃあのさん来た! 次スレ

26:以下、名無しにかわりましてVIPがお送りします[]
2013/04/22(月) 22:59:02.35 ID:8TN30C6y0
じゃあ、こっからが情報戦レクチャーに入るぜwww
敵の資金源をおまいらでも一枚噛んでぶっ潰す方法だwwww
不買運動やデモは単なる手段でしか無いwww
俺が求めるのは更にその先だwwww

--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
http://hayabusa.2ch.net/test/read.cgi/news4vip/1366637744/
498片山博文MZパンク ◆0lBZNi.Q7evd :2013/04/22(月) 23:44:56.26
Class Human
  Dim Fields(1 To 3)
End Class

Sub Sort(ByRef Humans, FieldIndex)
...
result = Compare(Humans(i).Fields(FieldIndex), Humans(j).Fields(FieldIndex))
...
End Sub
499デフォルトの名無しさん:2013/04/23(火) 00:38:52.56
パイパイおやすみ
よい眠りを
500デフォルトの名無しさん:2013/04/23(火) 01:03:15.41
(永眠的な意味で)
501桃白白:2013/04/23(火) 19:14:31.05
          ____         _ _ _ _ _ _ _ _ _ _ _ _ _ _
       /_ノ  ヽ、_\      ( もう・・・私のばか・・・・!!!
.     / (● ) (● )\   (  また本心と・・・・違うこと・・言っちゃったお・・・
    ///////(__人__)///\   ◯   ほんとは・・・素直になりたいのに////
    |              | 。O   ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄  ̄
     \           /
    ノ            \
  /´      >>500     ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
502桃白白:2013/04/23(火) 19:16:43.13
>>498
配列でやっちゃうわけねーなるほどー。
503デフォルトの名無しさん:2013/04/23(火) 22:14:31.98
配列じゃなくてADOのインメモリレコードセット使うと楽ちん
高機能すぎて鼻血出る
504デフォルトの名無しさん:2013/04/23(火) 23:27:40.18
>>502
>>483>>493>>498が思いつかないようならプログラムやめた方がいいよ、お前
505桃白白:2013/04/24(水) 00:39:00.67
>>503
.NETのDataTableみたいなもの?ちょっと使ってみようかな。
506デフォルトの名無しさん:2013/04/24(水) 17:06:46.79
ADOは本来の用途じゃないから楽ではないよ
あとから何やってるかわからなくなるし
507桃白白:2013/04/24(水) 17:22:47.03
>>506
ちょっとまってて桃白白使ってみるから。
鼻血出るほどと言われて試さないのは大和魂じゃないよ。
508桃白白:2013/04/25(木) 01:29:56.44
ADODB.Recordsetを使ってみたのだけれども、桃白白がやりたかった
複数のフィールドを指定してソートすることが簡単にできた。
509デフォルトの名無しさん:2013/04/25(木) 01:33:26.11
ADODB.Recordsetって
あどーどぶ れこーどせっと であってる?
510デフォルトの名無しさん:2013/04/25(木) 04:27:39.28
ADODB = ADO + DB
三文字、二文字で区切ったほうがいいのでは?
511デフォルトの名無しさん:2013/04/25(木) 10:15:51.43
日本人って、頭文字繋げた略称を
単字読みしないで新たな名前付けるの好きだよね

いや、外国でもローマ字読みとかですんなり読める場合は
単字読みしない場合も多いけど、日本人ほどなんでも無理矢理ってことは無いよな
512デフォルトの名無しさん:2013/04/25(木) 10:44:20.06
お前が感じただけのことをさも日本人全部がそうのように言われても
あと外国でのローマ字読みってどういうやつなんだ?
513デフォルトの名無しさん:2013/04/25(木) 14:44:02.95
National Aeronautics and Space Administration

を、「NASA」と略して、アメリカでも「ナサ」と読むだろ?
514デフォルトの名無しさん:2013/04/25(木) 16:06:41.64
ADOもOLEもMSではそのままエイ・ディー・オー、オー・エル・イー
もっともOLEはサードパーティが勝手にオーレと呼んでたな
515デフォルトの名無しさん:2013/04/25(木) 17:50:57.81
だよな
516デフォルトの名無しさん:2013/04/25(木) 19:48:10.46
option Explicit は オプション エクシプリシットであってる?
517デフォルトの名無しさん:2013/04/25(木) 20:01:55.31
外国(笑)
518デフォルトの名無しさん:2013/04/26(金) 00:36:49.85
悔しかったの?
519デフォルトの名無しさん:2013/04/26(金) 00:43:49.76
>>514
公式でオーレって言ってたぞ
DAOはダオって言う人多いのにADOがアドじゃないのはなぜだ

IEEE,SAP,ISOなんかは半々くらいだな
520デフォルトの名無しさん:2013/04/26(金) 01:43:33.53
IEEEはまた別物だろ

公式が、単字読みでもローマ字読みでもなく
「アイトリプルイー」なんだから

つーかIEEEは何と半々だって言うんだ?
「アイトリプルイー」以外の読みを聞いたことないんだが・・・
「アイイーイーイーw」と半々?「いえええw」と半々?
どっちもネタ以外では一度たりとも聞いたこと無いけど
521デフォルトの名無しさん:2013/04/26(金) 09:47:08.63
>>516
あってる。けど、Google翻訳さんの音声を聞くと、ィエクスプリスォだった。つまり、ggrks
522デフォルトの名無しさん:2013/04/26(金) 09:49:03.52
アルファベットで読もうよ!
ADODBはエーデーオーデービーだよ!
ISOはアップルだよ!わかっかな!?
523デフォルトの名無しさん:2013/04/26(金) 11:16:30.77
それ、面白いつもり?
524桃白白:2013/04/26(金) 13:24:19.78
>>522
なんでや?
525桃白白:2013/04/26(金) 23:24:20.43
     |┃三        / ̄\
     |┃          |     |
     |┃         \_/
 ガラッ. |┃         __|__
     |┃  ノ//   ./:::\:::/:::\
     |┃三    / <●>::::::<●> \    うおおおおおおおおおおお!!
     |┃    /   (__人__)    \  こんばんわーーーーーー!!!
     |┃     |       l;;;;;;;l      |
     |┃三   \      l;;;;;;;l     /
     |┃三   / ̄ ̄ヽ`ー'ノ ̄ ̄ ̄\

桃白白、Recordsetのプロパティをながめてたんだけどさ、意味深なことが書かれていることに気づいちゃったんだよね。
これなんだけど。これどうやってんのかな?配列のソートでも同じことできる?誰かやり方わかる人いる?桃白白にも教えて。

Sort プロパティ
http://msdn.microsoft.com/ja-jp/library/cc426789.aspx

* データは、物理的に並べ替えられるわけではなく、
* インデックスで指定されている順序でアクセスされるだけなので、
* ソート処理は効率的です。
526デフォルトの名無しさん:2013/04/27(土) 01:26:29.76
>>525
その直前に
>インデックスがない場合、Sort プロパティに指定された各フィールドに対して一時インデックスが作成されます
って書いてあるのが読めないのか?読めるけど意味がわからないのか?
527デフォルトの名無しさん:2013/04/27(土) 11:25:45.35
桃白白はなんでVBScript使ってんの?
Cとか使ったほうがいいんじゃない?
528桃白白:2013/04/27(土) 15:45:24.70
>>527
Cはポインタが難しいって聞いてます。コンパイラ用意しなきゃいけないし。
桃白白簡単なのがいいからさ。VBScriptはWindowsインストールしたらすぐに使えるでしょ。
メモ帳で書いて即実行できる。
529デフォルトの名無しさん:2013/04/27(土) 15:53:03.06
確かに環境整っている唯一PCの場合、VBSで作りこむ必要も無いが、
移植や現地デバッグを加味した場合、VBSの魅力は高いわなぁ。
530デフォルトの名無しさん:2013/04/27(土) 19:43:58.41
まあそれはわかる
でもそれでアルゴリズムやデータ構造の話?してるのって
なんか目的と手段がごちゃまぜになってる感じっぽいなー
531デフォルトの名無しさん:2013/04/27(土) 20:09:28.92
>>530
だよな
>>528みたいな実用主義でいくなら
結果さえ出せればいいはずなのに、何故か過程に無駄に拘るよね
532桃白白:2013/04/27(土) 23:23:22.33
>>530
黙れ、VBScriptの話をしろ。

>>531
死ね。
533デフォルトの名無しさん:2013/04/28(日) 00:31:23.36
実用主義ではないんだろうが、知識がいい加減でちゃんと勉強してない
自分の理解したいものだけ理解する感じだな
534桃白白:2013/04/28(日) 00:52:49.86
>>533
いいかげん気付こうよ。相手を下げることによって自分を上げようとするのってサイテーだよ。
いくら桃白白をバカにするような発言しても賢く見えるわけじゃないんだよ。
恥ずかしいだけだよ。桃白白がかわいいから桃白白に劣情を抱いてしまって
そうしてカッコつけてるつもりなんだろうけど、桃白白はそういうの嫌いだよ。
535デフォルトの名無しさん:2013/04/28(日) 01:00:19.77
>>528
バブルソートプロフェッショナルならポインタくらい余裕だろ
536桃白白:2013/04/28(日) 01:49:32.26
>>535
バブルソートプロフェッショナルってなにそれ、ダサいよそういうの。やめなよ。
桃白白がクラウドだったら迷わずそう言ってるよ。
537デフォルトの名無しさん:2013/04/28(日) 02:11:13.05
ダブルクリックしてWSでの実行時、毎回タスクバーに表示するようにしたいんだけど可能?どやんの??
タスクリスト開いてプロセス探して強制終了するのめんどいの!
538デフォルトの名無しさん:2013/04/28(日) 02:31:12.37
できるよ。Googleに聞けばわかる
539デフォルトの名無しさん:2013/04/28(日) 20:37:56.78
>>536
じゃあ訂正するよ

エリートバブリストならポインタくらい余裕だろ
540デフォルトの名無しさん:2013/04/29(月) 17:06:52.55
最近の桃は感情の防波堤決壊気味でますます可愛い
541デフォルトの名無しさん:2013/04/30(火) 23:52:18.94
とあるテキストファイル二つ(txtA、txtB)があって、
それぞれ文字列が何行か入っている。
txtA    txtB
------------------------
ごりら   しまうま
らいおん  きつね
とら    らいおん
      桃白白
      かば

txtAの各行の文字列が、txtB中に存在するかを判定するかを
判定するようなものを作りたいんだけど、簡単にできる?

色々な処理をVBSで作りこんでるんだけど、この処理だけが
面倒でエクセルに飛ばしてブイルック判定して結果出力して
再度VBSの処理に戻るみたいなナンセンスな形だから止めたいんだけど。

結果として
 ×ごりら
 ○らいおん
 ×とら
みたいな物が得られれば何でも良いんだけど
とりあえず桃白白、揺ぎ無い唯一回答教えれ。
542桃白白:2013/05/01(水) 01:07:51.22
>>541
なんで桃白白限定なの。やっぱりさー、掲示板の醍醐味はみんなであーでもないこーでもない
とワイワイガヤガヤやるところにあると思うんだよね。そっちのほうが絶対楽しいし、
考えを広げることができると思うんだよね。じゃあさみんなで意見出し合おうよ。
543桃白白:2013/05/01(水) 01:28:51.98
>>541
オーソドックスにやるならみんな大好きScripting.Dictionaryでいんじゃないか。
https://friendpaste.com/1IarLTVe9Zyphn4YwUNjIV
544桃白白:2013/05/01(水) 18:58:09.08
>>541
Bを配列格納してAの1点1点を検索とかは?
545デフォルトの名無しさん:2013/05/01(水) 22:18:47.98
ADOかDAOだと思ふ

ところで、ByRef/ByValをつけなかった場合、ByRefになるって本当?
546デフォルトの名無しさん:2013/05/01(水) 22:30:49.28
>>545
素直にレファレンス見れば?
547デフォルトの名無しさん:2013/05/01(水) 23:58:46.31
chinko = "min"
msgbox manko( chinko )
sub manko( chingching )
chingching = "max"
end sub
548デフォルトの名無しさん:2013/05/02(木) 00:05:13.14
すみません、訂正します。
chinko = "full"
call manko( chinko )
msgbox chinko
sub manko( chingching )
chingching = "empty"
end sub
549デフォルトの名無しさん:2013/05/02(木) 00:12:06.14
>>542>>543>>544

>色々な処理をVBSで作りこんでるんだけど、この処理だけが面倒で

どうみても釣りですほんとうにご苦労様でした
550デフォルトの名無しさん:2013/05/02(木) 01:50:16.29
vb,vba,vbs :ByRef
vb.net   :ByVal

>>548
sub manko( chingching )
if chingching = "full" then
chingching = "empty"
end if
end sub
551541:2013/05/02(木) 15:51:21.00
>>542-545
サンクス。
とりあえずいけそうな感じで組みあがって、全く別問題に躓いた。
知ってたら教えれ。知らんかったら調べてから教えれ。

実はこの>541のテキストファイルのtxtA、とあるバイナリファイルを
無理やりテキストで数文字分取得したもので、取り出したテキストに
一部スペースが入ってたりするんだけど、このスペースでとらぶった。

単なるスペースに見える部分の一部が、バイナリエディタでは
00と20の2種類有る事がわかったんだけど、これをうまい具合に
同じ20のスペースとして取り扱う方法教えれ。

わかりにくいからイメージな。
txtAをテキストエディタで開くと
 らいおん[_][_][_][_][_][_] ([_] = スペース)

バイナリエディタで開くと[_][_][_][_][_][_]の部分が
 20 20 20 00 20 20

見たいな感じで00が混じってる状態な。
ちなみにtxtBはバイナリからの読み込みとかではなく、全てのスペースが
バイナリエディタ上で20の状態。

全く同じ文字列に見えて、検索ヒットしねぇから原因調べるまで
3時間食ったわ。

桃白白、揺ぎ無い唯一回答を即答でくれ。
552桃白白:2013/05/02(木) 16:05:30.71
>>551
だからなんで桃白白限定なの。
桃白白「解せぬ」
553桃白白:2013/05/02(木) 17:12:35.22
>>551
邪道だけど、IEに取り込んだ文字列を表示させて保存するとかは?
IE.Document.body.innerHTML
= IE.Document.body.innerHTML & らいおん[_][_][_][_][_][_]
IEだとスペース勝手に削るから、00も20もなくなるかも
後はこれをテキストファイルに保存

試してないからうまくいくかわからないわ
554桃白白:2013/05/02(木) 17:17:51.25
>>553
桃白白の名前騙るのやめてくれない?
555桃白白:2013/05/02(木) 17:27:25.13
>>554
君こそ偽者じゃないのか?
556桃白白:2013/05/02(木) 17:33:33.43
>>555
はあ・・・うぜ
557デフォルトの名無しさん:2013/05/02(木) 19:42:08.56
危なく答えるところだった
桃白白がんばれよ
558桃白白:2013/05/02(木) 19:52:22.85
お前ら全員偽者、コードを見れば一目でわかる。
見ろ、これが本物のコードであり、本物の桃白白だ。

>>551
friendpaste.com/7LSSIkxjeQp0eIIts3cANJ
559桃白白:2013/05/02(木) 19:55:38.29
>>557
答えなよ、桃白白の名が示されたとき、それは最大限の礼儀をもって
対応しなければならないときなんじゃない?
桃白白が言ってることなんか間違ってる?(間違ってない)
560桃白白:2013/05/02(木) 20:30:16.77
>>551
ADODB.Streamはヌル文字が含まれているときに行の分割がうまく行われないね
friendpaste.com/LTUTgTw1AHdJO3sjAZkrK
561デフォルトの名無しさん:2013/05/03(金) 00:44:01.48
Chr()でやれ
562デフォルトの名無しさん:2013/05/03(金) 00:46:15.24
Chr()とAsc()とReplace()と
563デフォルトの名無しさん:2013/05/03(金) 09:58:03.95
エンコーディングの前提が無い時点で正確な議論は出来ない
564デフォルトの名無しさん:2013/05/03(金) 17:26:05.82
とりあえずヌル文字が入ってる時点でテキストファイルとは認めん
565桃白白:2013/05/03(金) 17:51:23.52
>>564
なんでや?
566デフォルトの名無しさん:2013/05/04(土) 01:37:12.18
バカか?
バイナリやん
567桃白白:2013/05/04(土) 02:21:46.43
>>566
文字ゆうてるやんか。バイナリやったらヌルバイナリゆうはずやろ。
ヌル文字は文字や。
568デフォルトの名無しさん:2013/05/04(土) 05:09:40.91
UTF16やUTF32は文字の中に
NULL文字が入っているけど
普通にテキストだよ。
569デフォルトの名無しさん:2013/05/04(土) 12:13:15.22
文字の一部バイトが00でも、普通はそれをヌル文字とは言わない
570桃白白:2013/05/04(土) 12:22:12.60
>>569
なんでや?
571デフォルトの名無しさん:2013/05/04(土) 12:25:45.21
いるよな意味論を理解できない奴
572デフォルトの名無しさん:2013/05/04(土) 19:16:14.19
>>570
>>569が正しいかどうかは知らんが、常識的に考えて文字の一部は文字じゃないだろう
573デフォルトの名無しさん:2013/05/04(土) 20:47:51.82
>>572
体の一部が男性器だったらその人は男性でしょうが。
バカにしないでくれる?桃白白そんな話じゃないってわかってるから。
574桃白白:2013/05/04(土) 20:48:42.18
 ':,     ',   _____,,.. -‐ ''"´ ̄ ̄`"'' ー 、.,          /
  ':,    ',   >' ´             `ヽ.       /  し バ
   ':,     /                    ヽ.     ,'   な カ
    ':,   ,:' /   /   ,'´        ヽ.     ':,/Ti  i.   い に
. \    ,' /   /  ,'  !      ;   ',  ヽ__ /::::| | |   で 
   \  / ,'   ,'!  /!  !   ;  /!   i  「:::|'´::::::::| | .!.   く
     ∠__,!   / !メ、」_,,./|   /! / !   ハ! |__」<:::::」」 |.   れ
`"''  、..,,_  !  / ,ァ7´, `iヽ| / |ヽ、」ニイ、 |  ! |^ヽ、」」  |.   る
       i,/レイ i┘ i. レ'   'ア´!_」 ハヽ|   |   | ∠   ! ?
─--     /   !  ゝ- '       !    ! !   |   |  `ヽ.
      /   7/l/l/   、     `'ー‐ '_ノ!   |  i  |    ` ' ー---
,. -──-'、  ,人    `i`ァー-- 、  /l/l/l |    !. |  |
       ヽ.ソ  `: 、.   レ'    ',   u ,/|    |  !  |
 そ  知  i  /ーナ= 、 '、    ノ  ,.イ,カ    !  |  |
 の   っ  .|ヘ./|/レへ`>-r  =ニi´、.,_ |  i  ハ  ! ,'
 く   て   !     _,.イ´ヽ.7   /  /:::| /レ'  レ'レ'
 ら  る   |   /7:::::!  ○O'´  /::::::レ'ヽ.
 い  .わ  .|  /  /:::::::レ'/ムヽ.  /::::::::/   ヽ.
 ! !  よ   ! ./  ,':::::::::::!/ ハ:::::`´:::::::::::;'    ',
575デフォルトの名無しさん:2013/05/04(土) 22:56:07.27
桃白白=うんこ
576桃白白:2013/05/05(日) 03:02:12.66
>>575
桃白白うんこじゃないけど、Javaなどのようにコンパイル時に型のチェックが
行われる言語だとクラスの代替に連想配列を使うことはあまりないけど、
VBScriptは型が違うことによるエラーが実行時にならないとわからないから、
連想配列を使うことによるデメリットがなくて、連想配列をもっと積極的に
使うべきなのかも知れないよね。そこんとこどう思う?>>575的にはどう整理してる?
577デフォルトの名無しさん:2013/05/05(日) 04:02:50.03
>>576
業務ではDictionary使わないことがないくらい使ってるよ
大量のデータを扱う場合めちゃ遅いけど
コードの簡潔さとトレードオフでDictionaryを選ぶ てか使え、独自の検索アルゴリズムやらはバグの元だからやめれ、あるものは使え
C++のmapみたいに捕らえて使ってるからDictionaryのDictionaryなんて当たり前な感じ
ただ関数の戻り値でDictionaryを返す場合はちゃんとDictionaryのKey, Valueの型をコメントしておかないと
後で読んだとき何が入ってるのかわからなくなるからコメントだけはしっかり書くこと
あと、桃白白=うんこ
578桃白白:2013/05/05(日) 04:19:47.12
>>577
なるほどー。ところでDictionaryのキーの順番が追加した順に保持されることは
アンドキュメンテッドじゃん?それってどうしてる?気にせずキーの順番が保持されることを
前提に使ってる?それともラップしてキーを別に管理してる?どうしてる?
桃白白前から疑問に思ってたんだよねー、詳しそうだからさ、教えて。
579デフォルトの名無しさん:2013/05/05(日) 04:35:08.47
俺もAdd順ていう情報は信じていいものか分からなかったから
キーの順序が重要な場合はDictionaryとペアでCollectionにkeyを追加してったものを使ってる
でもまあAdd順じゃねえの
580デフォルトの名無しさん:2013/05/05(日) 04:57:38.16
ってVBSか 配列にでも突っ込んどけばいいと思う
581桃白白:2013/05/05(日) 05:05:02.68
>>580
Keyの順番はDictionary外で管理する派ね。なるほどー。
配列は追加する数が決まってないと大変なんだよね。あれはね、諸刃の剣だわ。
CollectionがVBScriptにもあったらいんだけどね。
誰かマイクロソフトに怒鳴り込んでくれないかな。ちょとーCollection使わせなさいよーて。
582デフォルトの名無しさん:2013/05/05(日) 12:54:00.62
そうは言うけどこういうの作っとけば割と楽よ

Function CreateArray()
  CreateArray = Array()
End Function

Sub AddArray(a, e)
  ReDim Preserve a(UBound(a)+1)
  If IsObject(e) Then
    Set a(UBound(a)) = e
  Else
    a(UBound(a)) = e
  End If
End Sub


[ Sample ]

a = CreateArray()
AddArray a, "1"

b = CreateArray()
AddArray b, new RegExp
583桃白白:2013/05/05(日) 19:49:43.23
>>582
なるほどー。桃白白それ使うことにする。
584デフォルトの名無しさん:2013/05/05(日) 20:03:53.43
>>576
>VBScriptは型が違うことによるエラーが実行時にならないとわからないから、
>連想配列を使うことによるデメリットがなくて
実行時に(型の不一致による)エラーがでる(可能性がある)ことはまさにデメリットなんだが
ただしそれは連想配列に固有の問題ではない
議論の前提条件としてまったくなりたたないんだが
585桃白白:2013/05/05(日) 20:22:22.95
>>584
で?
586デフォルトの名無しさん:2013/05/05(日) 20:34:31.71
587桃白白:2013/05/05(日) 21:01:50.12
>>586
桃白白はお前のことを友だちが少ない人なんだろうなくらいにしか思わないよ。
他人とまともに会話した経験が皆無なんだろうなって思う。リンク貼るだけで、
言葉を紡いで意志を伝達することができないことからも、コミュニケーションが
苦手な人なんだろうなって思う。その人が一生懸命桃白白と会話しようとしてるんだって
思うと多少同情がわかないではないけれど、桃白白はカウンセラーじゃないからやめてほしい。

会話下手な人の共通点「否定」 | 会話・恋愛・コミュニケーション・人間関係克服ブログ
http://kenjismile.com/601/
588575:2013/05/05(日) 21:23:01.69
お、俺じゃねーからな!
589デフォルトの名無しさん:2013/05/07(火) 06:34:24.60
>>551
正規表現オブジェクト(RegExp)でReplaceすれば?
毎回Testしてもいいけど読み込んで即Replaceしておいた方が後々楽。
テキスト処理なら正規表現は基本だし。
590桃白白:2013/05/11(土) 02:52:35.98
桃白白VBScriptのプログラムでどう書けばいいのかわからないことがあるのですが、
ここで質問してもいいでしょうか?桃白白困っています。聞いてもいいですか?
591桃白白:2013/05/11(土) 03:11:09.83
なんでもこいや。
592桃臼臼:2013/05/11(土) 04:26:18.29
やあ!お元気ですか
593桃白白:2013/05/11(土) 04:31:08.49
msgbox "元気ですかーっ!"
594桃白白 ◆9Jro6YFwm650 :2013/05/11(土) 04:36:59.08
トリップつけることにした。

>>591
ExcelにMROUNDって関数があるじゃん。桃白白その関数をVBScriptで
実装したいんだよね。そんな欲求が桃白白にあるの。Excel使えっていう
下賎な考えを持つ人もいるかもしれないけれども、桃白白はMROUNDを
VBScriptで実装したいというただただピュアなハートを持っちゃってるわけ。
でもどう実装すればいいのか皆目検討が付かないの。コードを教えてください。お願いします。
595デフォルトの名無しさん:2013/05/11(土) 07:44:34.36
>>594
本気で皆目見当がつかないなら小学校の算数からやり直して来い

MsgBox MROUND(10, 3) '10 を 3 の倍数になるように丸めます (9)
MsgBox MROUND(-10, -3) '-10 を -3 の倍数になるように丸めます (-9)
MsgBox MROUND(1.3, 0.2) '1.3 を 0.2 の倍数になるように丸めます (1.4)
MsgBox MROUND(5, -2) '5 と -2 の符号が異なるため、計算結果はエラー値になります (#NUM!)

Function MROUND(Arg1, Arg2)
Arg1 = CCur(Arg1)
Arg2 = CCur(Arg2)
If Sgn(Arg1) <> Sgn(Arg2) Then Err.Raise 5
Dim x, m
x = Fix(Arg1 / Arg2)
m = Arg1 - (Arg2 * x)
If Abs(m) >= Abs(Arg2 / 2) Then
x = x + 1
End If
MROUND = Arg2 * x
End Function

CCurしてるのは浮動小数点の誤差を避けるためな
xが倍率、mが余り
596桃白白 ◆9Jro6YFwm650 :2013/05/12(日) 00:28:47.46
   ∩___∩
   | ノ      ヽ
  /  ●   ● |  みんなーーこんばんわーー!!
  |    ( _●_)  ミ  母の日おめでとーー!!
 彡、   |∪|  、`\  みんなどうせ母親とは疎遠になってるだろうから
/ __  ヽノ /´>  )  このスレのマザーテレサである桃白白に日頃の感謝の言葉を書き込んだらいいよ
(___)   / (_/   桃白白いつもありがとーみたいなこと書き込んじゃったらいいよ、今日の23:59まで受け付けてるから
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)
597桃白白 ◆5us8T4oj.. :2013/05/13(月) 00:01:09.67
            ___     _________
     ____,../     \   | |              |
    ノ   /           \ | |              |
  /   /                | |              |
 |     |::..            ...::::| |              |
 ヽ     .-一ー_~、⌒)^),-、;;;;:::/|_|_______|
  ヽ ____,ノγ⌒ヽ)二二二   | |  |
598デフォルトの名無しさん:2013/05/13(月) 01:38:56.74
桃白白はともかくここ残ってる奴はどういうやつだろうな
むたぐち、吉岡らへんはさすがにVBSなんか捨てただろうけど
むたぐち掲示板にいた奴らは確実にいそう
599桃白白 ◆9Jro6YFwm650 :2013/05/15(水) 06:57:18.71
>>595
CCurしたら小数点4桁までしか扱えないと思うの(ふるえ声)
600桃白白 ◆9Jro6YFwm650 :2013/06/07(金) 11:48:06.56
   ∩___∩
   | ノ      ヽ
  /  ●   ● | みんな──!!
  |    ( _●_)  ミ
 彡、   |∪|  、`\
/ __  ヽノ /´>  )
(___)   / (_/
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)

桃白白、文字列を数値にしたいんだけど、いいやり方知ってる?
ハッシュテーブル実装したくてさ、できるだけバラけるようなやつがいんだけど、知ってたら教えて。
桃白白困ってるの。
601片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/07(金) 12:17:08.58
hash = 0
for i=1 to len(s)
hash = hash * 256
hash = hash + asc(s(i))
next i
602桃白白 ◆9Jro6YFwm650 :2013/06/07(金) 12:24:20.40
>>601
あ、片山さんだ。
ありがとうございます。
603デフォルトの名無しさん:2013/06/07(金) 15:30:31.31
hash = 0
for i=1 to len(s)
hash = hash * 2
hash = hash xor asc(s(i))
next i
こっちの方がいい。あと、オーバーフロー対策が必要
604桃白白 ◆9Jro6YFwm650 :2013/06/07(金) 16:15:28.12
>>603
ありがとうございます。
オーバーフローはあれですよね、ビットの先っちょをあれすればいんですよね。
605桃白白 ◆9Jro6YFwm650 :2013/06/08(土) 15:32:49.00
みんな聞いて、まるまるハッシュっていうのがあるらしいんだけど、
これかわいくない?超かわいくない?これVBScriptで実装したら名前はかわいいし、
実装したら桃白白超うれしいし、一石二鳥じゃない?誰かやらない?

tanjent: MurmurHash, final version.
http://tanjent.livejournal.com/756623.html
606デフォルトの名無しさん:2013/06/08(土) 15:45:42.40
>>605
お前いい加減うざいよ
607デフォルトの名無しさん:2013/09/01(日) 20:59:03.82
WSHて
608デフォルトの名無しさん:2013/09/12(木) 15:54:24.99
桃白白のおっちゃんどこ行った?
609デフォルトの名無しさん:2013/09/16(月) 19:32:30.27
何か自治スレ議論が活発になったころに消えたよなあ
タイミングよかったのかよくわkらん
610デフォルトの名無しさん:2013/09/18(水) 17:40:07.28
みんなのために話題提供してたのが桃白白のおっちゃんだけで
外野はカスばっかりだったわ
611デフォルトの名無しさん:2013/09/18(水) 19:47:38.31
と、桃白白は思うのであった。
612デフォルトの名無しさん:2013/09/18(水) 21:28:20.36
桃白白は、おっちゃんなの?
613桃白白:2013/09/18(水) 21:36:39.27
おっちゃんです
614デフォルトの名無しさん:2013/09/19(木) 15:23:54.17
せっかくのネカマプレイだから、そうあからさまに言わなくても
615桃白白 ◆9Jro6YFwm650 :2013/09/21(土) 09:10:01.86
>>610
桃白白おっさんじゃないけどね。
これ桃白白。
http://www.bigthunder.jp/photo/1/102/102050/big/b0326003.jpg

なにか話題ある?じゃあ第1回FizzBuzz大会でも開催する?
VBScriptでFizzBuzzを必死に実装する大会開催するっきゃないっしょ。
やるっしょ?いつやるの?いまやるしかないっしょ!!
じゃあ問題書くよ。

1から1000までの数字で、数字が3で割り切れるときはFizzと出力し、
5で割り切れるときはBuzzと出力し、3で割り切れて5で割り切れるときはFizzBuzzと出力し、
7で割り切れるときはMozukuと出力し、3で割り切れて7で割り切れるときはFizzMozukuと出力し、
5で割り切れて7で割り切れるときはBuzzMozukuと出力し、3で割り切れて5で割り切れて7で割り切れるときは
FizzBuzzMozukuと出力し、3で割り切れず5で割り切れず7で割り切れないときは数字を出力してください。

数字を出力する条件や出力する文字列が変わっても容易に修正できるよう頑張って実装してください。
数字を出力する条件が増えても容易に拡張できるよう工夫してください。

やってみて、桃白白も全力出すからみんなこれやってみて。
616デフォルトの名無しさん:2013/09/21(土) 23:40:34.01
白桃、名前空間つかってZIPの圧縮解凍する汎用的な関数作って。変数名は歴代総理大臣や偉人の名前で。関数名は日本史の時代名で。
どのくらいでできる?
617デフォルトの名無しさん:2013/09/22(日) 11:53:46.21
>>615
ここは小学校じゃないよ?

君はそれを全力出さないと作れないのか?
618桃白白 ◆9Jro6YFwm650 :2013/09/22(日) 13:24:09.79
>>617
そういうことはまず作ってから言わないと。まず作りなよ。
作ったうえで俺にとってこの問題は楽勝だった小学生レベルだと言うべきだよ。
まあそういうことを言うこと自体ちょっと痛いと桃白白は思うけども、何にも作ってないのに
小学生がどうとかこうとか足をなめたいとかいうのは青少年育成条例に引っかかると思うよ。
倫理的にまずいよ。>>615が難しければバブルソートでもかまわないよ。作ってみてよ。
619デフォルトの名無しさん:2013/09/22(日) 14:28:10.94
620デフォルトの名無しさん:2013/09/22(日) 14:51:10.50
変更可能なのなんてvisitor作ればすぐだけどvbsだからな・・
面倒くせえ
621デフォルトの名無しさん:2013/09/22(日) 15:04:13.36
FizzBuzz問題は蛇足や無駄の無い無駄なテクニックをたしなむためにある
622デフォルトの名無しさん:2013/09/22(日) 15:30:16.69
せめてデフォルトで可変配列があれば。
623デフォルトの名無しさん:2013/09/22(日) 15:41:22.33
624デフォルトの名無しさん:2013/09/22(日) 15:43:54.49
おっぱいのおじさん、次の出して
簡単なやつおね
625桃白白 ◆9Jro6YFwm650 :2013/09/22(日) 15:46:24.39
>>624
VBScriptのスレなんでVBScriptで書いてよ。
626デフォルトの名無しさん:2013/09/22(日) 15:46:47.19
だって知らないもん
627桃白白 ◆9Jro6YFwm650 :2013/09/22(日) 15:47:52.51
>>626
じゃあC++のスレに行くべきだと思うよ。
628デフォルトの名無しさん:2013/09/22(日) 16:34:32.27
よ〜し。FizzBuzz定番のあれ行っちゃうよ

Wscript.Echo "1"
Wscript.Echo "2"
Wscript.Echo "Fizz"
Wscript.Echo "4"
Wscript.Echo "Buzz"
Wscript.Echo "Fizz"
Wscript.Echo "Mozuku"
' : (省略)
Wscript.Echo "Buzz"
Wscript.Echo "Fizz"
Wscript.Echo "997"
Wscript.Echo "998"
Wscript.Echo "Fizz"
Wscript.Echo "Buzz"
629桃白白 ◆9Jro6YFwm650 :2013/09/22(日) 19:26:58.87
見せてやるよ桃白白の本気ってやつをな
https://friendpaste.com/3GeyDNYwCMIQn8WrhJ5oVN
630デフォルトの名無しさん:2013/09/23(月) 00:56:21.11
>>629
>>616

なんでスルーするの?おなにすとなの?
631デフォルトの名無しさん:2013/09/23(月) 20:59:14.95
名前空間つかって?クルクルパーなの?
632桃白白 ◆9Jro6YFwm650 :2013/09/25(水) 14:45:15.21
RubyにもPythonにも変数宣言なんてないんですよ!!
Option Explicitを付けるべきだって考えそろそろやめませんか?
VBScriptは次の時代にすすむべきだよ。
633デフォルトの名無しさん:2013/09/26(木) 03:05:25.46
Windows自動処理のための、WSHプログラミングガイド、2012
という本を買った
なぜ漏れが突然、WSHをしようと思ったか

インターネットの通信量を減らすため、
Win8、IE10で、画像の表示・非表示を、切り替えるのは、
ツール > インターネット・オプション > 詳細設定タブの
マルチメディア > 画像を表示する

この操作が面倒なので、これを一発で切り替えるツールを、
探したのですが、無さそうなので、自分で作って、公開しようと思った
検索すると、こういうツールを欲しい人は、他にもいるみたい

画像の表示・非表示を切り替えながら、regeditで、レジストリを見ると、
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
のDisplay Inline Images=yes,no
ここが、yes,noで切り替わる

ここまで調査しますた

>632
Option Explicitを付けたほうが、バグが減るのでは?
634デフォルトの名無しさん:2013/09/26(木) 07:20:23.11
>>633
2012?
635633:2013/09/27(金) 00:16:06.59
>634
買った本は、2009年、初版第1刷発行
2012年、初版第4刷発行となっている
内容は、2009年と同じなのかな?

この本には、WSHは今後、メジャーなバージョンアップは行われず、
PowerShellへ移行する、と書いてある
WSHは、Win8でも使えるのかな?

PowerShellの本は、文字が小さそうで、読めない
それにシェルスクリプトは、Linuxのものを見ても、
落とし穴が多く、難しいイメージがある
(うかつに空白を入れると、エラーになる)
それに比べると、VBScriptのほうが視認性がよく、簡単なんだけど
636桃白白 ◆9Jro6YFwm650 :2013/09/27(金) 20:07:56.85
>>633
Option Explicitでバグが減るならOption Explicitがない
RubyやPythonはバグだらけだよ。でもそうじゃないから
Option Explicitでバグは減らないし、必要ないと思うんだよね。
桃白白Option Explicitつけずにバブルソート実装してみたけど、
バグらなかったよ。試しにやってみてよ。Option Explicit要らないってわかるから。
637桃白白 ◆9Jro6YFwm650 :2013/09/27(金) 20:36:43.73
ところでみんなフォントは何使ってる?
桃白白は最近AdobeのSource Code Proっていうオープンソースフォントを
気に入ってるんだよね。かっこよくないこれ?
http://uploda.cc/img/img52456d54084ad.png
638633:2013/09/27(金) 23:48:31.11
>636
Option Explicitを付けないと、次のように、
n、mを書き間違えても、エラーにならないので困る

Dim n
n = 0
Call MsgBox(CStr(m))

人間の目に頼ると、神経を使います
心理上ギスギスする、目がしょぼつく
もう年だし、ツールを使わせて下さい!
639デフォルトの名無しさん:2013/09/28(土) 06:56:56.28
>>636
「必須」ではなく「有用」だよ

この違い、理解できるかな?

そして「必須」だという主張にはその例えで反論になるが
「有用」という主張に対しては、その例えでは全く反論に成らず
むしろ滑稽さを晒しているだけ
640桃白白 ◆9Jro6YFwm650 :2013/09/28(土) 07:21:37.63
>>638
n = 1のテストコードを用意すればいいじゃん。どうせテスト書くんだし。

>>639
プログラムで重要なのはロジック。ロジックを正確に動作させることがもっとも大事なことで、
変数の宣言はロジックと直接かかわりのあるものではないし、いわばノイズ。
バグを少なくしたければコードを書かなければいいということも聞くでしょ。
つまり変数宣言を取り除くことでコードが減り、コードが減ることでバグが減り、
ロジックが簡潔に表現されコードの品質が高まる。だからRubyもPythonも変数宣言が
ないのではないでしょうか?桃白白は滑稽じゃないよ高級なニワトリさんだよ。それはうこっけいでしょうがバカ。
641デフォルトの名無しさん:2013/09/28(土) 09:26:38.24
テストってどうやって書くの?
642デフォルトの名無しさん:2013/09/28(土) 09:59:04.86
>>641
関数の戻り値と期待値を出力すればいいよ
643デフォルトの名無しさん:2013/09/28(土) 17:59:30.52
>>632
RubyもPythonも未定義の変数を読もうとすればエラーが出る
VBScriptはエラーが出ないからOption Explicitを付けるべき
644桃白白 ◆9Jro6YFwm650 :2013/09/28(土) 18:06:28.09
>>643
え、そうなの?桃白白それ知らなかったからさ、じゃあいいけどさ。
645デフォルトの名無しさん:2013/09/30(月) 15:08:11.66
馬鹿炸裂
646デフォルトの名無しさん:2013/10/01(火) 11:16:53.00
メモ


2012年06月03日
無料で使える WSH(VBScript, JavaScript) のデバッガー
ttp://blog.livedoor.jp/sage_p/archives/51837411.html
Windows はスクリプトが弱いと言われていますが、地味に WSH が使えることが分かっています。
WSH(VBScript) と vbslib 4 と Visual Studio 2008 (有料版)を使えば、最強のスクリプト環境ができます。
(以下略
647デフォルトの名無しさん:2013/10/05(土) 10:57:56.68
非常にあたり前の話だが、暗黙の変数宣言で変数を利用する場合
常にグローバル変数が優先されて利用される
グローバル変数が存在しない場合のみ、ローカル変数として暗黙に変数宣言がされる

コードを再利用したいなら、Option Explicitを宣言しておいた方が(比較的に)安全
コードを再利用しないなら、Option Explicitを宣言してもしなくても、どうでも良い
648桃白白 ◆9Jro6YFwm650 :2013/10/05(土) 11:54:55.92
>>647
そうなんだよねー。グローバル変数撲滅キャンペーンを開催すればいんじゃないかな(名案)
649デフォルトの名無しさん:2013/10/05(土) 13:09:39.29
>>648
そんなことするより、暗黙の変数宣言をしないようにする方が簡単
650デフォルトの名無しさん:2013/10/05(土) 17:18:12.57
ほとんどクラスの中に入れちゃうとか。マゾいけど。

Class appclass
Public x
Public Sub main
WScript.echo x
End Sub
End Class

Dim a
Set a = New appclass
a.x = "hi"
a.main
651デフォルトの名無しさん:2013/10/05(土) 17:45:59.64
>>650
何がマゾいのか知らないけど
クラスは活用すべきじゃないかな?

そして、その例だとグローバル変数は撲滅されて無いよねw
652桃白白 ◆9Jro6YFwm650 :2013/10/05(土) 17:59:41.60
>>650
関数でいいでしょ。どうしてもグローバル変数を使いたいときには
Global_Valueみたいな長い名前にすれば間違って使うことなくなるっしょ。

Main

Sub Main()
 WScript.Echo "たおぱいぱーい"
End Sub
653デフォルトの名無しさん:2013/10/05(土) 18:41:20.46
on error resume next
でエラーはなくなるよ!
654デフォルトの名無しさん:2013/10/05(土) 20:33:14.88
>>652
HTMLを吐き出すプログラムを、クラス使わずに関数で作れって言われたらどうする?
655デフォルトの名無しさん:2013/10/05(土) 20:36:02.32
努力する。

難しいことを、自分がいま持っている
知識だけで実現する。

努力えらい。
656桃白白 ◆9Jro6YFwm650 :2013/10/05(土) 21:20:30.96
>>654
理由を聞く。
657デフォルトの名無しさん:2013/10/06(日) 09:20:08.80
>>654
作ればいいだけだろ?

その言った相手が親しい仲なら、クラス使った方が良いと諭すのもいいが
別に難しいものでもないんだし、どうしても作れって言うなら作ればいいだけの話

俺も金出しての依頼なら、文句言わずに素直に作るよ
658デフォルトの名無しさん:2013/10/06(日) 13:51:28.27
すげーな...俺は絶対にお断りだぜ...
個別のタグのプロパティとか、ネストしたタグとか...考えるだけで関数ではやりたくない...
659桃白白 ◆9Jro6YFwm650 :2013/10/06(日) 13:55:09.46
>>658
配列もScripting.Dictionaryもあるんですよ!
660桃白白 ◆9Jro6YFwm650 :2013/10/06(日) 14:50:01.71
ところでみんなVBScript書くときはテキストエディタなに使ってる?
桃白白はねMeryっていうテキストエディタ使ってる。マクロもVBScriptで書くことができる
超絶すてきなテキストエディタ。みんなも使ってみて。
661デフォルトの名無しさん:2013/10/06(日) 16:52:43.49
Meryもフリーのエディタとしては他人に薦めやすいが、俺自身は結局EmEditorに落ち着いた。
662デフォルトの名無しさん:2013/10/06(日) 18:38:03.11
>>661
EmEditorいいよねー。
この前初めて秀丸を使ってみたけど、これはダメだと思った。
663桃白白 ◆9Jro6YFwm650 :2013/10/10(木) 21:30:39.79
>>661
へーEmEditorは高速で高機能だって聞いてます。
664桃白白 ◆9Jro6YFwm650 :2013/10/10(木) 21:35:33.56
ForやDo WhileやDo Loop WhileはDo LoopとIfで代替できる。
Select CaseはIfで代替できる。
SubはFunctionで代替できる。
そうやってVBScriptで最小限のステートメントのみを使うことを
ハードボイルドVBScriptingと呼ぶことにしない?みんなどう思う?
こういうのっておもしろいと思わない?おもぶきぶかいよね。
665デフォルトの名無しさん:2013/10/10(木) 23:26:58.66
重武器武会
666デフォルトの名無しさん:2013/10/11(金) 16:01:00.57
桃白白は何で代替できますか?
667デフォルトの名無しさん:2013/10/11(金) 17:41:16.53
代替する必要無いだろ?

代替ってのは、有用だがデメリットがあり、その有用さを損なわずに
デメリットを削減出来る他の物や方法を探す行為

有用性が無いものは、廃棄や排除する方法を探す必要はあっても、
代替を模索する必要性は全く無い
668桃白白 ◆9Jro6YFwm650 :2013/10/11(金) 18:06:42.23
>>666
桃白白はなにものにもかえがたいとおといひとだよ。
かけがえのない桃白白。
669デフォルトの名無しさん:2013/10/11(金) 18:38:57.84
桃白白が言うハードボイルドVBScriptingみたいなことは、ロボットでもできる。
ロボットは正確に素早くプログラムを変換できるから、そんなことで
時間を無駄にする桃白白は、ロボット以下。
670デフォルトの名無しさん:2013/10/21(月) 17:54:22.57
Do LoopをDo LoopとIfで代替えするんだ...
そんで、SubをFunctionにすることで、Subの代替えとなるのか?

ハードボイルではなく、考えなしって気がしないでもない
まだ、グローバルな関数を捨て、すべてをClassで作成するという方が、ハードボイルドっぽい
671桃白白 ◆9Jro6YFwm650 :2013/11/08(金) 05:20:36.65
  /\___/\
/ ⌒   ⌒ ::\
| (●), 、 (●)、 ::|  あるでんてー、アルデンテー
|  ,,ノ(、_, )ヽ、,   :::|
|   ト‐=‐ァ'   .:::|
\  `ニニ´  .::/
/`ー‐--‐‐一''´\
672桃白白 ◆9Jro6YFwm650 :2013/11/08(金) 05:50:57.54
   ∩___∩
   | 丿     ヽ
   /  −   − |
   |    ( _●_)  ミ
  彡、    ヽノ ,,/    桃白白のVBScript講座始めるよー
  /     ┌─┐´
 |´  丶 ヽ{ .茶 }ヽ
  r    ヽ、__)ニ(_丿
 ヽ、___   ヽ ヽ
  と____ノ_ノ
PropertyにDefaultを付けるとプロパティ名を書かなくてもプロパティを参照できる。

Class clsList
 Dim Value
 Dim NextList
End Class

こういう線形リストがあったとすると

Class clsList
 Dim Value
 Dim m_Link
 Public Default Property Get Link()
  Set Link = m_Link
 End Property
End Class

Class clsLink
 Dim NextList
End Class

こうやってデータと構造を分離できちゃうわけ!やったね!!
673デフォルトの名無しさん:2013/11/08(金) 08:07:03.37
それが出来ることはもはや常識レベルだが
「デフォルトプロパティ」というのがバグの温床になりやすいから
それを避けるためにあまり使われないだけ

皆が知らないから使われてないのではなく
弊害が大きいから知っていても使わないだけのものを
勘違いしてドヤ顔で「講座」とか、どんだけ出遅れてて
どんだけレベル低いんだよw
674デフォルトの名無しさん:2013/11/08(金) 20:05:00.98
インターネット ゾーンにおける Internet Explorer 11 エッジ モードでの VBScript のサポート停止
ttp://msdn.microsoft.com/ja-jp/library/ie/dn384057(v=vs.85).aspx

ttp://vbscript.g.hatena.ne.jp/cx20/20130801/1375380329
> 以下のコードは、IE10 では動作しますが IE11 では動作しません。
  略

> これを回避する為には、明示的にドキュメント互換モードを指定する必要があるようです。
> <meta http-equiv="x-ua-compatible" content="IE=10">

ドキュメントモード
↓  VBS  JS  Canvas WebGL
7.0  ○   ○   ×   ×
9.0  ○   ○   ○   ×
10.0  ○   ○   ○   ×
11.0  ×   ○   ○   ○
675桃白白 ◆9Jro6YFwm650 :2013/11/09(土) 08:41:00.85
>>673
バカにしないでくれる?桃白白バブルソート実装できるんだけど!!
ところでさ、VBScriptって()つけなくても関数呼び出せるじゃん。

Function Test()
 Test = Test & "たおぱいぱい"
End Function

こう書いたとき再帰呼び出しなのかわかりにくくない?こういうときどうしてる?
676デフォルトの名無しさん:2013/11/09(土) 09:41:37.04
パイパイ、複数テキストファイル一括置換できる?
677デフォルトの名無しさん:2013/11/09(土) 10:59:36.53
おそらく勘違いした方法でやらかすのでは?
678デフォルトの名無しさん:2013/11/09(土) 18:06:07.56
>>672
基本的な質問なんだが...
class宣言内で、Dimって使えたか?
679デフォルトの名無しさん:2013/11/09(土) 18:48:52.42
>>678
使えるよ
デフォルトプロパティと同じで、使わないことが推奨されているので
初心者とおバカさんしか使わないけど
680デフォルトの名無しさん:2013/11/09(土) 20:17:28.47
>>679
確認した
Publicと同じか...

...で、全てのメンバー変数をPublicにしてるのに、Defaultキーワードを使う意味はあるのか?
全てのメンバー変数がPrivateである場合にしか、Defaultキーワードを使う意味が無いと思うのだが...
681デフォルトの名無しさん:2013/11/09(土) 22:46:02.60
やっぱり桃白白がネタ振ってるのに
馬鹿とかしか言えない他の奴らがクズすぎるな
晒しあげ
682デフォルトの名無しさん:2013/11/09(土) 23:49:54.88
正確にはPublic(Privateでもいいけど)書くとDim省略できるだけだがな
DimだけじゃPublicかPrivateか解りにくいから、そっち書けって話
あとPublicかPrivateかとデフォルトプロパティは関係ないぞ
683デフォルトの名無しさん:2013/11/10(日) 01:06:53.56
メンバー変数が保護されていないのに、デフォルトの処理もなんもないでしょ...
何のためのデフォルト処理なのかを考えなきゃね...

まあ、デフォルトを使うなってのも、オールパブリックなメンバー変数と同じぐらい馬鹿な話だけどな
684デフォルトの名無しさん:2013/11/10(日) 01:25:40.23
> 何のためのデフォルト処理なのかを

互換性維持じゃね?
あるべき処理ではなくて
過去の互換性を保つための処理。
685デフォルトの名無しさん:2013/11/10(日) 11:21:21.17
>>684
バカなことを言ってないで、単語の「Default」の意味を調べなよ...
単語の意味通りに取り扱う必要があるって事だよ
686桃白白 ◆9Jro6YFwm650 :2013/11/10(日) 15:01:37.81
クラスのメンバに基本型も参照型も入れたいんだけどみんなこれどうやってる?

If IsObject(V) Then
 Set M = V
Else
 M = V
End If

とか書いてる?量増えるとつらくない?苦行じゃない?どうやってるのみんな。
687デフォルトの名無しさん:2013/11/10(日) 15:03:42.58
>>685
Defaultの意味?
債務不履行でしょ?
そんくらいしってますよーwww
688デフォルトの名無しさん:2013/11/10(日) 15:05:57.31
>>686
SetValue(ByRef M, ByVal V)
689桃白白 ◆9Jro6YFwm650 :2013/11/10(日) 15:25:23.93
>>688
マジサンクス。桃白白マジサンクス。それ使うことにする。
690デフォルトの名無しさん:2013/11/10(日) 16:50:03.59
>>687
それを知ってるのに、「互換性維持じゃね」とか言っちゃうんだwwww
691デフォルトの名無しさん:2013/11/15(金) 00:37:58.30
empty.bat(メモリの開放)を実行しようとC:\Program\Task Scheduler\の作成した場所に
empty.batを実行させようとすると、エラーが出るんですがなぜだかわりませんか?
CreateObject("WScript.Shell").Run "C:\Program Files\Task Scheduler\empty.bat",0
が実行vbsファイルですがエラーでます
CreateObject("WScript.Shell").Run "empty *", 0
だと通るようですがファイル内を探し回って実行してますかね?
何をして探してるか、何が正しいプログラムかご説明頼みます
692デフォルトの名無しさん:2013/11/15(金) 00:55:16.79
スクリプト: C:\Program Files\Task Scheduler\empty.vbs
行: 1
文字: 1
エラー: 指定されたファイルが見つかりません。
コード: 80070002
ソース: (null)
とでます
このエラーはPCに危害加えますか?
693デフォルトの名無しさん:2013/11/15(金) 12:22:52.35
>691-692
質問内容がイマイチ分かりにくいな。とりあえず「メモリの解放」でググったら、
コマンドプロンプトなどで以下のコマンドラインを実行する方法が最初に見つかった。
%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks
ひょっとして、それを実行するバッチファイル"empty.bat"を、"empty.vbs"から呼び出そうとして失敗したという解釈でいいの?
694デフォルトの名無しさん:2013/11/15(金) 13:56:50.65
日本語が少し変、というかコミュニケーションの取り方がが微妙におかしいよねー。
695デフォルトの名無しさん:2013/11/15(金) 14:19:59.44
メモリの解放か…実際の効果は疑問だが、この1行vbsファイルだけで済ませてもエラーは出ないな。

CreateObject("WScript.Shell").Run "%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks", 1, true
696デフォルトの名無しさん:2013/11/15(金) 20:38:42.61
>>693
そうです
697ピラフ:2013/11/16(土) 10:14:49.64
>>695
ふむふむなるほどー。Runメソッドの最初の引数には実行ファイル名と引数が指定される。
実行ファイル名と引数はスペースで区切られる。ちゅーことは

CreateObject("WScript.Shell").Run "C:\Program Files\Task Scheduler\empty.bat",0

こう書いたとき

C:\Program という実行ファイルに Files\Task と Scheduler\empty.bat という引数を

渡すと解釈されるんかね。

>>691
囲っちゃえばいいよ!!

CreateObject("WScript.Shell").Run Quot("C:\Program Files\Task Scheduler\empty.bat"), 0

Function Quot(s)
 Const Q = """"
 Quot = Enclose(s, Q, Q)
End Function

Function Enclose(s, o, c)
 Enclose = o & s & c
End Function
698デフォルトの名無しさん:2013/11/24(日) 18:57:31.14
スレ立てるまでもない質問はここで 130匹目
http://toro.2ch.net/test/read.cgi/tech/1383105985/937
から誘導されてきました。

ExcelからJavaで作ったフォームを表示したいのですが、
java.swing.JFrameで作ったフォームを起動後、閉じるとExcelが最前面にきません。
Excel上のボタンを押す
->Javaの画面が最前面に起動
->Javaを終了するとExcelが最前面に戻ってくる
としたいのですが、なぜかExcelの上にその下にあったエクスプローラー等が表示されます。
ソースは下記です。実物が見れないので、一部間違ってる可能性はあります。

Sub Test_OnClick()
 On Error Goto EEXIT
 Application.Interactive = False
 Set Shell = CreateObject("WScript.Shell")
 Shell.Run "java -jar jframe.jar", True, True
EEXIT:
 Application.Interactive = True
End Sub

質問スレではないということですが、宜しくお願い致します。
699桃白白 ◆9Jro6YFwm650 :2013/11/26(火) 19:29:12.46
みんなこんばんわ。lとIと1って区別つかないじゃん?
じゃあさ、全部大文字で書くことにしない?
VBScriptでは大文字と小文字区別されないし、
全部大文字で書くことをアパースクリプティングと呼ぶことにしようよ!!(提案)
700デフォルトの名無しさん:2013/11/26(火) 20:49:06.18
言われてみれば困ったことないかな。悪意をもって i の大文字を使わない限りは困らないかと。
それよりも幾つになっても、単体の d b、q p のうち d q が瞬時に判断できない事がある。
左向きだからディー、キューだな、的な思考が一瞬だけよぎる。
701デフォルトの名無しさん:2013/11/27(水) 01:38:36.34
>>698
よく知らないけど、Shell.Runの次の行で、Excelをアクティブにすれば?

>>699
全部大文字で書くと、可読性が悪くなり、
ミスが増えて、品質が悪くなり、時間もかかる
702桃白白 ◆9Jro6YFwm650 :2013/11/27(水) 21:50:11.50
>>700
仕事しすぎなんじゃない?ゲシュタルトなんとかってやつ。

>>701
そんなことない、Iとlの区別がつかなくてもよもよする方がよっぽど大変だよ、
そんな事態を打開しようと桃白白コード書いたからこれ使うといいよ。

SET STDIN = WSCRIPT.STDIN
SET STDOUT = WSCRIPT.STDOUT
DO WHILE NOT STDIN.ATENDOFSTREAM
  STDOUT.WRITELINE UCASE(STDIN.READLINE())
LOOP

これをUPPER.VBSという名前で保存して
TYPE INPUT.VBS | CSCRIPT UPPER.VBS > OUTPUT.VBSで変換しまくったらいいよ。
703デフォルトの名無しさん:2013/11/27(水) 21:57:37.96
全部大文字だとすげー雰囲気かわるな。
インターナショナル・ビジネス・マシーンズ的な。
704デフォルトの名無しさん:2013/11/27(水) 22:29:29.41
大昔のBASICは全部大文字だったような
705デフォルトの名無しさん:2013/11/27(水) 23:35:27.73
全部大文字だと大声で話しているようで嫌だな
706デフォルトの名無しさん:2013/11/28(木) 01:23:47.46
バイナリファイルをまるっとビット反転したいんですがVBSでできませんでしょうか
707デフォルトの名無しさん:2013/11/28(木) 07:47:52.97
>>706
出来るんじゃない?
708デフォルトの名無しさん:2013/11/28(木) 16:49:27.81
>>706
出来るよ
頑張ってね
709桃白白 ◆9Jro6YFwm650 :2013/11/28(木) 20:10:57.78
>>706
INVERT.VBSという名前で使ったらいいよ
https://friendpaste.com/3IvplvqeEjCI5tvOo8jaNa
710デフォルトの名無しさん:2013/11/28(木) 20:30:58.92
相変わらず酷いな
711デフォルトの名無しさん:2013/11/28(木) 21:25:36.43
あざーす
712桃白白 ◆9Jro6YFwm650 :2013/11/28(木) 22:07:40.81
ところでさ、桃白白考えたことがあるんだけど、
線形リストって一つの値と一つの値を関連付けるわんわんクラスを
具象化したものじゃないかと思うんだよね。こんな感じに。

CLASS ONEONE
  DIM A
  DIM B
END CLASS

CLASS LINKEDLISTNODE
  DIM OO

  SUB INITIALIZE(VALUE, NEXTNODE)
    SET OO = NEW_ONEONE(VALUE, NEXTNODE)
  END SUB
END CLASS

あーはいはい、どうせ桃白白わんわん言いたいだけでしょと
思うだろうけど、そのとおりなの!そのとおりなの!!
713デフォルトの名無しさん:2013/11/28(木) 22:56:13.51
>>712
ONEONEクラスはともかく、LINKEDLISTNODEクラスのメンバー変数はプライベートにした方がいい

何のために初期化してるのか考えようよ
714デフォルトの名無しさん:2013/11/28(木) 23:06:30.93
大文字のうざさたるや
715デフォルトの名無しさん:2013/11/29(金) 05:35:06.33
大文字ばかりなのは、実行する上では欠点ではないのでどうでもいいが
白桃は実行する上で欠点のあるコードを書くから、そっちの方が問題だ
まあ初心者だから仕方ないと言えば仕方ないのかも知れないが
716デフォルトの名無しさん:2013/11/29(金) 06:57:38.14
大文字はSQLってなぜかすりこまれている
717デフォルトの名無しさん:2013/11/29(金) 23:24:11.12
>>698
このスレへ誘導した者だけど、ここの住民は、誰も答えないね
下記へ移動すれば?

Excel VBA 質問スレ
ttp://toro.2ch.net/test/read.cgi/tech/1381151995/l50
718桃白白 ◆9Jro6YFwm650 :2013/11/30(土) 00:42:11.39
身長と体重と名前と年齢を管理したいときってあるでしょ?
わんわんクラスを使うとこんなふうに書ける。
わんわん最強説。これってすごくない?画期的じゃない!?
桃白白すごいものを作ってしまったのかも知れない。みんなも使っていいよ、わんわんクラス。

CLASS HUMAN_
  DIM OO

  PROPERTY GET HEIGHT
    HEIGHT = OO.A
  END PROPERTY

  PROPERTY GET WEIGHT
    WEIGHT = OO.B.A
  END PROPERTY

  PROPERTY GET NAME
    NAME = OO.B.B.A
  END PROPERTY

  PROPERTY GET AGE
    AGE = OO.B.B.B.A
  END PROPERTY
END CLASS

FUNCTION HUMAN(HEIGHT, WEIGHT, NAME, AGE)
  SET HUMAN = NEW HUMAN_
  SET HUMAN.OO = ONEONE(HEIGHT, ONEONE(WEIGHT, ONEONE(NAME, ONEONE(AGE, NOTHING))))
END FUNCTION
719デフォルトの名無しさん:2013/11/30(土) 02:35:12.40
配列使えよ
720デフォルトの名無しさん:2013/11/30(土) 03:29:37.29
なんかLispっぽいな
721デフォルトの名無しさん:2013/11/30(土) 05:22:00.36
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;; 
  ヾ;;;ハ    ノ       .::!lリ;;r゙  
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  >>718レベルのことで喜べた時期が
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f     俺にもありました
   ~''戈ヽ   `二´    r'´:::. `!
722デフォルトの名無しさん:2013/11/30(土) 09:15:54.63
>>717
ありがとうございます。
行ってきます。
723デフォルトの名無しさん:2013/11/30(土) 10:00:03.65
>>718
だから、メンバー変数は保護しろよ

他の言語と違って、Propertyがある分、単純なゲッターやセッターでも意味があるんだから
724桃白白 ◆9Jro6YFwm650 :2013/11/30(土) 10:01:45.78
>>723
メンバー変数を保護することで桃白白にどのようなメリットがありますか?
725デフォルトの名無しさん:2013/11/30(土) 10:27:33.68
>>724
お前一人だけのおもちゃなんだろ?
メリットなんてないよ
726桃白白 ◆9Jro6YFwm650 :2013/11/30(土) 10:32:58.12
>>725
桃白白にメリットがないことを桃白白に要求されても困るんで
自分でやったらいいと思うよ。自分ならこう書くっていうのを提示すればいいと思うよ。
727デフォルトの名無しさん:2013/11/30(土) 10:47:54.52
>>724
メンバー変数OOに、ONEONEクラス以外の何かが代入される可能性が減る
Property Setで、ONEONEクラス以外のObjectを禁止することも出来るので、メンバー変数OOを必ずONEONEクラスのObjectとして扱える

自分だけで使うものでも、明日の自分が、今の自分と同じ考えであるとは限らないしね
728桃白白 ◆9Jro6YFwm650 :2013/11/30(土) 10:53:55.39
>>727
なるほどお
729桃白白 ◆9Jro6YFwm650 :2013/12/03(火) 19:34:13.73
    γ⌒) ))
      / ⊃__
   〃/ / ⌒  ⌒\  
  γ⌒)( ⌒)  (⌒) \ ∩⌒) 
 / _ノ :::⌒(__人__)⌒ 〃/ ノ
(  <|  |   |r┬(    / / ))  桃白白♪桃白白♪
( \ ヽ \ _`ー‐'  /( ⌒)
               / /
730桃白白 ◆9Jro6YFwm650 :2013/12/03(火) 19:44:59.20
桃白白思うんだけどさー、VBScriptにもJavaScriptのような連想配列がほしくない?
簡単に定義できて簡単なクラスを代替しちゃうような簡便さがうらやましくない?
そこで桃白白考えてみたんだけど、どお?これ。

friendpaste.com/1BJ0uvTPV9tji4YnMUl1k2

セルフリターンで超使いやすいっしょ、
完全にJavaScriptに追いついたっしょ。これ使っていいよ。使ってくれたほうが桃白白うれしいし、使って。
731デフォルトの名無しさん:2013/12/03(火) 21:55:50.10
javascriptみたいな連想配列が使いたければ、javascriptを使う
732デフォルトの名無しさん:2013/12/04(水) 06:51:47.79
WSHには、.vbsと.jsの他に.wsfってのがあってだな・・・・・
733デフォルトの名無しさん:2013/12/04(水) 09:37:21.16
wsfはよく管理されたvbsとjsを部品として扱い組み立てるためのあれよね確か
そこでhtaですy、うわ、やめろ、なにをする!
734デフォルトの名無しさん:2013/12/04(水) 18:42:57.29
>>733
64bitの場合は、htaにすると32bitで動くからjetとかそのまま動いて便利だなと思う

ただ、いつまでサポートされてるのかってのが不安だな...
735デフォルトの名無しさん:2013/12/04(水) 20:08:57.15
XPが完全に死滅したらvbsの時代も終わるのかな
736デフォルトの名無しさん:2013/12/04(水) 20:28:23.92
IEでVBSのサポートが無くなったらしいし、そろそろVBS終焉か
737デフォルトの名無しさん:2013/12/05(木) 23:11:32.38
オワコン
738桃白白 ◆9Jro6YFwm650 :2013/12/06(金) 07:22:01.19
VBScriptが使えなくなったらみんななにに乗り換える?
桃白白はPythonがいいんじゃないかと思ってるんだよね。使ったことないけどたぶん全部同じでしょ。
739デフォルトの名無しさん:2013/12/06(金) 16:44:04.17
PowerShellはだめなの?

まぁPythonもいいけどね、何もインストールなくても使えなきゃバッチの意味がないと思うけど
740桃白白 ◆9Jro6YFwm650 :2013/12/06(金) 18:11:08.08
>>739
PowerShellは桃白白には難しすぎるの!難しすぎるの!!
741デフォルトの名無しさん:2013/12/07(土) 03:40:30.85
PowerShell 実践システム管理ガイド、2011
という本を買って、軽く読んだが、
PSに関する本が、少なすぎる

なんとWin8では、PSが最初から入っている!
Linuxへの対抗措置か
Linuxだと、誰でもコマンドやシェルスクリプトが使えるから
742デフォルトの名無しさん:2013/12/07(土) 10:27:40.56
linuxは標準shとさらにperlも使えるから強いよね
743デフォルトの名無しさん:2013/12/07(土) 11:05:59.59
>>742
Windowsでは、標準でVBScriptもJavascriptも使えるから、腐れperlを使う必要性がないよ
744デフォルトの名無しさん:2013/12/07(土) 12:57:28.77
何年か前にpower shell良さそうでインスコしたけど使ってないな

WMI操作なんかがくっそ楽になりそうだけど
俺は別にactive directoryの管理者でもなかった
他に使い道を見いだせるほどの知識をつけることなくほこり被ってる
745桃白白 ◆9Jro6YFwm650 :2013/12/07(土) 13:28:30.34
なんだかんだでVBScriptが一番かわいいよね
746デフォルトの名無しさん:2013/12/07(土) 13:59:00.51
なんとなくそれはわからんでもないな
白桃はうざいが
747デフォルトの名無しさん:2013/12/07(土) 14:22:53.75
桃白白のレベルだと、そのくらいが限界だろうからな
748デフォルトの名無しさん:2013/12/07(土) 22:16:22.75
つーかVBScriptですら桃白白の限界より上じゃん
実際、桃白白はVBScriptも未だまともに使えてないし
749デフォルトの名無しさん:2013/12/08(日) 14:34:56.32
SAMPLE.xlsのSheet1にボタン cmdbtm1がある。
cmdbtm1をクリックすると、標準モジュール内サブルーチン
Sub_CmdBtm1()をコールします。
で、やりたことはVBSからSAMPLE.xlsを起動しSub_CmdBtm1
を実行するVBSのコードを教えてください。
参考になるサイトがあればリンク先だけでも助かります。
よろしくお願いします。
750デフォルトの名無しさん:2013/12/08(日) 15:20:21.71
751デフォルトの名無しさん:2013/12/08(日) 15:41:19.35
>750
まさにこれです。
ありがとうございました。
752桃白白 ◆9Jro6YFwm650 :2013/12/13(金) 21:48:11.33
753デフォルトの名無しさん:2013/12/16(月) 23:35:06.89
>>752
は〜た〜ら〜け〜ぇ〜
754デフォルトの名無しさん:2013/12/17(火) 06:00:43.73
strAppPathを複数パス指定するときはどうしたらいいんでしょう?
1.exeと2.exeがCドライブにあるとして、単純に
strAppPath = "c:\1.exe"
strAppPath = "c:\2.exe"
こんな感じで通じてます?
あと、strAppPathをフォルダ指定など可能ですか?
755デフォルトの名無しさん:2013/12/17(火) 06:41:17.87
>>754
For Each strAppPath In Array("C:\.exe", "C\2.exe")
Next

Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\Folder")
For Each strAppPath In Folder.Files
Next
756デフォルトの名無しさん:2013/12/17(火) 07:37:12.54
根本的に仕様を勘違いしてるか
壊滅的に日本語表現力が無いな
757デフォルトの名無しさん:2013/12/17(火) 12:59:47.85
strAppPathって何さ
758デフォルトの名無しさん:2013/12/17(火) 21:29:15.50
>>754
一つの変数に覚えさせることが出来るのは、基本的に一つの事だけだぜ
759デフォルトの名無しさん:2013/12/18(水) 00:05:11.50
そういえば、Javascriptには、デストラクタが無いんだな...
760デフォルトの名無しさん:2013/12/18(水) 04:03:15.91
>>758
それは型次第でしょ

クラスだって定義上は変数の一つだし
連想配列だって、ひとまとめで一つの変数だし
761デフォルトの名無しさん:2013/12/18(水) 08:08:44.47
>>760
ちょっと待て、その考え方は危ないぞ...

インスタンスに複数の内容を覚えさせるには、クラスの定義で必要な数の変数を用意する必要があるし
連想配列にしても、1つの要素に入れられる内容は1つだけだぞ
762デフォルトの名無しさん:2013/12/18(水) 08:14:11.48
754が会話についてきてるとは思えない話だな
763デフォルトの名無しさん:2013/12/18(水) 11:45:14.08
一つの要素にと言ったら>>761が正解
一つの変数にと言ったら>>760が正解
764デフォルトの名無しさん:2013/12/18(水) 14:58:32.34
構造体を否定するような話だけど
VBは構造体とか使わないんだっけ
765デフォルトの名無しさん:2013/12/18(水) 15:36:35.77
>>761
> ちょっと待て、その考え方は危ないぞ...

なにが危ないのかさっぱりわからん
766デフォルトの名無しさん:2013/12/18(水) 16:38:26.01
VBScriptってユーザー定義の構造体作れるの?

VB6やVBAでは構造体も使うが、VBSではいつもグローバル変数を宣言しただけのクラスで代用してたが
767デフォルトの名無しさん:2013/12/18(水) 17:26:41.25
>>766
なんでググらないの?
768デフォルトの名無しさん:2013/12/18(水) 17:39:56.85
なんでビングらないの?
769デフォルトの名無しさん:2013/12/18(水) 18:02:59.39
VBScriptを使うと思うやつはプロジェクト作るのもめんどくさいという怠け物だから
770デフォルトの名無しさん:2013/12/18(水) 18:39:19.76
>>766
そもそも、クラスと構造体の違いってなんなん?
771桃白白 ◆9Jro6YFwm650 :2013/12/18(水) 19:12:42.42
            ∧  ∧
            |1/ |1/
          / ̄ ̄ ̄`ヽ、
         /        ヽ
        /  ⌒  ⌒    |
        |  へ  へ    |   ふふ♪
        /          |
       /           |
      (          _ |
      (ヽ、       /  )|
       | ``ー――‐''"|  ヽ|
       ゝ ノ       ヽ  ノ
  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
772デフォルトの名無しさん:2013/12/18(水) 19:59:40.57
白桃、前にクラスの疑似継承がどうとかやってたけど結論出たんか
773桃白白 ◆9Jro6YFwm650 :2013/12/18(水) 20:42:58.05
>>772
わんわんクラスの話?じゃなくて?え?桃白白なんか言ったっけ?記憶にございません。
5000万円は受領しておりません。
774デフォルトの名無しさん:2013/12/21(土) 21:39:00.28
へー、半年振りにこのスレ覗いてみたけど
白桃だかなんだか言う缶詰みたいな奴は
未だ頑張っていたんだな。ちょっと意外だ。
775デフォルトの名無しさん:2013/12/22(日) 05:41:35.42
結局、別に目新しいものじゃなかったからな。
初心者なら知らない奴も居るかもしれないが
VBSを使い倒してる奴なら大抵知ってるレベルの使い方だし。
776デフォルトの名無しさん:2013/12/22(日) 23:48:53.02
まあプログラミング系のスレに長年住みつくのは業界人と相場が決まってるわな。
オレもSE兼PG兼テスターだしw
777桃白白 ◆9Jro6YFwm650 :2013/12/24(火) 18:57:50.35
          i;;;;;;;;;;;;;;;;;;;/l;;;/l;ソ;;/ |;;;;;;/| l;;l゙ヾ;;;ト、;;;;;;;;;;;;;i
          |;;、;;;;;;;;// /,'' / l/  |/|/   ゙l  ヾ、゙i;;;;;;::::/
          /ヾ;;/ソ       ,  ,      ヽ l;;l"゙l
          '、 (ヾ,,===;;;;;;;,,,,,_`il,i゙__,,,,;;;;;=== ,/|lヽ l
            ヽ、`||ヾi;'(:::::゙'゙:::/;;i=i;;;ヽ:::゙'゙::::)゙i;/ |l'ノ/   クリスマスイブか・・・
           /ヽ|l、 ゙i::;;;;/⌒⌒).ヾ..;;;;;;;;;;..ノノ/l.,/\
          /;;;/::ミヾ、./ / / )     '゙ /ミ"i;;;;;;;;\_
       _,.-;;'";;;;;;;;r‐ ミ/゙ ,/ /  /_!/`   /,,l;;;ミ/;;;;;;;;;;;;;;;;~\
  _,、-‐;;'";;;;;;;;;;;;;;;;;;;;;| / /  /   /.__,,,..-/ヽ /;;;ミ/;;;;;;;;;;;;;;;;;;;;;;;;;;`;,,、_
‐'";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;| ノ / .ノ  / ,,, /  ノ/';;;;ミ/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;゙'';;;,,、_
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ノ/ ノ  /  /,,,,/   /;;;;ミ /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`
778デフォルトの名無しさん:2013/12/24(火) 21:27:57.95
クリスマスイブはコンビニでお菓子やジャンクフードをしこたま買い込んで
部屋に一日中立てこもる日だってじっちゃが言ってた。
779デフォルトの名無しさん:2013/12/24(火) 21:41:02.24
その結果 >>778 がこの世に生まれてくることはなく、世界はへいわでした

めでたし めでたし
780デフォルトの名無しさん:2013/12/24(火) 23:15:25.16
去年と一昨年は確かクリスマスが土日とかだったんよね。今年は残業だろお前ら
しかし今年の正月はカレンダーどうりでもデカイ連休だろ
こっちのほうが価値がある!ひゃっはー!27日から10連休!

・・あ、あー、ニートだったはwwwww
781デフォルトの名無しさん:2013/12/25(水) 00:26:45.21
今日はクリスマスイブだから忙しくて書き込みできない設定で行くつっといただろ
ちゃんと打ち合わせどおりやれよ 何年同じことやってると思ってるんだ
782桃白白 ◆9Jro6YFwm650 :2013/12/25(水) 05:56:53.40
     /⌒\
    ○⌒):::::::\
      ノ::::::::::::::\
     ⊂ニニニニ⊃
      | ノ      ヽ はいどうもー!
     /  ●   ● |  If 2 And 1 = 1 Then
     |    ( _●_)  ミ  これって誰もが一度ははまるよねー!!
    彡、   |∪|  、`\   クリスマスおめでとー!! 
   / __  ヽノ /´>  )   
   (___)   / (_/
    |       /
    |  /\ \
    | /    )  )
    ∪    (  \
          \_)
783デフォルトの名無しさん:2013/12/25(水) 09:42:30.49
へんなスレだなここ
784デフォルトの名無しさん:2013/12/25(水) 18:46:40.25
hey scripting guysさんが居るから話題が上がりにくいしな
785デフォルトの名無しさん:2013/12/27(金) 13:23:56.57
よし、この年末の忙しい時にみんなでbaidu IMEがインストールされているか判別するVBSを作ろう。

どれくらい早くできるかやってみない?
786桃白白 ◆9Jro6YFwm650 :2013/12/27(金) 13:42:23.04
>>785
その勝負受けてたつ
787デフォルトの名無しさん:2013/12/27(金) 13:43:56.39
baidu IMEのレジストリーキーとかあるのかな
788デフォルトの名無しさん:2013/12/27(金) 14:39:38.47
789デフォルトの名無しさん:2013/12/27(金) 16:03:42.29
HKEY_CURRENT_USER\SOFTWARE\Baidu
このキーがあったら黒ということでいいかな
790デフォルトの名無しさん:2013/12/27(金) 16:39:56.06
まずはこんなかんじで判定かな
Set objShell = CreateObject("Wscript.shell")
On Error Resume Next
If IsNull(objShell.RegRead("HKEY_CURRENT_USER\SOFTWARE\Baidu\")) Then
Wscript.Echo "Baidu IME入ってない。"
Else
Wscript.Echo "Baidu IME入ってる。"
End If
791デフォルトの名無しさん:2013/12/27(金) 16:51:58.34
objShell.Exec(objShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString"))

ってやろうとしたけど管理者権限ないからNGだってめんどいな
792デフォルトの名無しさん:2013/12/27(金) 17:05:23.92
'#--------------------------------------
' 管理者になーる
Dim WMI, OS, Value, Shell
do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7
Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
For Each Value in OS
if left(Value.Version, 3) < 6.0 then exit do
Next

Set Shell = CreateObject("Shell.Application")
Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
WScript.Quit
loop
'#--------------------------------------
Dim objShell
Set objShell = CreateObject("Wscript.shell")
objShell.Exec(objShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString"))

これでいくねぇ
793デフォルトの名無しさん:2013/12/27(金) 17:42:47.28
Option Explicit
'#--------------------------------------
' 管理者になーる
Dim WMI, OS, Value, Shell
do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7
Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
For Each Value in OS
if left(Value.Version, 3) < 6.0 then exit do
Next

Set Shell = CreateObject("Shell.Application")
Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
WScript.Quit
loop
'#--------------------------------------
Dim objShell, ret
Set objShell = CreateObject("Wscript.shell")
On Error Resume Next
If IsNull(objShell.RegRead("HKEY_CURRENT_USER\SOFTWARE\Baidu2\")) Then
ret = objShell.Popup("このパソコンには【Baidu IME】はインストールされていません。", , "【Baidu IME】インストールチェック")
Else
On Error GoTo 0
ret = objShell.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _
"【Baidu IME】をアンインストールしますか?" & vbCrLf & _
"(【猫耳】に泣きつかれても断固アンインストール!!)", , "【Baidu IME】インストールチェック", 4)
Select Case ret
case 6 objShell.Exec(objShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString"))
case else WScript.Quit
End Select
End If
794デフォルトの名無しさん:2013/12/27(金) 17:44:41.34
popupが最前面に出ないどうしたらいいの?
795桃白白 ◆9Jro6YFwm650 :2013/12/27(金) 18:59:26.91
WSCRIPT.ECHO CSTR(CREATEOBJECT("SCRIPTING.FILESYSTEMOBJECT").FOLDEREXISTS("C:\PROGRAM FILES\BAIDU"))
796デフォルトの名無しさん:2013/12/27(金) 20:21:30.38
はい、桃白白の負け〜〜
797デフォルトの名無しさん:2013/12/27(金) 20:37:06.80
別に勝負してるつもりはないんだけど
むしろ美しいスクリプトを書いてニュー速にこのスレの実力を見せつけたいのだが
798デフォルトの名無しさん:2013/12/28(土) 20:04:01.12
Option Explicit
'#--------------------------------------
' 管理者になーる
Dim WMI, OS, Value, Shell
do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7
Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
For Each Value in OS
if left(Value.Version, 3) < 6.0 then exit do
Next

Set Shell = CreateObject("Shell.Application")
Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
WScript.Quit
loop
'#--------------------------------------
Dim objShell, ret
Set objShell = CreateObject("Wscript.shell")
Dim winName: winName = "【Baidu IME】インストールチェック"
On Error Resume Next
If IsNull(objShell.RegRead("HKEY_CURRENT_USER\SOFTWARE\Baidu\")) Then
ret = objShell.Popup("このパソコンには【Baidu IME】はインストールされていません。", , winName, vbOKOnly Or vbSystemModal)
Else
On Error GoTo 0
ret = objShell.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _
"【Baidu IME】をアンインストールしますか?" & vbCrLf & _
"(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal)
Select Case ret
case 6 objShell.Exec(objShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString"))
case else WScript.Quit
End Select
End If
799デフォルトの名無しさん:2013/12/31(火) 10:55:27.42
結局、桃白白は、桃白白でしかなかったって事か
800デフォルトの名無しさん:2014/01/02(木) 03:18:14.32
>>797
美しさにこだわるなら(if, If)などの表記ゆれをなくして、
6はvbYesにして、
レジストリの存在チェックとアンインストールとUACエスカレーションを
それぞれ別のスクリプトに書いてアンインストールするときのみUACのダイアログが
表示されるようにするべき。
メッセージはテキストファイルに書くべきかな。
801デフォルトの名無しさん:2014/01/02(木) 13:18:08.30
メッセージは外部テキストファイルではなく.wsfにしてresourceタグの方がいいよ

テキストファイルだと、CreateObject("Scripting.FileSystemObject")でFSOのインスタンス作って
ForReading = 1の定数定義して、OpenTextFileでファイル開いて、ReadAllで読み込んでと
たかがメッセージを読み込むだけにしては手間が掛かりすぎな気がする
更にメッセージが複数になれば、メッセージファイルもその数だけ必要になってディレクトリがゴチャるw
1つのテキストファイルにiniみたいなセッション分けして複数のメッセージを書くことも出来るが
その場合、指定のセッションのみを読み出すのは更に煩雑になるし

.wsf化してresourceを使う場合、コードではなくファイル内容としてみれば、xmlタグなどでややゴチャるが
コード、つまりscriptタグの中だけ見れば、かなりスッキリする

ret = objShell.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _
"【Baidu IME】をアンインストールしますか?" & vbCrLf & _
"(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal)
     ↓
ret = objShell.Popup(getResource("msg1"), , winName, vbYesNo Or vbSystemModal)

のように簡略化出来るからね

因みに俺は、スクリプトが完成した以降も変更する可能性があるようなものはscriptタグの上
まず変更しないだろうってものはscriptタグの下に書いてる
<job>
  <resource id="val1">AAA</resource>
  <script language="VBScript"><![CDATA[
' コード
  ]]></script>
  <resource id="msg1">ほげ</resource>
</job>
ついでに、resourceの値は改行して書けばそのまま改行された状態で読み出せるし
&amp;#13;&amp;#10;を入れれば、改行を含むメッセージを1行で書くことも可能
またXMLDOMを使えば、書き換えることだって出来る
802デフォルトの名無しさん:2014/01/02(木) 18:15:26.04
>>801
どうせwsfにするなら、script要素で外部ファイル指定して変数読み込ませる手もあるよ
803デフォルトの名無しさん:2014/01/02(木) 20:27:23.49
ソース改変していいのでより良いものを提示してください
804デフォルトの名無しさん:2014/01/02(木) 21:30:25.00
>>802
手法としてはそれも含めて他にもいろいろあるが
ファイルが複数になったり、変更する時に別ファイル開いたりしなくちゃならないデメリットを考えると
優れた方法とは言えないね

汎用関数やクラスみたいに、複数のスクリプトで使い回しするようなメッセージ文ならそういうのもありかもしれないけど
805デフォルトの名無しさん:2014/01/03(金) 01:38:51.55
wsfのresourceにメッセージって、vbsのpublic変数と何か違うの?
806デフォルトの名無しさん:2014/01/03(金) 01:41:19.85
vbsをソフト、変数定義ファイルをiniなどで見立てて、include関数でも作った方がマシ
807デフォルトの名無しさん:2014/01/03(金) 02:43:28.66
何勘違いしてるの?
808デフォルトの名無しさん:2014/01/03(金) 08:45:25.65
wsfは使ったことがないですが、シンプルになりますか?
シンプルが美しいということもあるかと
809デフォルトの名無しさん:2014/01/03(金) 10:52:57.75
意味的には、resource文で定義する方が後々忘れないかもしれないねぇ
810デフォルトの名無しさん:2014/01/03(金) 11:40:55.03
それぞれ何がシンプルになるかが違う

┌──── コードのシンプルさ
│┌─── ファイル内容(コード+コード以外も含めて)のシンプルさ
││┌── ファイル構成(実行に必要なファイル数)のシンプルさ
│││┌─ 再編集のシンプルさ(しやすさ)
││││
×△◎×:vbs+ベタ書き(>>798
△○×△:vbs+外部テキスト(>>800)
◎△◎◎:wsf+resource(>>801
◎○△△:wsf+外部script(>>802

実行に必要なファイル数が増えるのは嫌だと言うなら、
外部テキストやインクルードスクリプトを使う方法は除外されるし
メッセージなんて一度書いたら再編集しないから編集しやすさはどうでもいいと言うなら
その要素は無視して比較して構わない

何を優先するかは人それぞれだからね
811デフォルトの名無しさん:2014/01/03(金) 11:48:45.88
自分はよくこうやるのだけど、こっちのほうがシンプルだと思うけど、だめ?
Dim resource:Set resource = CreateObject("Scripting.Dictionary")
Call resource.Add("HOGEHOGE", "hello world")
WScript.Echo resource("HOGEHOGE")
812デフォルトの名無しさん:2014/01/03(金) 14:26:15.93
無駄だろ
813デフォルトの名無しさん:2014/01/03(金) 14:43:49.88
>>811
クラスのプロパティみたいなものなら兎も角
定数的な要素の強いものには無駄じゃないかな?
Constで、ファイルの先頭に列挙する方がシンプルな気がする...色々な意味で
814デフォルトの名無しさん:2014/01/03(金) 16:10:08.22
だよな

ret = objShell.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _
"【Baidu IME】をアンインストールしますか?" & vbCrLf & _
"(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal)
     ↓
Dim resource
Set resource = CreateObject("Scripting.Dictionary")
Call resource.Add("HOGEHOGE", このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _
"【Baidu IME】をアンインストールしますか?" & vbCrLf & _
"(【猫耳】に泣きつかれても断固アンインストール!!)")
ret = objShell.Popup(resource("HOGEHOGE"), , winName, vbYesNo Or vbSystemModal)



どう考えてもこういうケースでは無駄なだけ
815デフォルトの名無しさん:2014/01/03(金) 16:31:19.35
シンプルを目指すならconstもやらない方がいいかな
816デフォルトの名無しさん:2014/01/03(金) 18:38:51.70
>>810
外部テキストや外部スクリプトはあえてファイル分割してるわけで、
分割が無意味な場合は同一スクリプトの先頭部分に同内容を書けばいいだけだから、
優先度の違いというよりは設計の違いかもね
817デフォルトの名無しさん:2014/01/03(金) 19:04:26.92
それ同じ事だよ
818デフォルトの名無しさん:2014/01/03(金) 19:11:39.46
>>816
ア・ス・ペw
819デフォルトの名無しさん:2014/01/03(金) 20:39:45.10
VBScriptの話ならまだ可愛げがあるがwsfの話とかさすがにちょっとね・・・
効率やメンテにこだわって行き着いたのがwsfとかさすがに・・・

PowerShellでやれ
820デフォルトの名無しさん:2014/01/03(金) 21:22:37.08
>>819
何度も同じルーチンを書くのも面倒くさいし、コピペしたとしても、コードが長くなって見づらくなるだけだし
普通の人は、wsfやhtaに流れるだろ
821デフォルトの名無しさん:2014/01/03(金) 22:43:16.81
単一ファイルで完結できるのはメリットでそれを好んで使うこともしばしば
822デフォルトの名無しさん:2014/01/04(土) 10:35:11.43
それはかなり大きいよね。
特にBaiduIMEのみたいに他人に使わせることを想定している場合は。
823デフォルトの名無しさん:2014/01/04(土) 14:09:28.31
csvにメッセージを保存しておいてそれを読み出すというのはどうだろうか?
というか誰かcsvリーダーを書いてくれないか?
824デフォルトの名無しさん:2014/01/04(土) 15:05:16.69
愚考だろw
テーブルデータならまだしも、メッセージを保存するのにcsvって、どう考えても適してない

因みにcsv読み込みはCreateObject("Excel.Application")で出来るし、
フリーのCOMも、サンプルソースも、ネット上に転がってる
825デフォルトの名無しさん:2014/01/04(土) 15:24:25.18
>>824
テーブルデータってなんですか?
CSVはテキストエディタで見れるし簡易なデータベースとして最適だとおもうけど。
Excel.Applicationはエクセル入ってないと使えない。
ADODBはドライバないと読み込めない。
フリーのCOMは知らない。
だからVBSでCSVリーダを書いてくれないか?
826デフォルトの名無しさん:2014/01/04(土) 20:42:42.43
resourceって定数なの?
5年前ならXMLスゲーって言ってたと思うけど、
いまどきはなんでもJSONマンセーじゃないの?
827デフォルトの名無しさん:2014/01/04(土) 20:50:46.34
>>825
他人の成果物OKならExcelやADODB入れればいいじゃん
828デフォルトの名無しさん:2014/01/04(土) 21:16:28.63
CSVなんてトラブルの種にしかならない
829デフォルトの名無しさん:2014/01/04(土) 21:26:47.77
>>827
Excelは有料でADODBのドライバはダウンロードしてインストールせにゃならんでしょう。
VBSなら実行するだけですよ。再三言いますがVBSでCSVリーダ書いてくださいよ。
あなたの価値観なんてどうでもいいんですよ。私の価値観を最優先でお願いします。

>>828
どうゆうトラブルですか?あなたはいままでCSVでどうゆうトラブルに遭われたんでしょうか。
それを聞かないことには話がすすまんと思うのですよ。
830デフォルトの名無しさん:2014/01/04(土) 22:57:00.18
CSVには一律的な仕様が無いってことも知らないのかな?
831デフォルトの名無しさん:2014/01/04(土) 23:00:30.34
>>830
RFCがあるでしょうに。
832デフォルトの名無しさん:2014/01/04(土) 23:08:58.54
何勘違いしてるの?
833デフォルトの名無しさん:2014/01/04(土) 23:12:32.55
誰もがRFCを護る理想郷で使うならね。
834デフォルトの名無しさん:2014/01/04(土) 23:15:34.03
http://www.kasai.fm/wiki/rfc4180jp

excelですら守ってないRFCはこちら
835デフォルトの名無しさん:2014/01/04(土) 23:25:16.07
>>832
何を勘違いしてると思ってるの?
836デフォルトの名無しさん:2014/01/04(土) 23:27:18.02
>>833
自分で使うものだからほかの人がどう考えてようとどうでもいい。
837デフォルトの名無しさん:2014/01/04(土) 23:27:53.83
俺はcsvよりはtsvだけど
それよりも多用するのがxmlだな
838デフォルトの名無しさん:2014/01/05(日) 01:52:17.14
msgならcsvよりiniでよくね
839デフォルトの名無しさん:2014/01/05(日) 04:04:34.13
iniはもう出てる
840デフォルトの名無しさん:2014/01/05(日) 10:24:19.56
タグかなんかを記述した位置より下を暗号化するやつなかったっけ
処理部分を隠蔽してグローバル変数だけメンテナンス可能にする
841デフォルトの名無しさん:2014/01/05(日) 11:40:09.94
デメリットが大きい割にメリットが薄い
842デフォルトの名無しさん:2014/01/05(日) 14:08:41.69
http://d.hatena.ne.jp/so_blue/20090326/1238084885
JSONこんなふうにできるんだ、へぇ余興としては面白いな

実用的かどうかは別だが
843デフォルトの名無しさん:2014/01/05(日) 14:55:40.65
>>842
それはVBAでの手法でしょ

VBSというか、そのホストであるWSH上では、VBSとJSの混在スクリプト書けるんだから
そのリンク先みたいなことやる必要もない

wsfでlanguage="JScript"を上にして、
JScript側:function jsonParse(s) { return eval('(' + s + ')'); }
VBScript側:Set objJSON = jsonParse("{ ""familyname"":""yamada"", ""personalname"":""tarou"" }")
の1行ずつで準備完了

あとは
MsgBox objJSON.familyname
で、そのリンク先のCreateObject("ScriptControl")を使った十数行のコードと同じ結果が出る

だからExcelとかのVBA上ではなくスクリプトでは、そのリンク先のやり方は無駄なだけだし
上記のように簡略化しても、件の1回しか使わないメッセージの格納としては、>>811の方法が
>>812-814で指摘されてる通り無駄しかないのと一緒で、コードを使って格納する分コードが増えるだけで本末転倒

つまり、スクリプトではそのリンク先より遙かに簡単手軽に使える機能なので、別件なら使い所はあるけど、
件のメッセージの話においては実用性無し
844桃白白 ◆9Jro6YFwm650 :2014/01/05(日) 19:47:28.55
生きててもさ、無駄なんだお
きっと何しても上手くいかないんだお
ただダラダラと生きてるだけだし
いっそ本気で死んでしまいたいお

       ___
      /     \
    /        \
    /::::::           ヽ
    |:::::          i
    ヽ:::        __/
    /::::        \
    |:::         _)
    |::::         i
    \___、_____  ノ _)
845片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/05(日) 21:14:42.29
無駄じゃないよ

失敗した思い出が雪のように降り積もってレモンの皮のような苦味を覚えることができるよ

笑い者が居ないと寂しいよ
846デフォルトの名無しさん:2014/01/05(日) 23:47:09.83
不倫はいかんぞ
847デフォルトの名無しさん:2014/01/06(月) 12:24:34.71
Option Explicit
Const winName = "【Baidu IME】インストールチェック"
'#--------------------------------------
' 管理者になーる
Do While WScript.Arguments.Count = 0 And WScript.Version >= 5.7
Dim WMI: Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Dim os, v
Set os = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
For Each v In os
If left(v.Version, 3) < 6.0 Then Exit Do
Next
Dim APL: Set APL = CreateObject("Shell.Application")
APL.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
WScript.Quit
Loop
'#--------------------------------------
Dim r
Dim WSH: Set WSH = CreateObject("Wscript.shell")
On Error Resume Next
If IsNull(WSH.RegRead("HKEY_CURRENT_USER\SOFTWARE\Baidu\")) Then
r = WSH.Popup("このパソコンには【Baidu IME】はインストールされていません。", , winName, vbOKOnly Or vbSystemModal)
Else
On Error GoTo 0
r = WSH.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _
"【Baidu IME】をアンインストールしますか?" & vbCrLf & _
"(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal)
Select Case r
Case vbYes WSH.Exec(WSH.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString"))
Case Else WScript.Quit
End Select
End If
848デフォルトの名無しさん:2014/01/06(月) 12:27:57.26
少し整理した。
もっと単純に美しくなるかな
849デフォルトの名無しさん:2014/01/06(月) 12:46:09.68
Option Explicit
Const winName = "【Baidu IME】インストールチェック"
'#--------------------------------------
' 管理者になーる
Do While WScript.Arguments.Count = 0 And WScript.Version >= 5.7
Dim WMI: Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Dim os, v
Set os = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
For Each v In os
If left(v.Version, 3) < 6.0 Then Exit Do
Next
Dim APL: Set APL = CreateObject("Shell.Application")
APL.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
WScript.Quit
Loop
'#--------------------------------------
Dim r
Dim WSH: Set WSH = CreateObject("Wscript.Shell")
On Error Resume Next
If IsNull(WSH.RegRead("HKCU\Software\Baidu\")) Then
r = WSH.Popup("このパソコンには【Baidu IME】はインストールされていません。", , winName, vbOKOnly Or vbSystemModal)
Else
On Error GoTo 0
r = WSH.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _
"【Baidu IME】をアンインストールしますか?" & vbCrLf & _
"(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal)
Select Case r
Case vbYes WSH.Exec(WSH.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\UninstallString"))
Case Else WScript.Quit
End Select
End If
850デフォルトの名無しさん:2014/01/06(月) 13:03:07.91
単にコードが短いことを美しいとする初心者的な方向性か
可視性、可読性が高いことを美しいとする中堅〜ベテラン的な方向性かで
どこをどうするかは全然違ってくるけど、どちらの方向性でも、まだまだ出来ることはあるね
851デフォルトの名無しさん:2014/01/06(月) 13:45:41.32
業務の見える化みたいな話でしょ。JSの難読化みたいな話ではない。
852デフォルトの名無しさん:2014/01/06(月) 23:21:08.71
ちょっと聞きたいんですが
mshta vbscript:execute("WScript.Echo(""あ""):Close")
はなぜだめなんでしょうか?


やりたいことはウインドウが有るか無いかの判断です
mshta vbscript:execute("Set WS=CreateObject(""WScript.Shell""):R=WS.AppActivate(""メモ帳""):Close()")
このRを取得したい(バッチの標準出力として得たい)


ローカルにファイルを書き出せない状況で、一行VBSに纏める必要があるのですが
何かいい方法があれば教えてください
853デフォルトの名無しさん:2014/01/07(火) 18:59:16.58
854デフォルトの名無しさん:2014/01/07(火) 19:53:40.95
バカなことやるのが好きな人って居るよね
855片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/07(火) 20:12:59.34
mshta vbscript:execute("Set SH=CreateObject(""WScript.Shell""):SH.Run ""notepad"":
SH.AppActivate ""メモ帳"":SH.Run ""ping localhost -n 1"",0,True:SH.SendKey ""TEST"":Close")
856片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/07(火) 20:29:56.95
function makesendkeysstring(str)
dim i,c,s
for i=1 to len(str)
c=asc(mid(str,i,1))
if c=chr(13) then
s=s&"{ENTER}"
elseif c=chr(8) then
s=s&"{TAB}"
elseif c="+" or c="^" or c="%" or c="~" then
s=s&"{"&c&"}"
else
s=s&chr(c)
end if
next
makesendkeysstring=s
end function
857デフォルトの名無しさん:2014/01/07(火) 20:35:44.05
間違い修正
function makesendkeysstring(str)
dim i,c,s
for i=1 to len(str)
c=asc(mid(str,i,1))
if c=chr(13) then
s=s&"{ENTER}"
elseif c=chr(8) then
s=s&"{TAB}"
elseif c="+" or c="^" or c="%" or c="~" or c="{" or c="}" or c="[" or c="]" then
s=s&"{"&c&"}"
else
s=s&chr(c)
end if
next
makesendkeysstring=s
end function
858デフォルトの名無しさん:2014/01/07(火) 22:39:45.54
未だにこんな低次元なことやってるやつ居るの?
859片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 00:07:10.91
WScriptが使えないのはWSHとHTAの違いによる
860852:2014/01/09(木) 01:27:58.80
>>853
そのサイトはくまなく見ましたが参考になる記事はありませんでした
>>855
実行エラーでてますん


色々やってますが手詰まりです
詳しい方、助けてください
861デフォルトの名無しさん:2014/01/09(木) 01:30:08.02
SendKey→SendKeys
862デフォルトの名無しさん:2014/01/09(木) 01:34:07.73
マニュアル使えよ、色々はかどるぞ
863デフォルトの名無しさん:2014/01/09(木) 12:29:53.62
mshta "javascript:WSH=new ActiveXObject('WScript.Shell');WSH.Run('notepad');R=WSH.AppActivate('メモ帳');alert(R);close();"
864デフォルトの名無しさん:2014/01/09(木) 13:43:32.54
そもそもAppActivateに戻り値あるの?
865デフォルトの名無しさん:2014/01/09(木) 20:06:58.50
>>864
リファレンス見ろよ
866デフォルトの名無しさん:2014/01/09(木) 21:46:44.74
fso.getstandardstream(1).writeline(R)
867デフォルトの名無しさん:2014/01/09(木) 21:50:37.34
みんなで中二病に付き合うスレだなここ
一番の中二病は最近出てきてないが
868デフォルトの名無しさん:2014/01/09(木) 21:59:20.90
中二病、言わんとしていることは分かるが、どこかの研究会じゃあるまいしその見方は相応しくなく、それこそ中二病的かと。
それにこのスレだけでなくどこもそう大差ないだろうし、わざわざ言うほどのことでもなかろう。と、桃缶野郎が言いたげにしてると思われる。
869852:2014/01/10(金) 02:23:02.99
結局無理ってことなんでしょうかね?

AppActivateに関わらず一行バッチで戻り値を得るには
他に何か手段は無いものでしょうか
870デフォルトの名無しさん:2014/01/10(金) 04:10:32.93
俺は適材適所でCOMなりアプリなりを作っちゃうから
相応しくないもので相応しくないことをなんとかやる努力とかはしないから解らんな

自作アプリを持っていって入れることが出来ないようなところでは
バッチやスクリプト書くこと自体は可能であっても、それは「外部メモリ」ではなく「知識」を介するという違いだけで
新たなプログラムを導入するって本質は変わらないので、自作アプリ入れちゃいけないPCでは
バッチやスクリプト書くのも控え、どうしても必要ならアプリ導入の許可を取るのがまともな奴のやり方だし
そういうケースではなく自由にできるPCなら、一行バッチに無駄に拘るのは愚考でしかないからね
871デフォルトの名無しさん:2014/01/10(金) 08:01:42.12
なんつうか...
htaで呼び出す理由がわからん...
コンソールに出力させるなら、htaじゃないと思うのだが...
872デフォルトの名無しさん:2014/01/10(金) 08:04:09.05
>>869
何がしたいのか意味不明なので、答えようがない。
みんな努力してくれてるのに失礼。
最低でも桃缶みたいに笑いも提供しないと
873デフォルトの名無しさん:2014/01/10(金) 22:47:25.44
意味もわかってないくせに返信するヴァカがいるスレ
てめえのほうがよっぽど失礼だろうが死ねよ
874デフォルトの名無しさん:2014/01/10(金) 22:50:51.33
>>872
ちゃんと書いてありますよね。

>やりたいことはウインドウが有るか無いかの判断です

意味不明ってバカじゃないですか?バカに回答を求めてないので
返信してこないでください。すごく迷惑です。
875デフォルトの名無しさん:2014/01/11(土) 00:38:40.22
うわあ、しょーもな
876デフォルトの名無しさん:2014/01/11(土) 04:09:47.47
ウィンドウがあるどうかの判断させたいだけなのに
なぜhtaでないとダメなのか
なぜ一行じゃないとダメなのか
なぜAppactivateの戻り値じゃないとダメなのか
意味不明だと言っているのにヴァカ呼ばわり
今時の若い子は短気で人の時間使ってやってもらってる意識全然ないのな
877デフォルトの名無しさん:2014/01/11(土) 04:18:51.13
ま、エスパー回答を求めているなら
エスパーに任せるは、オレはエスパーじゃないから無理
さようなら
878869:2014/01/11(土) 09:41:39.50
>>872
あるアプリケーションを無人インストールしたいのですが

 条件として、ローカルに書き込めない、セットアップ中はウインドウが出ない、ネットワークから実行

インストーラ自体は tasklst | find "setup.exe" で監視できるのですが、最後に OK ウインドウが出てきてしまいます
で、このOKがあれば押しに行きたいのが相談内容の本当の趣旨なわけですが
セットアップ中に外部アプリが起動するとインストーラーがこけるので、UWSCのような外部アプリを用いれません。
ウイルスチェックみたいな感じととらえていただければOKかと思います

そこで苦肉の策としてバッチからウインドウを触りにけ、なおかつもともとOSに入っているWSHを利用したいと思ったわけです

なお、ローカルディスクにはポリシーがあたって書き込み制限されており、何一つファイルを作成できません
バッチでVBSファイルを作成して・・と言う訳にもいかない状態なわけです

 ネットワークドライブに入っているバッチを起動する
 標準で入っているアプリ以外を利用しない
 いつ出てくるかわからない OK ボタンを押したい

 なお、OKが出てもタスクは残り続けるので (これが本当に厄介)
 OK押したかどうか、ウインドウが出たかどうかでループを抜けねばなりません
 無限に押し続けるだけのスクリプトでは意味が無いです

start "" install.exe
:loop
tasklist | find "install.exe"
if %errorlevel%==1 goto loop                                              ;↓一行scriptではこれがエラー
mshta vbscript:execute("Set WS=CreateObject(""WScript.Shell""):R=WS.AppActivate(""TITLE""): WScript.Echo(R) :Close()") | find true
if %errorlevel%==0 goto loopend
goto loop

別の手段があるならそれはそれで歓迎です
879デフォルトの名無しさん:2014/01/11(土) 09:49:14.34
> 別の手段

つ まともなプログラム言語
880デフォルトの名無しさん:2014/01/11(土) 11:45:19.39
バカに回答を求めてないので返信してこないでください。すごく迷惑です。
バカに回答を求めてないので返信してこないでください。すごく迷惑です。
バカに回答を求めてないので返信してこないでください。すごく迷惑です。
バカに回答を求めてないので返信してこないでください。すごく迷惑です。
バカに回答を求めてないので返信してこないでください。すごく迷惑です。
バカに回答を求めてないので返信してこないでください。すごく迷惑です。
バカに回答を求めてないので返信してこないでください。すごく迷惑です。
881デフォルトの名無しさん:2014/01/11(土) 13:02:13.59
>>876は意味がわかったところで答えられないという・・・
話を混ぜっ返しただけのバカ。
質問の前提と内容を区別できないアスペ老害が傲岸不遜な態度をとるスレ。
882デフォルトの名無しさん:2014/01/11(土) 13:21:58.05
>878

WinAPIが使えれば、
SendMessage とか SendKyes を使えるので楽勝なだんけどね。


なかなか興味深いお題であると思うよ。
このスレで聞くよりも、↓にマルチポストした方が建設的な意見を聞けるかも。
HTAをもっと流行らせる計画 Part2
http://toro.2ch.net/test/read.cgi/tech/1220874815/
883デフォルトの名無しさん:2014/01/11(土) 13:34:22.45
>>878
なんていうエラーが出てるの? 標準出力に出力するのはこうじゃないかな。

mshtaから標準出力へ | さすらいのプログラマ - 楽天ブログ
plaza.rakuten.co.jp/u703331/diary/200704200001/
884デフォルトの名無しさん:2014/01/11(土) 13:40:41.09
スパイウェアをうまくインストールしたいって話?
885デフォルトの名無しさん:2014/01/11(土) 13:45:20.40
>>884
Q「
  こうしたいんですけど・・・


>>883
  (おれにはぜんぜんわからない・・・そうだ!Qがやろうとしてることは
  悪いことなんだ、そう考えればおれはわからないから答えないんじゃなくて
  悪いことに加担するのが嫌だから答えないと思われる・・・ようし)
  スパイウェアをインストールしたいって話?
886869:2014/01/11(土) 13:59:01.56
このインストーラーが

 @ インストーラー自体はローカルに保存されていて、バッチはネットワーク上から実行する。
   (ローカルにもネットワークにもファイルが書き込めない)
 A Install.exe がファイルを配置、ウインドウは見えない
 B 配置されたexeファイルが起動してメモリを監視
 C インストーラーが cscript を起動して、レジストリ等の設定を行う
 D 操作の最後に 「操作が完了しました [OK]」 のウインドウが出る
 E Install.exeはシャットダウンまでプロセスが残る
 F 再起動後、ユーザーが間違って実行しないように手動でInstall.exeを消す必要がある
   (これはRunOnceのレジストリにバッチを書き込むことで対策できる)

よって、インストール+修了確認+再起動を行いたいのですが、[OK] のボタンを押した事を確認したい (ウインドウの確認がしたい)
というバッチを作りたい訳です

>>879
外部プログラムはセットアップ中にみつかるとエラーが出てしまいます

あと、874は私ではありません・・・

mshta vbscript:execute では WScript のCreateObjectメソッドはそのまま利用できるのですが
Echo や Quit 、 Sleep メソッドを利用するにはどうすればよいのでしょう
887デフォルトの名無しさん:2014/01/11(土) 14:26:52.08
そもそも、WScriptオブジェクトは、WSH側で用意されているオブジェクトでHTAからは扱えない
扱いたければ、何らかの方法でWScriptオブジェクトを取得しなければならない
以上
888デフォルトの名無しさん:2014/01/11(土) 19:33:00.27
>>887
だからその方法を聞いてんだろうが・・・どんだけ無能なんだよ
889デフォルトの名無しさん:2014/01/11(土) 19:52:18.34
>>888
コンソールに出力するだけなら既に答えは書かれてるだろ
その上で、WScriptオブジェクトは使えないと教えられてるのに、まだ聞くのか?
...どんだけ無能なんだよ
890デフォルトの名無しさん:2014/01/11(土) 20:06:03.07
>>889
>何らかの方法でWScriptオブジェクトを取得しなければならない

これの方法を聞いてんだろ。さっさと言えよ。
お前いまんところわかりきったことをぐだぐだ言ってるだけで
何のアドバイスにもなってないぞ。いい加減にしろよ。さっさと言え。
891デフォルトの名無しさん:2014/01/11(土) 20:08:05.78
A「
 テストでいい点がとれません。どうしたらいいでしょうか?

B「
 テストでいい点をとるには何らかの方法でテストでいい点を取らなければならない。以上。

バカかと
892デフォルトの名無しさん:2014/01/11(土) 20:35:53.43
例えが不適切で、自分のバカさをアピールしてるだけだと気付いてないっぽいw
893869:2014/01/11(土) 21:10:40.31
>>889
すみません、そのコンソールに出力する方法を聞いているのですが
これまでのレスで具体的な回答をまだ得ておりません
どれが答えに該当する(もしくは近似する)レスだったのでしょうか。

>>888=890?
立場的に擁護していただけるのはありがたいのですが
私がお願いしている立場なのに喧嘩腰に要請しているみたいな流れになってしまうので
ここは一つ穏便にお願いします。

しかし言いたいことを一番理解していただけているようで助かります
894デフォルトの名無しさん:2014/01/11(土) 21:46:00.81
>>893
>>866
つーか、2chの発言を裏も取らずにそのまま鵜呑みにするのか?
取りあえず、ググレ粕
895852 869 878:2014/01/11(土) 21:52:24.40
解決いたしましたのでご報告します

今回たどり着いたコマンドは
 MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write("文字列"):close():")
になります。

これはこのままではエラーになるのですが
 MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write("文字列"):close():") | MORE
とやると結果を出力できるようです


 MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(CreateObject(""WScript.Shell"").AppActivate(""タイトル"")):close():") ^
| MORE | FIND "True" >NUL
 ECHO %ERRORLEVEL%

これでウインドウの判断が出来ました


このリファレンスはどのサイトにも記載が無かったので
もし今後同じようなことをやりたい方が出たら参考にしてください
アプリ非導入環境での完全無人インストールに役立つかと思います

皆様ありがとうございました
896デフォルトの名無しさん:2014/01/11(土) 21:56:43.61
>>894
これまではワンコマンドのみで標準出力され、解決すると思っていました

GetStandardStreamで出力してもエラーになります
 MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write("文字列"):close():")
を実際にやってみてください

このエラーが |MORE で取り出すことでエラーにならずに値を取得できる、という点は
どなたも指摘していただけなかったと思います

解決の糸口になったという意味では大変感謝しています
ありがとうございました
897デフォルトの名無しさん:2014/01/11(土) 22:00:38.95
なんかこいつ腹立つな
恩着せがましいっつうの?すなおに感謝の言葉だけ言ってればいいのに台無しだな
898デフォルトの名無しさん:2014/01/11(土) 22:02:40.86
感謝の振りした自慢だ、ナルっぽいからイラっと来る
899デフォルトの名無しさん:2014/01/11(土) 22:07:23.22
>>895
>参考にしてください

すげえ偉そう、傲岸な態度というのはこういうことをいうのだろうな
900デフォルトの名無しさん:2014/01/11(土) 22:10:34.46
おかげさまで解決しましたでよさそうなところだなw
リアルでも嫌われてるんじゃねwだからこんなところで質問してるんだろ
901デフォルトの名無しさん:2014/01/11(土) 22:28:21.51
一番問題なのは、>>866が2日も前に答えを出してくれてるのに見逃してるところだろ
真剣に学ぼうとして無いから、答えを示されても気づきもしないのさ

>>894になぜ「ググレ粕」と言われたのかも理解してないと思われる
902デフォルトの名無しさん:2014/01/11(土) 23:15:54.54
元から「俺すげー」がしたかっただけでしょ
でも大したことじゃないので周りの反応が冷めてるから
自画自賛して自己満足しましたってオチw
903デフォルトの名無しさん:2014/01/11(土) 23:28:40.84
あーよくあるよねwそういうことw
904デフォルトの名無しさん:2014/01/12(日) 01:05:04.81
GetStandardStreamの詳細情報 : Vector ソフトを探す!
www.vector.co.jp/soft/winnt/prog/se409273.html - キャッシュ - 類似ページ
VB6、EXCEL VBA、IE、HTA、WScriptなどのWindowsアプリから標準入出力を使用
する方法.
905デフォルトの名無しさん:2014/01/12(日) 01:21:49.65
>MSHTA.EXE vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(CreateObject(""WScript.Shell"").AppActivate(""タイトル"")):close():") ^
| MORE | FIND "True" >NUL
> ECHO %ERRORLEVEL%

MOREは要らないし

ふつうはこっち
for /f in ('mshta
906デフォルトの名無しさん:2014/01/14(火) 08:24:19.95
さて、誰か口直しにボケて
907デフォルトの名無しさん:2014/01/14(火) 09:06:20.09
>>906
自分がボケてるじゃん

と、906がボケてくれたからツッコミ入れてみる
908デフォルトの名無しさん:2014/01/14(火) 09:24:56.76
出オチかよorz
909デフォルトの名無しさん:2014/01/14(火) 18:25:06.97
すみません
>>906
>>907
>>908
について解説お願いします
910デフォルトの名無しさん:2014/01/20(月) 05:22:29.88
桃白白も逃げ出すくらい本性をむき出しにしてきたな
クソ住人共
911デフォルトの名無しさん:2014/01/20(月) 05:38:47.71
桃白白のレベルでは、ついて行けなかっただけじゃん
912デフォルトの名無しさん:2014/01/21(火) 13:49:06.22
baidu IMEの話に戻すけど、どうやらアンインストールしても
HKCU\Software\Baidu\
このレジストリは残るっぽい。なのでアンインストールしたあとも反応してしまう。

どういう改造をしたらよいと思います?
913デフォルトの名無しさん:2014/01/21(火) 14:18:53.12
自分で消しちまえ。
914デフォルトの名無しさん:2014/01/21(火) 14:27:42.60
検出ツールの話だべ

インストール型ならこれを見るのが常道かな
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
http://msdn.microsoft.com/en-us/library/windows/desktop/ee872121(v=vs.85).aspx

App Paths より Uninstall の方がよさげだが面倒くさい
915デフォルトの名無しさん:2014/01/21(火) 15:18:25.46
レジストリは下記のものだけのようなので
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME
を利用しないといけませんかね
ただHKLM\SOFTWARE\Baidu\IMEJPのゴミって残しておくべきかな

http://blog.livedoor.jp/blackwingcat/archives/1781259.html

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Programs
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\BaiduType Converter(JP)
HKCU\Keyboard Layout\Preload

HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME
HKLM\SOFTWARE\Baidu\IMEJP
HKLM\SOFTWARE\Microsoft\CTF\TIP\{3A5831D5-489E-4A76-91CA-A69A89ACAF38}
HKCR\CLSID\{3A5831D5-489E-4A76-91CA-A69A89ACAF38}
HKCR\subinstall.btod

HKKM\SYSTEM\CurrentControlSet\Services\BaiduJP_IME_Service_3.3.2.6
HKKM\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_BAIDUJP_IME_SERVICE_3.3.2.6
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0210411
916デフォルトの名無しさん:2014/01/21(火) 15:24:47.75
Option Explicit
Const winName = "【Baidu IME】インストールチェック"
Const regKey = "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Baidu IME\"
'#--------------------------------------
' 管理者になーる
Do While WScript.Arguments.Count = 0 And WScript.Version >= 5.7
Dim WMI: Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Dim os, v
Set os = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
For Each v In os
If Left(v.Version, 3) < 6.0 Then Exit Do
Next
Dim APL: Set APL = CreateObject("Shell.Application")
APL.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
WScript.Quit
Loop
'#--------------------------------------
Dim r
Dim WSH: Set WSH = CreateObject("Wscript.Shell")
On Error Resume Next
If IsNull(WSH.RegRead(regKey)) Then
r = WSH.Popup("このパソコンには【Baidu IME】はインストールされていません。", , winName, vbOKOnly Or vbSystemModal)
Else
On Error GoTo 0
r = WSH.Popup("このパソコンには【Baidu IME】がインストールされています。" & vbCrLf & _
"【Baidu IME】をアンインストールしますか?" & vbCrLf & _
"(【猫耳】に泣きつかれても断固アンインストール!!)", , winName, vbYesNo Or vbSystemModal)
Select Case r
Case vbYes WSH.Exec(WSH.RegRead(regKey & "UninstallString"))
Case Else WScript.Quit
End Select
End If
917デフォルトの名無しさん:2014/01/21(火) 15:26:33.97
とりあえずこんな感じで、問題はないけど
918デフォルトの名無しさん:2014/01/21(火) 15:43:24.43
他のスレとか見てたら、とりあえずBaidu IMEはもうよくてhao123とかを駆逐したいみたいな話になってる

駆逐バッチ作る?
919デフォルトの名無しさん:2014/01/22(水) 20:17:50.77
タオパイパイ元気出して
920デフォルトの名無しさん:2014/01/22(水) 20:37:06.34
桃白白、死なないで
921デフォルトの名無しさん:2014/01/24(金) 17:33:07.14
おい、桃白白
922デフォルトの名無しさん:2014/01/24(金) 17:58:25.22
では、御葬式を始めます
923デフォルトの名無しさん:2014/01/24(金) 18:09:19.81
なんみょうほうれんげーきょー
なんみょうほうれんげーきょー
なんみょうほうれんげーきょー
チーン♪
924デフォルトの名無しさん:2014/01/24(金) 18:17:02.11
桃白白さん、何で死んだんですか
いつも楽しいAA貼って2ちゃんねらーを和ませてくれたことを忘れません
日本のIT業界は貴重な人材派遣を失った
ご冥福をお祈りします
925デフォルトの名無しさん:2014/01/24(金) 20:28:23.78
ゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
926デフォルトの名無しさん:2014/01/24(金) 20:40:14.17
俺たちは貴重な玩具を失った
927桃白白 ◆9Jro6YFwm650 :2014/01/25(土) 20:18:37.73
桃白白の右手がピンクに光る!コードを書けと轟き叫ぶ!!

     |┃三        / ̄\
     |┃           |     |
     |┃         \_/
 ガラッ. |┃         __|__
     |┃  ノ//   ./:::\:::/:::\     うおおおお!!!
     |┃三    / <●>::::::<●> \
     |┃    /   (__人__)    \
     |┃     |       l;;;;;;;l        |
     |┃三   \      l;;;;;;;l     /
     |┃三   / ̄ ̄ヽ`ー'ノ ̄ ̄ ̄\
928デフォルトの名無しさん:2014/01/25(土) 20:19:04.11
こすりすぎだろ
929桃白白 ◆9Jro6YFwm650 :2014/01/25(土) 20:21:43.32
じゃあさ、みんなでBase16のエンコード、デコードの処理を書いてみない?

RFC 4648 ベース64とベース32とベース16符号化
http://www5d.biglobe.ne.jp/stssk/rfc/rfc4648j.html
930デフォルトの名無しさん:2014/01/25(土) 21:43:16.30
自分が欲しいだけ?
違うならまず言い出しっぺから提示しよう

まぁググればサンプル有りそうだけどね

言い出しっぺが提示出来なければ、この話は無かったということで
931桃白白 ◆9Jro6YFwm650 :2014/01/25(土) 21:52:58.73
>>930
いまのところは桃白白がほしいだけだよ。
でもみんなでいっしょに作ろうよっていう桃白白の
この指とまれに賛同してくれるひとが現れたらみんなの目標になる。
みんなで力を合わせて一つのものを作り上げる、それってとっても
すてきなことだと思う。作るのを嫌だと思ってるひとに無理強いして作って
もらおうとは思ってないんで作りたくないならそれはそれで別にいい。
考え変わったらまたレスしてよ。桃白白待ってる。
932デフォルトの名無しさん:2014/01/25(土) 22:10:59.10
結局、綺麗事並べても本質は物乞いかよw

さて、物乞いに踊らされて提供してくれるおマヌケさんは出てくるか否か、、、
933片山博文MZ無能 ◆T6xkBnTXz7B0 :2014/01/25(土) 22:14:24.74
二十年後に消えてなくなるような言語でそんなマイナーな符号化しても……すぐ使えなくなる予感がする
934桃白白 ◆9Jro6YFwm650 :2014/01/25(土) 22:18:04.01
>>932
違うよ、桃白白貧乏だけど乞食じゃないよ!
やる気のある人たちが集まってこう作ったらいいと思うとか
議論するのが桃白白すきなんだよね。桃白白はそういう人を
マヌケだとは思わない。むしろ尊敬するかな。技術的な会話ができる人って
かっこいいと思う。参考になるかわかんないけど、これ桃白白。
http://pds.exblog.jp/pds/1/200712/26/16/c0071416_14451776.jpg
935デフォルトの名無しさん:2014/01/25(土) 22:24:34.57
あるじゃん
14、15年前ですって

VBScript で BASE64 の処理をする (unibon):
http://www.geocities.co.jp/SiliconValley/4334/unibon/asp/base64.html
936デフォルトの名無しさん:2014/01/25(土) 22:40:42.55
ネタが古くさい。もっといまどきのnode.jsと連動してなんかやってみね
とかネタふれよ
937桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 14:55:27.17
>>933
Base16はそんなにマイナーでもないと思うよ。

>>935
Base64じゃないよ、Base16だよ。

>>936
桃白白はnode.jsにまったく興味ないから桃白白がそういう話をふるのは
一生ないけど、>>936がそういう話をしたいと思ってるのなら自分で話をふればいいと思う。
こういう話をふれと他人に命令するのは逆効果じゃないかな。心理的リアクタンスっていうの?
そういうのもあるからさ。人間は感情の生き物だからそういうところには気を使わないと。
興味がある人がいたとしてもこいつとは話したくないと思ってしまうかもしれないよ。
命令っていうのは上位の人間が下位の人間に行うものだから命令口調でものを言うっていうのは
自分を上位として扱えと相手に伝えることになるんだよね。ネットの議論でそういう関係って
めんどくさいだけだからこいつと絡むのはやめとこうとかそういうことになると思うんだよね。
>>936は誰かが話し振ってくれるのを受け身でじっと待ってるんじゃなくて自分から
積極的に動くべきだと思う、もちろん対等に議論するっていう前提でね、頑張って、桃白白応援してるよ☆(ゝω・)vキャピ
938デフォルトの名無しさん:2014/01/26(日) 17:29:21.14
もう終った話なんだからどうでもいい
939桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 17:34:17.32
>>938
何が終わった話?
940デフォルトの名無しさん:2014/01/26(日) 18:32:50.04
皆解ってることだから、一人くらい解ってない奴が居ても改めて説明する必要なし
941桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 18:43:23.81
>>940
皆わかってることをどうやって知ったの?
じつはここに書き込んでいる人たちはLINEでお友だちの間柄で
俺が言ったことわかるよねと確認したとか?もしそうならおつかれさまです。
942デフォルトの名無しさん:2014/01/26(日) 18:46:15.51
>>940
みんなわかってるけどお前だけわかってない
構わず放っておこうというのもみんなわかってる
943桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 18:50:39.50
>>942
みんな何をわかってる?
944デフォルトの名無しさん:2014/01/26(日) 19:38:23.29
俺も解ってるよ( ̄ー ̄)ニヤリッ
945桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 19:39:36.63
>>944
何をわかってるの?
946デフォルトの名無しさん:2014/01/26(日) 21:08:51.96
君一人が解ってないことを
947桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 21:19:05.75
>>946
「君一人が解ってない」
この解ってないという動詞を修飾する対象格は何かと聞いてるんだよ。
君は桃白白が何を聞いているのかもわかっていないじゃないかみたいなw
948桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 21:22:47.87
へたに自分はわかってるんだ、自分は賢いんだみたいな態度をとると
自分の行動のハードルを高めて恥かくだけだから、自分は頭が悪いんだみたいに
したてに出るのが得策なんじゃないかと思うんだよね。昔のひともきっと
そう考えて日本語に謙譲表現とかが生まれたんじゃないかと桃白白思います。ありがとうございます。
949デフォルトの名無しさん:2014/01/26(日) 21:28:05.22
俺もわかっています。
950桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 21:29:50.50
桃白白はわかっていません
951デフォルトの名無しさん:2014/01/26(日) 21:31:05.90
じゃあ俺もわかりません。
952デフォルトの名無しさん:2014/01/26(日) 22:10:32.61
遊ばれてることに気付かずにマジで返してる本人と
皆で弄って遊ぼうって趣旨を理解して弄ってる奴等
953デフォルトの名無しさん:2014/01/26(日) 22:52:07.47
どうでもいい
954デフォルトの名無しさん:2014/01/26(日) 23:03:43.83
復活してそうそう元気だな
955デフォルトの名無しさん:2014/01/27(月) 06:15:07.63
ずっと元気だったじゃん
別コテで
956ピラフ:2014/01/27(月) 23:12:34.24
配列の10から20の間にだけ値を入れたいときってあるじゃん?
そういうときに使える超素敵クラスをピラフ作ったからこれ
使えばいいと思うよ。

Class DifferenceArray
 Dim Data
 Dim First

 Sub Initialize(Size)
  ReDim Data(Size)
 End Sub

 Public Default Property Get Item(Index)
  Item = Data(Index - First)
 End Property

 Public Property Let Item(Index, Value)
  Data(Index - First) = Value
 End Property

 Sub Copy(Arr, Lower, Upper)
  First = Lower

  Dim i
  For i = Lower To Upper
   Item(i) = Arr(i)
  Next
 End Sub
End Class
957デフォルトの名無しさん:2014/01/28(火) 08:03:51.85
>>956
まともに動きません
958デフォルトの名無しさん:2014/01/28(火) 13:51:21.26
>>956
安定のゴミコードw
959デフォルトの名無しさん:2014/01/28(火) 19:09:44.78
桃白白って、なんで毎回使えないクラスとか貼って自慢げになってるんだ?
960ピラフ:2014/01/28(火) 22:48:06.51
>>957
ピラフが魂こめて書いたコードが動かないわけがないでしょうが!
961デフォルトの名無しさん:2014/01/29(水) 00:12:15.08
本人の想定どおりには動いているんだろうけれど、
仕様がまともじゃないのでまともに動きません。
962デフォルトの名無しさん:2014/01/29(水) 00:14:27.06
「仕様: 俺のやりたいことをやる」 なら合致してる
いずれにせよゴミ
963ピラフ:2014/01/29(水) 06:07:24.34
>>961
使い方間違ってんじゃないの?どう使ったの?
964デフォルトの名無しさん:2014/01/29(水) 07:36:25.10
使い方間違ったら、何をどう間違ったのか表示するのが本物

まあ桃白白がそのレベルに達してないのは知ってるけど
965ピラフ:2014/01/29(水) 22:55:52.64
一度だけセットできるプロパティ

Class OneSet
 Dim Already_
 Dim Value_

 Sub Class_Initialize
  Already_ = False
 End Sub

 Property Get Value
  Value = Value_
 End Property

 Property Let Value(pValue)
  If Already_ Then
   Err.Raise 1
  End If
  Value_ = pValue
  Already_ = True
 End Property
End Class
966デフォルトの名無しさん:2014/01/29(水) 23:01:54.66
>>963
コードを評価しようにも、評価するレベルに達していない

取りあえず、Copyメソッドを使った場合に、メンバー変数Dataが配列であるという保証がどこにもない
967デフォルトの名無しさん:2014/01/29(水) 23:04:56.18
>>965
残念ながら、想定通りには動かないだろう。
968ピラフ:2014/01/29(水) 23:10:43.48
>>966
InitializeメソッドでReDimするからDataは配列だよ。

>>967
動くよ。だから残念じゃないんだよ。
969デフォルトの名無しさん:2014/01/29(水) 23:21:05.45
>>956
白桃のコードは嫌いじゃないよ
白桃は嫌い
コードコジキにおいそれとくれてやる所が
970デフォルトの名無しさん:2014/01/29(水) 23:21:28.60
>>968
Initializeメソッドが、Copyメソッドよりも先に使われるとは限らない

あと、Already_にFalseを代入すれば、何度でもセット出来るよ
971ピラフ:2014/01/29(水) 23:25:44.63
>>970
ズボンはく前にパンツはくとは限らないといってるようなもの。
ズボンはく前にパンツはけばいいし、
InitializeメソッドをCopyメソッドより先に使えばいいよ。

_が付いてるってことはプライベートな変数だから
触っちゃいけない物だなって予想できるよ。
972デフォルトの名無しさん:2014/01/29(水) 23:35:42.42
>>971
ズボンをはく前にパンツをはくとは限らない
というより、パンツをはかずにズボンをはきたいんだからしょうがないだろ?
パンツをはかせたいなら、パンツをはかなきゃいけない状況にすればいいじゃん

_がついたらプライベートなんて初耳だね
Privateと宣言しなければ、Publicであるとみなされる
それがVBScriptのルール
973デフォルトの名無しさん:2014/01/29(水) 23:53:37.20
>>972
俺も初耳だ
974デフォルトの名無しさん:2014/01/29(水) 23:54:15.30
>>972
パンツを脱ぎたくなるような状況を優しく教えてあげてよ
975ピラフ:2014/01/30(木) 05:28:11.79
>>972
たいていの人はパンツをはくから問題ないと思ってます。
パンツはかないのはただの変態だと思ってます。変態のために
ピラフはコード書いてるわけじゃないんです。変態は嫌い。

_が付いてたらそれは触っちゃいけない可能性があるってことを
今日から気をつけるようにすればいいと思うよ。_書く時点で
あれ、これ直接参照したらまずいんじゃないだろうかと思えばいいよ。
アクセス修飾子を覚えられたのならこれもすぐ覚えられると思うよ。
976デフォルトの名無しさん:2014/01/30(木) 08:01:31.07
>>975
パンツは履かない主義だが、褌つけてるからOK

> _が付いてたらそれは触っちゃいけない可能性がある
ってことは、触らないと使えない可能性もあるってことじゃん
977デフォルトの名無しさん:2014/01/30(木) 11:15:49.46
設計ミスったなプークスクスっていいながら
割り箸でつまむ感覚でいるのがいいよ
978デフォルトの名無しさん:2014/02/01(土) 11:17:58.74
手書きのアンケートを1万件位入力してみたら、アクセス修飾子の重要性が理解できる

まあ、どちらかというと、人間という生物に絶望できると言ったほうが正確だがな...
979デフォルトの名無しさん:2014/02/01(土) 12:50:18.65
> 手書きのアンケートを1万件位入力してみたら
そのレベルの話なのかよw
980ピラフ:2014/02/01(土) 14:02:59.15
アンケートとアクセス修飾子にいったいどういう関係が……
981デフォルトの名無しさん:2014/02/01(土) 14:22:57.60
>>979
まじで、そのレベルの話だよ

>>980
やってみれば分かるよ

一つ選べって質問に複数選ぶなんて当たり前、質問内容と違う回答を自由記述欄に400字詰め原稿用紙1〜2枚程度書いてたりするし
新たな選択肢を勝手に付け加えて○付けてたりとか
人間ってさ、その程度なんだぜ

最低限アクセス修飾子位つけてないと、どんな責任を負わさせるか分かったもんじゃない
982デフォルトの名無しさん:2014/02/01(土) 14:43:48.91
アクセス修飾子というのは仕事とプライベートを厳格に切り離すという文化に基づくもので
サービスなんとかの名の下にプライベートを捧げつくす文化では機能しない
983ピラフ:2014/02/01(土) 15:17:08.49
底辺の作業者がアクセス修飾子にこじつけてむりやり愚痴をいってるようにしか思えない
ピラフはそういう大人にだけはなりたくない!ピラフずっと子どもでいい!!
984デフォルトの名無しさん:2014/02/01(土) 15:54:21.51
子供というか、幼稚なだけというか

まだまだアクセス修飾子の本当の有効性も、まるで解ってないし
985ピラフ:2014/02/01(土) 16:00:00.16
アンケートで質問内容と違う回答を書く。
VBScriptのスレでアンケートについて書く。
やってることはさほど変わらないのじゃないだろうか。
書いた本人は関連があると思っている。しかし、読む人間は
関連がないと思っている。ゆえに質問と違う回答だと思えてしまう。
その程度だと思う前に、相手の立場に立って物事を考えていく
スーパーソフトハートが必要なのである。ピラフこの論文提出して社会学の博士号もらってくる。
986ピラフ:2014/02/01(土) 16:04:29.22
987デフォルトの名無しさん:2014/02/01(土) 16:37:29.26
桃白白って文章に特徴があるから
コテ変えてもすぐ解るよね
988デフォルトの名無しさん:2014/02/01(土) 16:47:31.94
>>985
> その程度だと思う前に、相手の立場に立って物事を考えていく
無理だね
人間なんて、自分の事しか考えちゃいないよ
989ピラフ:2014/02/01(土) 16:54:21.73
なんか中二っぽいw
990デフォルトの名無しさん:2014/02/01(土) 17:26:15.06
第二級戦闘態勢命令に従い、チューニー兵器のアクセスロックを解除します
991デフォルトの名無しさん:2014/02/01(土) 17:46:50.83
誰もアクセスしてこないね、兄ちゃん。
992デフォルトの名無しさん:2014/02/02(日) 21:49:19.78
まぁこのスレ限定のふなっしーみたいやつだよな桃缶って
993デフォルトの名無しさん:2014/02/02(日) 22:50:36.60
うまい例えだw
994ピラフ:2014/02/03(月) 05:30:12.26
ピラフ、恋人と別れたんだ。4年付き合ったんだけどね、別れようって言われて
ピラフがんばったんだけど無理だった。最初あったときはすごい器が大きい人
っていうか、ピラフのこと認めてくれる人でピラフそれまで尊敬されたりとか
されたことなかったから、不思議な感じだった。いろんな意味で大きい人だなあ
って思える人だった。ピラフも尊敬してたし、向こうもピラフのこと尊敬して
くれてる感じでお互い一緒にいることが心地よかったんだよね。でも4年たって
それが当たり前になって新鮮味がなくなったっていうの、変に落ち着きすぎちゃってさ、
結果別れることになったんだよね。でもいまでも大きい人だなあっていう気持ちは変わってない。
それ以来、ハンドル名を桃白白からピラフに変えたの。もしさ、人間的に大きくて
自分に自信があるっていう人いたら画像うpしてくれない?

ちなみにこれが元彼
http://blog-imgs-60.fc2.com/w/a/r/warotasokuhou/min_otintin_003_20130802225153.jpg
995デフォルトの名無しさん:2014/02/03(月) 05:42:33.29
>>994

> 994 名前:桃白白 [] 投稿日:2014/02/03(月) 05:30:12.26
>    桃白白、恋人と別れたんだ。

まで読んだ
996デフォルトの名無しさん:2014/02/03(月) 05:51:13.23
>>994
グロ注意
997デフォルトの名無しさん:2014/02/03(月) 11:47:19.25
桃白白さん、PowerShell に引っ越していろいろ教えてくれないかな。

そういうツールを使えばできるのは分かってるけど
PowerShell でやりたいんですよ。
だけど誰もいなくって。
ttp://toro.2ch.net/test/read.cgi/win/1359719778/206-208

え、WindowsAPI は無理?
やっぱりその程度の人だったんですね。
滅菌しました。
998デフォルトの名無しさん:2014/02/03(月) 13:27:30.22
次の患者さんどうぞ〜
999デフォルトの名無しさん:2014/02/03(月) 17:04:54.02
次いるの?ここでいいだろ

VBSで便利なプログラムを作れスレ
http://toro.2ch.net/test/read.cgi/tech/1170492587/
1000デフォルトの名無しさん:2014/02/03(月) 17:07:25.42
チャンスを与えたんだから取るべき時に1000を取りなさいよ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。