VBSに関する質問

このQ&Aのポイント
  • VBSを使ったプログラムのデバッグ方法について教えてください。
  • VBSスクリプトのコードの色分け方法について教えてください。
  • VBSスクリプトのブレイクポイントの設定方法について教えてください。
回答を見る
  • ベストアンサー

VBSに関する質問

VBSを使ってプログラムを作りたいのですが、 visual studioを使ったデバッグの方法について教えてください。 バージョンはvisual studio express 2013で最新バージョンです。 OSはwin8 64bitです。 ・とりあえず、 http://winscript.s41.xrea.com/wiki/index.php?%5B%5B%A5%A8%A5%C7%A5%A3%A5%BF%2FVWD2005%5D%5D のページにあるように、 タイトル VBSスクリプトの実行(&R) コマンド C:\WINDOWS\system32\wscript.exe 引数 $(ItemPath?) を外部ツールに登録した上で MsgBox "テスト" と書かれた適当なvbsファイルをD&Dで読み込ませてみたのですが コードの色分けが行われておらず全て同じ色になっています。 http://www.koutou-software.co.jp/junk/use-vs-project-with-vbscript.html このページのようにdimなどを青色に表示するにはどうしたら良いですか? ・MsgBox "テスト"の左横にブレイクポイントの赤い丸を付けて VBSスクリプトの実行をしたのですが、 特にプログラムを停止することなく実行されてしまうのですが どうすれば指定した位置でプログラムを止めることができますか? ・あとEXEファイルとして出力したいのですが ビルド機能が見つからないのですがどうすれば良いですか? ・http://www.koutou-software.co.jp/junk/use-vs-project-with-vbscript.html このページには Visual C++としてプロジェクトを作成し、いろいろな設定を行った後にするみたいな解説がありますが この通りやっても、wscript.exeが見つからないというようなエラーが出て 実行することができませんでした。 少し質問が多いですが よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#251971
noname#251971
回答No.1

推測による所などもあり明確な回答ではありませんが、一部について回答します。 便宜上、質問項目を上から順に番号付けて記載します。 (1)および(2)について。 Visual Studio Express 2013 には3種類のバージョンがありますが、(1)のリンク先に示される Web Developer に相当するのは「Express 2013 for Web」というバージョンです。 このバージョンを利用しているでしょうか? # 当方はfor Webをインストールしていないので、それを使えばできるのかどうかははっきりとはわかりませんが。。 (3)について。 VBS (VBScript) を利用するのであればexeにはできません。 VBSはその名の通りスクリプトとして実行する目的のものですので、そもそもexeなどのバイナリを作らずに実行したい場合に使うものです。 exeにしたいのならば、たとえばVB.NETなどを利用を検討する必要があります。 (そして個人的には、VB.NETを使うぐらいならC#をおすすめしますが。VB.NETと基本的にプログラムの作り方は同じで、書きやすさが断然上だと思うので。あくまで個人的主観による。) (4)について。 リンク先にも書かれていますが、その手順は製品版のVisual Studioを利用する場合のものかと思います。 製品版のVisual StudioはExpressのように種類が分かれていないため、C++のプロジェクトを流用してスクリプトデバッガを起動することなどが出来るのだと思います。 ちなみに、当方の手元では「Visual Studio Express 2013 for Windows Desktop」がインストールしてあるのですが、これにはスクリプトデバッガは含まれていないようです。 # コマンドラインから「wscript //x script.vbs」のようにしてもVS2013が選択肢に出てこないので、たぶん。 そのため、「for Windows Desktop」バージョンでメイクファイルプロジェクトを利用しても同じことをするのは不可能そうです。

関連するQ&A

  • VBSについて教えてください。

    VBSを勉強したくて http://www.whitire.com/vbs/tips0001.html のサンプルコードを見たのですが Option Explicit WScript.Echo "Hello VBScript World" はどこに張り付ければいいのでしょうか? エクセルVBAの標準モジュールに Sub test() WScript.Echo "Hello VBScript World" End Sub として実行してみましたが WScriptの部分がコンパイルエラーになってしまいました。

  • VBSについて

    VBSの中でDOSのコマンドを実行したいのですが、VBS内で使用した変数を Runで使うことはできないのでしょうか? ################################################ Set WSHShell = CreateObject("WScript.Shell") x = "C:\Documents and Settings\user" WSHShell.Run "cmd.exe /K dir x" ################################################ たとえば上記のようなプログラムを作ったときに最終行のcmd.exeの 実行で変数xを使用したいのですが、可能でしょうか? このまま実行するとコマンドプロンプトの窓が開いて「ファイルが見つかりません」と表示されてしまいます。 何か方法があればご教授ください。よろしくお願いします。

  • VBS でプログラムを先頭から再試行

    VBSの実行中に、プログラムを先頭から再試行させるにはどうしたらいいですか? 2重起動ではなく、あくまでプログラム自身のリスタートです。 処理 A num = msgbox ("プログラムの再試行",5) if num = 4 then '再試行が押されたなら リスタート else 'キャンセルなら WScript.Quit end if 処理 B 上記の「リスタート」の部分の記述をお願いします。

  • VBSで起動したアプリが前面表示しない

    Powerpointをコンテキストメニューに「読み取り専用」を追加するために以下のVBscriptを起動すると前面表示されません。 どうしたら前面表示されますでしょうか? 起動コマンド wscript.exe "C:\Program Files\Microsoft Office\Office14\OpenPptAsReadOnly.vbs" "%1" 以下がVBscript(OpenPptAsReadOnly.vbs)です。 Dim strPPTFileName Dim objPPTApp '引数のチェック If WScript.Arguments.Count <> 1 Then WScript.Quit 'ファイル名取得 strPPTFileName = WScript.Arguments(0) '起動 Set objPPTApp = WScript.CreateObject("Powerpoint.Application") objPPTApp.Visible = True '読み取り専用で開く Call objPPTApp.Presentations.Open(strPPTFileName,True) '終了処理 Set objPPTApp = Nothing WScript.Quit

  • VBSファイルを定期的に自動実行する方法

    毎日同時刻に下記のVBSファイルを自動実行したいと思います。 タスクスケジューラで実行すると download.exe は起動しますが 表示されたダイアログがアクティブ状態にならないため (タイトルバーが灰色のまま、タスクバーのボタンが点滅)、 文字入力ができないまま、処理が終了してしまいます。 1.ダイアログをアクティブにし、正常に処理を実行させるには   どのように記述すれば良いですか? 2.このVBSファイルをユーザーがログオフされている状態で   実行することは可能ですか? 恐れ入りますが、ご存じの方がおられましたら、ご教示願います。 <環境> Windows 2008 Server R2 standard (64ビット) <D:\aaa.vbs> Set objShell = WScript.CreateObject("WScript.Shell") 'ダウンロードEXEを実行 Set objExec = objShell.Exec("D:\download.exe") WScript.Sleep 1000 objShell.AppActivate(objExec.ProcessID) 'ファイルのダウンロード先を指定し、実行(ENTER) WScript.Sleep 1000 objShell.SendKeys "D:\data.txt~"

  • VBSでのファイル読込、出力操作について

    いつもありがとうございます。 掲題の件について、ご教授頂けますでしょうか。 下記のように『start.vbs』を実行すると『a.txt』の行に記載されている実行ファイル名を読み込み 『test.vbs』にファイル名分のコマンドを書き込みしたいです。 例) ----------------------------- start.vbs (作成途中) ----------------------------- Set objWShell = CreateObject("wscript.shell") Set objFso = CreateObject("Scripting.FileSystemObject") Set objFile = objFso.OpenTextFile("c:\a.txt", 1, False) ' 出力先ファイル Set objVBSFile = objFSO.CreateTextFile(c:\test.vbs, True) If Err.Number > 0 Then WScript.Echo "Open Error" Else Do Until objFile.AtEndOfStream objVBSFile.WriteLine(objFile.ReadLine) Loop End If ----------------------------- a.txt ----------------------------- adobe.exe photoshop.exe ****.exe    ・    ・    ・ ------------------------------ start.vbs ------------------------------ objWShell.Run "cmd.exe c:\adobe.exe ", 0, True objWShell.Run "cmd.exe c:\photoshop.exe ", 0, True objWShell.Run "cmd.exe c:\****.exe ", 0, True    ・    ・    ・ vbsをサイトを参考にして作ってはいるものの、start.vbsを実行すると a.txtのファイル名をvbsに書き込むのが限界です。 少しずつ勉強していくのですが、本件少し早めに作りたいという背景があり ご教授頂けませんでしょうか。 また、わかりにくい説明となっておりますが どうぞ宜しくお願い致します。

  • VBSでエラーとなってしまいます

    VBS(WSH)超初心者です。どうぞよろしくご教授ください。 Pcomm(AS400クライアント接続ソフト)のサイレントインストールを、VBS(WSH)でやりたいと思っていますがスクリプトエラーとなってしまいます。 <質問内容> 下記スクリプトを実行すると、PcommPath=の行で「ステートメントの末尾が不正です」となってしまいます。 多分、ダブルクォーテーションの使い方が間違ってると思うのですが、色々調べてみましたがわかりません。 どなたかご教授くださいませ。 なお、(VBSではなく)「ファイル名を指定して実行」からなら問題なくサイレントインストールできます (コメントアウトしてる D:\install・・・/qb"部分を実行) どうぞよろしくお願いいたします。 [スクリプト] Option Explicit Dim objWshShell,objWshScriptExec,PcommPath 'D:\install\pcomm\setup.exe /s /v"USEINI=\"C:\Pcomm.ini\" /qb" '上記中のPcom.iniはカストマイズ用のファイル。 ’上記で、「ファイル名を指定して実行」からなら問題なくサイレントインストールされます PcommPath="D:\install\pcomm\setup.exe /s /v"USEINI=\"C:\Pcomm.ini\" /qb"" Set objWshShell=WScript.CreateObject("WScript.Shell") Set objWshScriptExec=objWshShell.Exec(PcommPath) (以下略)

  • display.vbsというファイルがstartupフォルダにあるので

    display.vbsというファイルがstartupフォルダにあるのですが? display.vbsというファイルがすべてのプログラムのstartupフォルダにあるのですが、これは何でしょうか?名前からして気持ち悪いので正体を知っている人がいたら教えて欲しいです。 メモ帳で開いたら下記のようなソースになっていました。 よろしくお願いします。 -------------------------------------------- ' Self destructive VBScript for changing optimal resolution ' Set optimal resolution Set objShell = Wscript.CreateObject("Wscript.Shell") objShell.Run "c:\windows\options\cfgdisp.exe /optimum", 7, True ' Now destroy itself Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile("C:\Documents and Settings\All Users\Start Menu\Programs\Startup\display.vbs") --------------------------------------------

  • JP1からvbs(PSExec)が起動できない

    突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

  • Visual Basic 6.0→VBS→setup.exeを起動できる方法

    環境 Windows 2000 Visual Basic 6.0 WSH 5.6 VBSでsetup.exe(インストーラパッケージ)を起動する プログラムを作成し、そのVBSをVisual Basic 6.0で 動かすとエラー「システム コンポーネントをインストールしたり 構成するには、コントロール パネルを使ってください。」が出ます。 しかしVisual Basic 6.0からではなくエクスプローラからVBSを起動すると 正常にセットアップが開始されます。 Visual Basic 6.0→VBS→setup.exeを開始できる方法が分かる方 いましたら、ご教授願います。

専門家に質問してみよう