• ベストアンサー

VBscriptの動きを1行1行確認する方法

会社に○○○.vbsというプログラムがあるのですが、その流れを勉強しようと思っています。 自分はExcelでEVAは作成したことがあるのですが、その時はマクロを実行しながら 1行1行何の値が入っているか確認しながら操作できました。(F5を押すと処理が1行進む感じです) そしてイミディエイトで値などもすぐに確認できました。 VBscriptでも同じようなことが可能でしょうか? VBAに貼り付けたのですが、うまく動きませんでした。

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

  • ベストアンサー
  • uams
  • ベストアンサー率63% (100/157)
回答No.1

あまりスマートではありませんが、私の場合は流れを確認したい処理の前後に「Wscript.Echo」をおいて、変数の変化や処理の結果を画面に表示できるようにしていました。 その言語を扱う開発ツール(Visual Studio、Eclipseなど)があれば、その機能でデバッグすることは可能ですが、VBScriptはあくまでも「簡易プログラム」なので、高度なデバッグ機能(イミディエイト、ウォッチなど)を必要とする機会は少ないと思います。 余談ですが、VBScriptは活用するとかなり便利です。本家Microsoftにスクリプトセンターというものがありますので、のぞいてみてください。 ○スクリプトセンター http://technet.microsoft.com/ja-jp/scriptcenter/bb410849

teachyoshi
質問者

お礼

なるほど、一つ一つ確認すれば出来ますね。 参考にさせていただきます。

その他の回答 (2)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

VBEはAlt+F11で起動するけど、Alt+Shift+F11で起動するScriptEditorは使えませんか?

teachyoshi
質問者

お礼

残念ながら会社には、ありませんでした。 ありがとうございました。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

参考になるか分かりませんけれども。 VBSファイルをVBEに貼り付けただけでは、 変数の型やVBSの定数がVBEでは不明なので色々な処でエラーになるかと思います。 VBEの設定で、変数の宣言を強制するにチェックが入っていたら 一時的に外してしまうか(常に外して置くのはお勧めいたしません) Option Explicit ←これの元? Object型以外はVariantで宣言しておくとかで誤魔化します。 (データ型が特定できるなら、それに越したことはありません) VBSの定数はヘルプファイル(Script56.chm)で調べてください VBAでもVBScriptでも共通の値を持つものもあります。 http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=e74494d3-c4e1-4e18-9c6c-0ea28c9a5d9d あとは、VBEのツール→参照設定でMicrosoft Scripting Runtimeに チェックを入れて置けば自動メンバ表示などのインテリセンスが働くので 少しは楽になるかもです。 普段はVBAではなく、直接VBSを実行して エラー行数やエラー文字位置を頼りにデバッグしています。 こちらもご参考に。 http://okwave.jp/qa/q3523283.html

teachyoshi
質問者

お礼

参考にさせていただきます。 ありがとうございました。

関連するQ&A

  • VBScriptでエクセル VBProject

    VBScript から,エクセルファイルを 連続で開いて操作するプログラムを作成しています. プログラムの中で,開いたエクセルファイルのVBProjectがロックされているかを判別 したいのですが,方法はありますでしょうか. VBAでは, .VBProject.Protection が使用可能なのですが,VBSで使用するとエラーになります. ご回答よろしくお願いいたします.

  • エクセルVBAとVBScript

    WinXP/Pro  エクセル2002使用です。 VBScriptで下記のメール送信のプログラムを作り、 それをエクセルVBA→BATファイル→VBScript(→エクセルVBAに戻る)という流れで自動化させましたが、下記のコードでは、現在進行中のエクセルVBAとは別のブックを作るのでうまくいきません。 (エクセルブックを2重起動してしまいます) Set objExcel =GetObject( "d:\auto\aaa.xls") Dim stradrs Dim strkk Dim strjikan with objExcel stradrs = .Worksheets("Sheet1").Cells(5,1).Value strkk= .Worksheets("Sheet1").Cells(4,1).Value strjikan = .Worksheets("Sheet1").Cells(4,2).Value end with Set objEmail = CreateObject("CDO.Message") objEmail.From = "***@***.com" objEmail.To = stradrs objEmail.Subject = "表題" objEmail.Textbody = "内容" objEmail.AddAttachment("d:\auto\" & strkk & strjikan & ".doc") objEmail.Send Set objEmail = nothing Set objExcel = nothing 目的は、最初に立ち上げている(VBScriptを呼び出したVBAを実行中の)エクセルから値を取得したいのです。 下記いずれかの方法によると思っています。 (1)エクセルVBAから直接VBScriptに引数で値を渡すことは可能でしょうか? (2)VBScriptからエクセルブックを起動させずに値を取得することは可能でしょうか? 値はテキスト文字です。 何卒よろしくお願いします。

  • ExcelのVBAからVBScript

    ExcelのVBAからVBScriptを操作(使う)ことってありますか?また、逆にVBScriptから、Excelを操作(操作)する必要ってありますか? VBScriptの本を買って勉強していると、そのようなサンプルが描かれていたのですが、単に使えるだけって感じもしますが・・? 実際にこのように使っているって例があれば教えてください。 よろしくお願いいたします。

  • 【VBScript】VBSでOpenOfficeを操作したい

    【VBScript】VBSでOpenOfficeを操作したい VBSでOpenOfficeを操作できますか? 以下のページでVBSでExcelを操作する方法が記載されていますが、 ExcelではなくOpenOfficeがインストールされている環境では どのように実現できるのでしょうか?他の言語ではできる? ヒントでも良いので教えて下さい。 www.happy2-island.com/vbs/cafe02/capter00401.shtml

  • EXCEL VBA シート内の特定のセルに値が入…

    EXCEL VBA シート内の特定のセルに値が入力された際に処理を実行するプログラム EXCELシート内の特定のセルに値が入力された際に処理を実行するプログラムをEXCEL VBAで作成したいと考えています。 EXCELに計測データを取込み、このデータが設定値以外の場合のみ、トリガーを出す様なイメージで使いたいと思います。 どの様に考えれば良いでしょうか?サンプル等ありましたら紹介ください。 上記質問の”トリガー”について補足します。 あるセルに値が入力されたら、マクロを実行するという風にしたいという意味です。 単純にマクロ実行を手動で行うのでは無く、ある値が判定値以外の場合に他アプリケーションを操作したいという意味です。。

  • VBScript 配列

    いつもお世話になっております。 WindowsXP環境上でVBScript 5.6が稼働可能とします。 VBS内で配列を作成しようと思うのですが 作成前に以下が知りたいです。 (1)配列の要素数はいくつまで作成可能か? (2)各要素内には最大何文字記憶可能か? 将来的に、 1行(約5000~10000文字)の20000行ファイルを1行ずつ読み込んで 1要素ずつ格納するVBSを作成予定だったのでその事前確認がしたいのです。 ご存知の方がいれば、ご教授願いませんでしょうか? 何卒、宜しくお願い致します。

  • VBScript 先頭行の固定

    VBScript Script ファイル (.vbs)を書き出して、エクセル表の加工をしようとしています。 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Open("~~~ ・ ・ ・ 先頭行を固定したく、下記のようにしましたがエラーになります。 objWorksheet.Range("A2").Select objWorksheet.ActiveWindow.FreezePanes = True また、データーのある最下行+2にデーターの合計を入れるように、追加コードを記述したいのですが、どのようにするのでしょうか?

  • Excel VBA 1行ずつ実行するには 

    いつもお世話になっています。 Excel VBAで記述したマクロを 1行ずつ確かめながら実行する方法を教えてください。

  • EXCEL VBA 行の値を累計したいのですが・・

    VBA初心者です。 VBAでEXCELの行の値を累計したいのですが、プログラムの仕方がわかりません。 どなたかわかる方教えてください。     A    B   C    D   E ・・・・ 1  1000 3000 2000 4000 3000  2  2000 5000 1000 3000 2000  3  4000 2000 3000 1000 5000   :     実行結果     A    B    C    D    E  ・・・・ 1  1000 4000 6000 10000 13000 2  2000 7000 8000 11000 13000   ←行の値の累計 3  4000 6000 9000 10000 15000 : 行と列はたくさんあって、最後のセルまで累計する方法を教えていただけるとありがたいです。 どうぞよろしくお願いします。m(_ _)m

  • VBScriptのCloseとNothing

    VBScriptのCloseとNothing vbsでバッチ処理をプログラムを作っています。 内容は、テキストファイルの読み込みと書き込みです。 OpenTextFile(読み取り専用)でテキストファイルの中身を読み取り、 文字列操作後、 OpenTextFile(追記モード)で 読み取ったテキストファイルとは別のテキストファイルに書き込みます。 CloseとNothingは いつ、どのように使えばよいのですか? 参考サイトでも良いので教えてください。 よろしくお願いします。

専門家に質問してみよう