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度観測=気象庁
【緊急】ヘイト議員の杉田水脈さん終了、自民党幹部から議員辞職、離党勧奨 ソースは読売系列
「今日は食っていいの?」「おかわりもいいぞ」胃破裂虐待死男児。満腹状態で踏みつけられたか
【悲報】韓国企業、ラオスにダムではなくて湖を作ってしまう
米メディア、選挙を前にトランプ大統領の実績を報じず架空のロシア疑惑ばかり報道 メディア敵視強まる
大塚久美子社長が苦しんでる。誰か助けてあげて
酷暑で蚊が減った
子供の頃のあだ名、絶対に笑わないから書いて立ち去れ