• ベストアンサー

VBScript でのformat

VBScript で、数値をフォーマットしたいのですが、 以下のようなエラーになります。 Microsoft VBScript 実行時エラー: この変数は宣言されていません。: 'Format' スクリプトの内容は以下のとおりです。 Wscript.Echo Format(13, "0000") OSはWindowsXPホームエディション(SP2)です。 よろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

VBScript には、他のVB系列に存在するようなFormat 関数がありません。 WScript.Echo Right("0000" & 13, 4) のようにして下さい。

hazehaze
質問者

お礼

ご回答、ありがとうございます。 結構使いそうな関数なのに、無いというのも不思議ですね。

関連するQ&A

  • HTML + VBScript で Sleep できない

    お世話になります。ご教授ください。 類似の質問が既にあるのかもしれませんが、質問させていただきます。。。 HTML上に記述するVBScriptでは、WScriptは使用できないという記事を見かけます。 実際、HTML+VBScriptで使用すると、 変数は宣言されていません:'WScript' とエラーが出ました。 WSH は WScript のインスタンスを読み込むことができないうんぬん、と書かれていました。 書きたいことは、 WScript.Sleep 1000 です。 もしくは、これに変わる何かがしたいです。 外部ファイル化(.vbs)を試してみましたが、ダメでした。 ==== サンプル(Sample.vbs) ==== Option Explicit MsgBox "start" Dim Idx = 0 Do While Idx <> 3 WScript.Sleep 1000 MsgBox Idx Idx = Idx + 1 Loop WScript.Sleep 1000 MsgBox "end" ================ <html> <head> <meta http-equiv="Content-Script-Type" content="text/vbscript"> <script language="VBScript" type="text/vbscript" src="sample.vbs"></script> </head> … という感じです。 上記はあくまでサンプルですが、最終的には「ループの中で」待ち状態、になるようにしたいです。 Do While ある条件 1秒待ち ある条件に、なるかならないか Loop (setTimeout を使用する例が書かれていましたが、それではループ制御は走り続け、CPUが痛い目に合いました。。。) もしかして、WScript は使用できるのに、記述ミスかもしれませんし。。。 できない場合は、それに変わる案などいただけるとありがたいです。 よろしくお願いします。

  • vbscriptで新しいウィンドウを開きたい

    タイトルの件、下記URLのサンプルを参考にさせていただいたのですが、思うような結果が得られません。 http://homepage1.nifty.com/kodayan/vbs/app1/window01.html 上記サンプルの内容をそのまま使うと、 Microsoft VBScript 実行時エラー (0x800A01F4) この変数は宣言されていません。: 'Window' というエラーが表示されます。 そこで、変数として宣言すると今度は Microsoft VBScript 実行時エラー (0x800A01A8) オブジェクトがありません。: 'window' というエラーが表示されます。 いったいどうしたら良いのでしょうか?助けてください。 よろしくお願いします。

  • IIS+VBScriptでの処理待ちについて

    WindowsXP上でIIS+VBScriptで構築しております。 次のような感じで処理の進捗状況をバー形式で表示させたい のですが、WScript.Sleepが使えない環境らしく、以下を 実行するとWScript.Sleepの行でエラーになるため、それに 変わる書き方を教えていただけないでしょうか。 よろしくお願いいたします。 do while i < 10 Response.Write "■" i = i + 1 WScript.Sleep(1000) loop

  • VBScriptで

    サーバ・クライアントの運用管理をすることになりました。 そこでVBScript(WMI含む)を学習し、運用の効率を上げたいと思います。 現在、以下のようなスクリプトを作成しました。 ・ある端末10数台のOSとSPを調べるもの ・指定したファイルを、指定の端末から探すスクリプト そこで ・このVBScriptは用意しておくと良い。 ・こんなことを注文されたので、VBScriptを作成し作業を行った という事例や経験がありましたらご教授のほうよろしくお願いします。 ただ、VBScript(WMI)を使用しているものに限定させていただきたいと思います。

  • VBScript による疎通確認

    今、以下のVBScriptを使い2台のPCサーバへ成功の監査としてログイン・ログオフ記録をアプリケーションログに書き込んでいます。しかし、このVBScriptでは、2台のPCサーバの生死を判断することは出来ず、ダウンしているPCサーバだろうがアクセスします。そのため、ログイン・ログオフする度にエラーポップが出てしまいます。 そこで、このVBScriptに疎通確認し判断したのち、生きているPCサーバへのみアクセスするようにしたいのですがどのようにコードを組めば良いのか解りません。ご教授お願いします。 ログインスクリプト Const AUDIT_SUCCESS = 8 Set objShell = WScript.CreateObject("WScript.Shell") Set objNetwork = WScript.CreateObject("WScript.Network") strMsg = objNetwork.UserName + " logon " objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名1" objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名2" ログオフスクリプト Const AUDIT_SUCCESS = 8 Set objShell = WScript.CreateObject("WScript.Shell") Set objNetwork = WScript.CreateObject("WScript.Network") strMsg = objNetwork.UserName + " logoff " objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名1" objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名2"

  • <Script Language="VBSCRIPT" RUNAT="SERVER"> </script> と <% %>は違うの??

    ASP開発をしています。 あるASPでIncludeファイルで配列宣言 Dim gsABC(10)を宣言します。 Includeファイルの中身 <Script Language="VBSCRIPT" RUNAT="SERVER"> Dim gsABC(10) </script> そして、ASPファイルでその変数gsABC(0)を 使おうとするとエラーが発生します。 けれども、Includeファイルの中身を <% Dim gsABC(10) %> にすると正常に動きます。 2つは同じものだと思っていたのですが、 これによって違うものなのかと認識するように しなければと思ってますが・・・ どこが違うのか分かりません。 どなたか分かりやすく簡単でいいですから 説明して頂けないでしょうか? よろしくお願いします。

  • VBScript (.vbe)のファイルについて

    VBScript (.vbe)のファイルについて 使用環境 : WindowsXP home sp3 ファイルの種類 : VBScript Encoded Script File プログラム : Microsoft (R) Windows Based Script Host ファイルの拡張子 : .vbe .vbeのファイルがあるんですが、これのコマンドについて教えてほしいです。 動作は メッセージボックスを出して、OKを押したら、特定のソフト(.exe)を起動させたいです。 もしくは、OKを押したら コマンドプロンプトを3つ起動させたいです。 このようにできるコマンドがあったら教えてくださいお願いします。 特定ソフトや、.vbeはCドライブの直下にあります。

  • VBScriptで引数を認識しない

    自分が利用しているマシンにおいて、 WScriptで引数を認識しなくなってしまいました。 CScriptなら認識します。 また、別のマシンなら特に問題はありません。 例えば以下のようなコード。 If WScript.Arguments.Count >= 1 Then WScript.Echo WScript.Arguments.Item(0) End If 何かファイルをドラッグアンドドロップしたり、 コマンドプロンプトから引数をつけて実行するとその引数が表示される だけのものですが、何も表示されません。 環境はWindowsXP SP2です。 WMIサービスを再起動してみたり、 WMIリポジトリの再構築を行ってみましたが変化はありません。 先週までは動いていたのですが、最近何か設定を変えたような記憶もありません…。 テストを別環境で行えば済むだけなのでそれほど困った状況では ないのですが、どうにも原因がわからずすっきりしないので よろしければどなたかご回答のほど、お願いいたします。

  • VBScriptの変数宣言

    ASPでvbscriptを使って処理をしているページの修正を行っていたのですが、その中で不思議な状態が発生しています。 <% Option Explicit On Error Resume Next %> ===== 省略 ===== <% filename = Trim(bobj.Form(bin,"filename")) Dim filename ===== 省略 ===== 普通、上記のような記述ではfilenameの代入のところでエラーが発生すると思うのですが、代入処理の直後にerr.numberを判定しても、エラーが発生していないんです。 includeしてあるファイルの内部も検索しましたが、filenameの変数宣言は見つかりませんでした。 VBScriptって、どこで変数宣言を行っても有効になるのでしょうか? 正常に動いているので、今のところ問題は無いのですが、何か気持ち悪くて。。。 似たような現象が起こった事のある方や、これが正しい動きだというご指摘をお願いいたします。

  • VBScriptでのDBのエラー取得

    VBScriptでADO(ADODB)接続により、SQLServer(2012)に接続して クエリを発行し、結果をファイルに出力するVBScriptを作成して います。 SQL実行時のエラーに対応する為、VBScriptにてエラーオブジェクトのプロパティ (Err.Number、Err.Description)を使用し、エラー番号と内容を取得しているの ですが、SQL Serverから発行しているエラー番号、エラー内容を取得したいので すが、取得できません。 どのようにすれば、データベース固有のエラーを取得ができますか。 是非ご教示いただきたく、 お手数をおかけ致しますが、宜しくお願い致します。 ------------------------------------------------- Option Explicit Dim objADO Dim objRS Dim Sql if WScript.Arguments.Count <> 1 then WScript.echo("usage: script.vbs arg1") WScript.Quit(-1) end if arg1 = WScript.Arguments(0) Set objADO = CreateObject("ADODB.Connection") objADO.Open "Provider=SQLOLEDB;" & _ "Data Source=hoge;" & _ "Initial Catalog=hoge;" & _ "Integrated Security=SSPI;" sql = "" sql = "select ~ where column ='"&arg1&"'" set objRS = objADO.Execute(sql) If Err.Number <> 0 Then objADO.Close Set objADO = Nothing WScript.Quit(-1) End If sql = "" sql = "update ~ ~ where column ='"&arg1&"'" objADO.Execute(sql) If Err.Number <> 0 Then 更新の破棄とエラー内容の表示 Else 更新を反映 End If objADO.Close Set objADO = Nothing

専門家に質問してみよう