1read 100read
2012年07月プログラム189: VBScriptについて必死に話し合うスレ (335)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
訃報: C 言語の開発者、デニス・リッチー氏が死去 (576)
【漏れは】猫でもわかる質問スレ【猫以下です】 (494)
魁け! Ruby 1.9.X (305)
Java 高速GUI SWT 3 (644)
【.NET】F#について語れ2【OCAML】 (339)
MFC、Win32++を超えるライブラリを作るスレ (945)
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元 削除依頼 ▲
NetBeans Part6 (869)
初心者の俺が初めて覚えるプログラム言語 (471)
VBScriptについて必死に話し合うスレ (335)
MFC、Win32++を超えるライブラリを作るスレ (945)
GPGPU#5 (274)
関数型言語ML (SML, OCaml, etc.), Part 6 (574)
--log9.info------------------
リーマンはキヤノン製品をボイコットしよう! (444)
【DELL】デルの複合機 810/924/964【レーザも】 (374)
【今日も朝から】不正書込【エプネット】 (218)
【写真画質最強】PM-G850【伝説復活】 (710)
【HP】ps3210ってどうよ【L版最速?】 (208)
【今日も朝から】不正書込【キヤノネット】 (300)
エプソンのインクあるのにインク切れになる理由 (537)
【実力No1】 MP800専用スレ 【史上最強】 (226)
【超巨額】キヤノン広告費【有り得ん】 (326)
【V600の】PX-V630スレ【生まれ変わり】 (489)
【論争】キヤノン機はスジが出やすいのか【検証】 (277)
【2005】エプソン新機種について考えるスレ【秋】 (701)
キヤノンのスーパーフォトノズルって4色で6色出るの? (328)
【安い】HP8753を使いまくるスレ【花子さん】 (494)
【EPSON】 E-100&E-200 (681)
■■■■キャノンで写真は絶対にやめとけ■■■■ (920)
--log55.com------------------
【猛暑】名古屋で40.2度観測=気象庁
【緊急】ヘイト議員の杉田水脈さん終了、自民党幹部から議員辞職、離党勧奨 ソースは読売系列
「今日は食っていいの?」「おかわりもいいぞ」胃破裂虐待死男児。満腹状態で踏みつけられたか
【悲報】韓国企業、ラオスにダムではなくて湖を作ってしまう
米メディア、選挙を前にトランプ大統領の実績を報じず架空のロシア疑惑ばかり報道 メディア敵視強まる
大塚久美子社長が苦しんでる。誰か助けてあげて
酷暑で蚊が減った
子供の頃のあだ名、絶対に笑わないから書いて立ち去れ