1read 100read
2012年07月プログラム189: VBScriptについて必死に話し合うスレ (335)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
【Delphi互換!?】FreePascal/Lazarus その2【GPL】 (288)
インテルC++コンパイラ9.0発表! (586)
【Delphi互換!?】FreePascal/Lazarus その2【GPL】 (288)
【QBASIC互換!?】FreeBasic【GPL】 (512)
MVVMについて語ろう (398)
「コンパイラ・スクリプトエンジン」相談室15 (595)
VBScriptについて必死に話し合うスレ
1 :2009/05/12 〜 最終レス :2012/10/11 VBScriptについて必死に話し合ってください VBS以外はスルーの方向で(・∀・) ※質問スレではありません、質問は最低限し抑えましょう※
2 : なんでぇぇぇぇぇぇぇぇぇぇぇっ いまさらぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁっ!! ぶぃっ・う゛ぃーっ・すくりぷとぉぉぉぉぉぉぉぉっ なんでっすかーーーーーーーーーーぁぁぁぁぁぁあああああああああああ ぱわあああああああああぁぁぁぁぁぁぁっっぉああああああああああっ しぇるぅじゃなくてぇぇぇぇぇぇぇぇぇぇぇーーーーっ!! みたいな感じでよろしいでしょうか。
3 : このスレッドは天才pンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
4 : >>3 お前らゴールデンウィークの間なにしてたんだよ。 休んでもいいけど、アイちゃんのコンソールをそのままにして行くなよ。
5 : VBScriptのよさを全世界に広げるためには まずIE以外のブラウザで使えるようにすべきだと思うんだ。 VBScriptはJavaScriptのように変数や命令を大文字小文字を分けて書く必要もなく、 エラーが出てもOn Error Resume Nextで全部エラーを無視してくれる。 こんなすばらしい言語なのになぜIE以外で使われないのか理解できない!!
6 : だってお手軽なIDEがないもん VBSEditってのがあるけど、それなりな金額がかかるし(お金を払う価値はあると思うけど) あと、導入に適した本がなかなか見当たらない。 いままで見てきた本で一番役に立ったのは WSHクイックリファレンス ttp://www.oreilly.co.jp/books/4873113091/ これかなぁ IEはシラネ
7 : msscrdbg.exe というのがあったがまともに動かない。 そもそもデバッグ開始ができない。
8 : 悪用法しか思いつかない
9 : そこでPowerShellですよ
10 : VBSで、ブートローダの設定を切り換えるって可能? 例えば、XPとVistaをデュアルブートしてたらXPを無効にしたり。
11 : ふつうのVBとVBSってどのような特徴があるのですか? 全くの初心者ですが、今からプログラムを始めるならばどちらが適していますか?
12 : 両方とも適してない
13 : 言語には用途ってもんがある。 プログラムで何がしたいんだ?そこが重要だ。 回答によってはVBもVBSも候補になりうる。
14 : >>10 Vista側でVBSからbcdeditコマンドを叩く http://technet.microsoft.com/en-us/library/cc731662(WS.10).aspx
15 : サーバーサイドvbscriptで開発してるが、 ・クラス機能がしょぼ過ぎる ・try catchを実現するために、関数を1つかまさなきゃらないのは面倒過ぎ ・ショートサーキット評価のないif文(おかげでネストが深くなる) ・Null引数で落ちる組み込み関数多過ぎ ・Set 〜 = New のせいでオブジェクト型/その他を混在で返す関数が作れない くらい最悪
16 : なんでサーバーサイドの開発で VBScript を選んだの?
17 : それを聞くのはヤボだろ。既存のシステムの維持拡張させられてるって可能性もあるわけだし。 え?新規?死んでください。
18 : vbscript って、visual studio でプログラムを書けないの? サクラエディタとか秀丸とか必要なの?
19 : エディタありゃ書けるよ。つまりVisualStudioでももちろん書ける。
20 : >>19 ありがとう。vbscriptの拡張子はなんにすればいいですか?
21 : *.vbs だよ、なんでググれないの?
22 : >>21 バカでごめんよ。
23 : まぁ、どうせ糞スレなんだ どんな書き込みだって許せる板さ(´_ゝ`)
24 : 最近使い始めたけど、面白いね 文字列を実行コードに出来るんて新鮮だった これ使えばテンプレートみたいな事出来そう カオスになりそうではあるがw
25 : 文字列を返す関数の戻り値を変数の参照にする方法はありますか?
26 : http://www.google.com/search?hl=ja&safe=off&num=50&q=%22%E5%A4%89%E6%95%B0%E3%81%AE%E5%8F%82%E7%85%A7%E3%81%AB%E3%81%99%E3%82%8B%22&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
27 : VBScriptプログラムを学習するのに、個人的にこの本は良かった。 VBScriptハッカーズ・プログラミング http://www.amazon.co.jp/dp/4896272838 ただamazonの評価にあるように、これは学習用の教科書として使う。 サンプルをとにかく試したいならサンプル集を探した方が良い。 っていうかサンプル集は本を買うよりググった方が良いと思う。
28 : VBScript は徐々に消えつつあるけど、PowerShell は普及してるんかね
29 : なんのかんの言ってもVBScriptが現在の標準だろ 少なくともWindows 2008でも標準インストールされないPowerShellを普及してるなどとはとても言えない
30 : >>27 俺もその本で入った。 サンプル見ながら色々できるし、最初は便利だよね。 VBScript+HTAで色々やるんで、辞書みたいなのが欲しいんだけど、 良い本知ってる人居ますか? 機能逆引きできて、書式が出てればそれでOK(サンプルとか不要)な感じなんですが。 名前は忘れたけど、白地に文字の表紙で、10x20cmくらいの縦長の薄い本で VBScriptの簡易リファレンスみたいなのがあって便利だったんですが、 今は絶版だったと思います。 WSHとVBScriptで別々に買うのが良いのかな。
31 : VBScriptはHTAと組み合わせるとかなり色々できるようになるよね。 Windows上ならメモ帳で書いて、ほぼどこでも動作可能、 言語的にも色々な面でお手軽な所が好き。 クリップボード使えたりD&Dでの読み込み出来たり 文章や画像の表示もIE使えばIEで出来るだけ表示できるし 思った以上に色々できる。 ノートン先生に「悪意のあるプログラム」扱いされるのが許せん。 悪意は無いのに(´・ω・`)
32 : ノートン先生使ってないけど オレオレ署名入れてもだめ?
33 : MSXML2.XMLHTTPを使ってWebページの自動取得をしています。 Refererで制限かかってるページあるんですけれど、 VBSで偽装できますか?
34 : 調べたけど、久しぶりにDLLヘルを見た
35 : >>32 俺も使って無いからよく知らないが、 ノートン先生入れてる友人にVBScriptで作ったプログラム渡したら 「悪意のあるプログラムなので隔離しました」 とか出たらしい。 悪意はねぇよな。 自己レスだけどポケットリファレンスVBScriptって本が割りとよかった。 よく探したら家にあった。
36 : >クリップボード使えたり htmlfileは、about:blankのセキュ設定次第なんだよな ナンか回避方法ないかと、てstしたがムダだった
37 : >>36 HTAなら使用可能だと思うよ。
38 : >>37 今は、インターネッツのセキュ設定を変更しない方法で、IE使ってる もちろん、HTAも使えるんだけど 要は、アウトプロセスじゃなくインプロセスでやりたくなったわけ^^
39 : 33です。 CreateObject("InternetExplorer.Application")して Navigateメソッドで自己解決しました。 ところで取得したDocumentオブジェクト内のImageオブジェクトを そのままファイルに保存すること、できませんか?
40 : VBScriptとHTAでファイルのバックアップを自動で取るプログラム作ったんだけど、 作業途中で止める方法をどうするかで困ってる。 何か良い方法ないかな。 ループで指定フォルダ下のファイルを、まぁちょっと色々加工してから自動的に別の場所にコピーするんだけど、 処理中はHTAのボタンとかは弄れないし・・・ 別のHTAで識別用ファイルを生成して、そのファイルを発見し次第、緊急停止 という方法を思いついたけど、どう考えてもスマートなやり方じゃないよね。
41 : >>40 処理中止後の後処理が不要であればCScript [CTRL]+[C]で処理を止めることができる
42 : >>41 ありがとう。 わりと大事なファイルのバックアップで、 DVDへの書き込みとサーバー上へのファイル移動を行なうから、 出来るだけ強制終了的な終わり方は避けて、 何らかの方法でループ中に判定で正常終了したい。 あと、HTAで使ってると、WScriptやCScriptと違ってmshtaとして動くから そういうショートカットキーとかは使えないんじゃない?
43 : >>42 HTAのボタンを常に押せる状態にしたければ、実処理を別プロセスにする方が良い 私ならCScriptで作った「バックアップ処理」と「ロールバック処理」をキックするけどね [CTRL]+[C]を使わない場合は↓のようにしてEOF検出変化を利用する 待ち側:判定用ファイルをリードオンリーで開きっぱなしにして定期的にEOFを判定 指示側:判定用ファイルに追記
44 : >>43 実処理を別プロセスにする というのが良さそうですね。それで試してみます。 バックアップ処理自体はCScriptに投げてHTAの方の処理は終了、 緊急停止などGUI操作専用にするって感じですかね。 一つのファイルを開いておいて中身で判定というのも、ファイル自体の存在チェックよりは良さそうですね。 値の受け渡しも出来るし、進行状況の表示にでも使おうかな。
45 : これまでCユーザでしたが、最近業務でVBScriptを使うようになり現在勉強中の者です。 VBScriptを使っていて、ちょっと不便だなと思ったことがあります。 それは、関数にオブジェクトのプロパティを参照渡しすることができないということです。 たとえば、call swap( obj1.x, obj2.y )を実行して、obj1.xとobj2.yの値を 入れ替えようしても、うまくいきません。 うまくオブジェクトのプロパティを参照渡しする方法は無いのでしょうか? よろしくお願いします。
46 : すみません。ageさせてください。m(_ _)m
47 : >>45 無理。 プロパティは事実上、Get/Setという2つの関数からできているのと同じ(正確にはSetRefの場合もあるが)。 そういう意味で変数と違うから参照渡しはできない。 VBSだとCallByNameも使えないしねえ。
48 : だな
49 : ASPが出た頃はこれからVBScriptが主流になると思っていたが 今では書店でもあまり見かけなくなった
50 : >>47 ありがとうございました。
51 : WSH Lab.掲示板の過去ログ読んでたら、vbsからインプロセスで窓オブジェを使う方法がわかった 先人恐るべし
52 : オブジェを飾ってどうするつもりだ
53 : つまらん
54 : IEを操作するクラスを作っています。 IEからのイベントに応答する場合、 CreateObject("InternetExplorer.Application","IE_") などと書きますが、 コールバックされる IE_ から始まるプロシジャを自作クラス内に置くことはできませんか? あるいはc++でいうスタティックなプロシジャにするにはどう書けばよいのでしょうか。
55 : VBSで二重起動防止ってどうやればいいでしょう? Mutexとか使えると良いのですが・・・
56 : VBScriptの機能拡張はCOM一択
57 : >>55 fso.opentextfile(wscript.scriptfullname,8)
58 : >>54 executeglobal "set IE_hoge=getref(""hoge"")"
59 : scripting.dictionaryは順序ほ保持してくれる連想配列ですか?
60 : できないことは多すぎるくせに、キッチリすることを偏執なまでに要求するひどい言語だった >>1 には悪いが、モダンな言語使った方が絶対楽だ!
61 : 一体何をやろうとしたんだ?
62 : scripting.dictionaryはVBScriptと関係ないな
63 : >>61 恋人ができるスクリプト
64 : 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 : >>64 なんでfsoで更新日を変更しないの?
66 : おぉ 変更できないのか
67 : どうもcygwinのtouch側の問題みたい。 パスに日本語があるとダメッぽい。Pathがアルファベットだけなら更新日が変わってくれた。 ディスクトップのパスは「c:¥User¥[xxx]¥Desktop」と英語表記だからOKなのかな? XPの時はどうだったろ? この前、cygwin自体がUTF8対応で変更されたみたいだからその影響かな?
68 : >>64 なんでshell.applicationで更新日を変更しないの?
69 : う〜ん、やっぱりvbs側かなぁ パスに日本語があると exe 側に渡される引数が「'」で挟まれた状態のまま渡されてくる 'C:\Users\myname\Desktop\aあ' C:\Users\myname\Desktop\a 「'」で挟まないとパスに空白があると上手く動いてくれないし >68 >なんでshell.applicationで更新日を変更しないの? どの関数を使うの?
70 : >>69 なんで「"」でパスを挟まないの?
71 : vbs以前の問題としてExplorerの段階で「"」で挟んだ文字列が作られてくる 専用の改造版touch.exeを作って対応するかなぁ 単純な「"」を打ち消すだけのラッパでOKかな >>70 > >>69 > なんで「"」でパスを挟まないの? > 「"」で挟んでも一緒だった
72 : >>69 なんでPowerShell使わないの?
73 : なんで質問ばっかなの?
74 : どれが質問なの?
75 : >>69 なんでtouchのショートカットにしないの?
76 : てか、VBScript開発でなんでIDEなんて要るのか 疑問に感じる
77 : なんでtouchのショートカットにしないのるのか 疑問に感じる
78 : VBScriptとJScript 実行速度は同じ?
79 : >>78 VBScriptの方が若干高速 実行速度より性質の違いを気にするべきだと思うけど・・・
80 : PowerShellはIE操作出来ないからな。 やっぱVBSしかないか〜
81 : VBSなら一応Windows95やWindowsNTでも使える。 外部コマンド関連などWindows9x系とWindowsNT系で挙動が微妙に異なる場合もあるが。
82 : てっきり化石スレかと思ったら比較的新しいんだなw 別にここでもいいんじゃないの VBSで便利なプログラムを作れスレ http://pc12.2ch.net/test/read.cgi/tech/1170492587/
83 : 初心者dosからきました。 やりたいことは、 既存のタスクを一括で"タスクを実行するためにスリープを解除する” に変更したいです。 schtasksのオプションでは出来ないため、悩んでます。 ttp://64.4.11.251/en-us/library/aa383306%28VS.85%29.aspx Property WakeToRun As Boolean とかかれても具体的にどうすればいいやら
84 : ttp://social.technet.microsoft.com/Forums/en-US/ITCG/thread/b1a8b34f-8a21-43d8-90b5-127e69289116
85 : ttp://msdn.microsoft.com/en-us/library/aa383665(v=VS.85).aspx
86 : BrowseForFolder について質問なんですが Optionsに&H4000を指定して ファイルも表示出来る状態にした場合に 選択されたファイルのパスを取得する方法はありますか?
87 : ない
88 : SHBrowseForFolder()
89 : 代わりに 8856F961-340A-11D0-A96B-00C04FD705A2 か 55136805-B2DE-11D1-B9F2-00A0C98BC547 を使えばやりたいことはできるんじゃないか
90 : getref、クラスの中のメソッドも参照しろよ!
91 : 今更ながらに、VBScriptで.netのクラスを一部使用できることを知った。 http://technet.microsoft.com/ja-jp/magazine/2007.01.heyscriptingguy.aspx
92 : >>90 クラスの中からexecuteglobalでglobal contextに作ればよい
93 : やりたいこと 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 : ExcelVBAの定義(xlDown,xlLastCellなど)はvbs側でそのまま使えない vbs側では「自分で定義して使う」or「値を直接入れる」しかない
95 : >>94 サンクス! 今のところ、上の気持ち悪いコードしか思い浮かばないので、もう少し考えてみる。 自分で定義・・か、少し時間がかかりそうだな。俺には ありがと
96 : 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 : >>95 今回は自分で定義する必要は無いかな。 >>94 さんの言うとおり、値を直接入れれば終わり。 msgbox getExcel.sheets(1).cells(65535,1).end("-4162").row で動くはず。 試してみて。 ExcelやVBの定数を調べる時は、 イミディエイトウィンドウに ?xlup と入力してリターン押すと値が表示されるよ。
98 : >>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 : excel4macroだと、セルを直接指定しないと取得出来ないので、できないかもしれません。 スレ汚し失礼しました。
100read 1read
1read 100read TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
Visual Studio IDE環境 (550)
<XML総合 part="3"/> (757)
パR、パチスロの基盤のプログラム 2 (498)
D言語は多分コケると思っている人の数→ (377)
プログラム関係の雑誌について (223)
小学生プログラマだけど質問ある (236)
--log9.info------------------
【岐阜・三重・滋賀】 鈴鹿山脈 9 【最高峰1248M】 (1001)
【野宿野郎】キャンプでの犯罪行為★2【負け犬】 (657)
アルコールストーブ総合スレッド Part20 (409)
愛用のストーブ・バーナーは?55Fire目 (882)
▲△▲今日の立山3日目▲△▲ (971)
レインウェアを語るスレ その14 (700)
BE-PALネタスレ その19 (733)
▲お前ら福島に来い!!福島の山やキャンプ場▲ (555)
【LED】ヘッドランプについて語ろう 32灯目【フィラ】 (605)
登山装備としての携帯・アマ/CB無線・衛星電話総合 (578)
【追わず】単独登山14【追われず】 (237)
三重県の山 その二 (332)
【危険】日本国内登山難所スレ 11【困難】 (675)
地図・地形図総合スレ 11枚目 (800)
狭い林道を走る怖さ (336)
【長野県】木曽御嶽山を語ろう【岐阜県】 (418)
--log55.com------------------
【ADIDAS】YEEZY イージー part104【アディダス】 【オワコン】
Nike Air Jordan 225
スニーカーyoutuber総合スレ★8
【New Balance】ニューバランス164
■プロネイリストが語らうスレ■長さ出し47本目■
海外通販・個人輸入追跡スレ
◆ハロプロ◆メイクについて語るスレ◆Part118
【BA】ふれあいスレ 21カウンター【客】