解決済

clip!clip!
Ads By Google

VB Scriptに詳しい方がいらっしゃいましたらお尋ねします。日付関数で取得したもの...



VB Scriptに詳しい方がいらっしゃいましたらお尋ねします。日付関数で取得したものをソースに含めることは可能でしょうか?

日付計算をして出したもの(yyyymm)★印と★印の間に代入したいのですがうまく出来ません
初歩の初歩かもしれませんがやり方かまちがっていますでしょうか?
教えて下さい お願いします。


Dim oLogQuery
Dim oEVTInputFormat
Dim oCSVOutputFormat
Dim strQuery
Dim b
Dim yyyymm
b=DateAdd("M",-1,Now)
yyyymm=Year(b)*100+Month(b)

Set oLogQuery = CreateObject("MSUtil.LogQuery")

' 入力形式オブジェクトを作成します。
Set oEVTInputFormat = CreateObject("MSUtil.LogQuery.EventLogInputFormat")
oEVTInputFormat.direction = "BW"

' 出力形式オブジェクトを作成します。
Set oCSVOutputFormat = CreateObject("MSUtil.LogQuery.CSVOutputFormat")
oCSVOutputFormat.tabs = TRUE

' クエリ テキストを作成します。
strQuery = "SELECT TimeGenerated, EventID INTO C:\output%★yyyymm★%.csv FROM System"
strQuery = strQuery & " WHERE SourceName = 'Application Popup'"

' クエリを実行します。
oLogQuery.ExecuteBatch strQuery, oEVTInputFormat, oCSVOutputFormat

2008-02-23 01:14の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。

回答(2)

2.

2008-02-23 02:56:29ベスト
mr_r00 さん、こんxxは。ひよこ画伯やす です。

調度、私もVBAはじめたところです。お互い、頑張っていきましょう。

今、古いVBA環境であることや、私自身、VBAの知識もそんなにないため、オブジェクト周りの関数の整合性がつかないのですがやりたいことは、

yyyymm

の数値を用いて

C:\output%★yyyymm★%.csv

の文字列を作りたいということでいいですよね。
色々手法はあると思いますが、以下の方法ではいかがですか。

Sub test()

Dim b
Dim yyyym

Dim Path, YM As String

b = DateAdd("M", -1, Now)
yyyymm = Year(b) * 100 + Month(b)

YM = yyyymm
Path = "C:\output\" + YM + ".csv"

MsgBox "Pathは" & Path & "です"

End Sub

では、失礼します。
回答レベル : アドバイス

1.

2008-02-23 02:43:24
文字列に変数(yyyymm)の内容を埋め込むのに
"STRINGS yyyymm OTHER_STIRNGS"
の様にはできません。
str="STRINGS " & yyyymm & " OTHER_STIRNGS"
のように&でつなぐ必要があります。
回答レベル : アドバイス
Ads By Google

コメント(8)

2008-02-23 02:32:43

よくわからないですが、
 yyyymm=Format(b,"yyyymm")
みたいな感じなのではないでしょうか。

2008-02-23 03:01:48

あら、すでにプログラムに手馴れた方々から返答がありましたね(^_^;)

2008-02-23 03:06:41

目立つようにしてあるのはわざとかと思ったのですが、ご回答のお二人のご意見はやっぱりソコですか。型は暗黙に変換されるのですね。。。

やすさんの回答2の
 Path = "C:\output\" + YM + ".csv"
の「+」演算はアリなのでしょうか。よーわからんw

#4.  BLUEPIXY
2008-02-23 03:49:57

#3>やすさんの回答2の…「+」演算はアリなのでしょうか
文字列と数値の+演算は、エラーになります。
(VBScript5.5 & excel2007VBAで確認)
文字列同士の連結には、&でなく+を用いることができます。
なので、
"Strings" + CStr(Num)
は、できますが、同じ事なら&を使った方が良いです。&は、文字列の連結に使われるので型変換がおこなわれます。

#5.  BLUEPIXY
2008-02-23 03:59:35

VBA とVB Script は、文法はほぼ同じですが、一応別モノです。

2008-02-23 04:14:05

>>#4
フォローありがとうございます。文字列の連結に+を使えるけど文字列だと確証がないなら&を使えば自動で型変換される、ということですね。勉強になりました。

2008-02-24 20:25:53

>VBA とVB Script

フォローありがとうございます。
プログラムだけみて同じかと勝手に判断してました。&と+の違いも明確にわかってなかったので、こちらも勉強になりました。

では、失礼します。

#8.  BLUEPIXY
2008-02-25 01:08:10

あと、ついでに
VBScript では、
Format 関数は使えません。

トラックバック(2)

トラックバックURL: