- ベストアンサー
VBの日付関数から必要な文字列を抜き出したい
VBscriptを使い日付関数で取得した値の中から一部の文字列を抜き出したいのですがうまくいかないのでどなたか間違いの箇所を指摘していただけないでしょうか? ’先月を返します。 Dim b Dim yyyymm b=DateAdd("M",-1,Now) yyyymm=Year(b)*100+Month(b) ’先月の表示を変更します。 Dim lastmonth Dim strVal strVal = "yyyymm" lastmonth = Right(strVal, 4) Dim oLogQuery Dim strQuery Set oLogQuery = CreateObject("MSUtil.LogQuery") ' クエリ テキストを作成します。 strQuery = "SELECT cs-uri-stem,COUNT(*) AS view INTO View.csv FROM C:\test1\ex"&★lastmonth★&".log" strQuery = strQuery & " WHERE cs-uri-stem IN('/Default.htm';'/images/address.gif') GROUP BY cs-uri-stem ORDER BY COUNT(*) DESC" ' クエリを実行します。 oLogQuery.ExecuteBatch strQuery ※先月を返しますというところで2008年2月に実行したら200801という表示になると思います。(もし、1月に実行したら200712になりますよね?)200801の右から4文字を取り出し0801という文字列を作り★印の間に入れたいのですがうまくいきません。 また3か月分(四半期?)もやりたいのですがヒントがあったら教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
デバッグしてますか? スクリプト(VBSファイル)のデバッグは、 Microsoft Office付属のScriptDebugger等でできます。 ちなみに、 cscript //x スクリプトファイル名 の様にオプション「//x」をつけてスクリプトを実行すると、デバッガが起動しますので、 1行ずつ実行したり、変数の中身を確認したりできます。 P.S. MSのHPから無償でダウンロードできる「Windows Script Debugger」でも可能。 (http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=e606e71f-ba7f-471e-a57d-f2216d81ec3d) ただコレは、WindowsXPとかだと設定をいじらないと上手く動かない模様・・・ (http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=557764&SiteID=7)
その他の回答 (1)
- gatyan
- ベストアンサー率41% (160/385)
lastmonth にどんな値が入っているか・・・確認しました? yymm になっていませんか? そうなら、 strVal = "yyyymm" が原因でしょう strVal = yyyymm で、うまくいくと思います というか、書かれている部分だけなら、わざわざstrvalに代入しなくてもいいのでは? 明示的に文字列に変換もしていないし、VBSならどっちにしてもVariant型だから、この代入はあまり意味がない気がします