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
回答(2)
2.

調度、私も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.
"STRINGS yyyymm OTHER_STIRNGS"
の様にはできません。
str="STRINGS " & yyyymm & " OTHER_STIRNGS"
のように&でつなぐ必要があります。
コメント(8)
よくわからないですが、
yyyymm=Format(b,"yyyymm")
みたいな感じなのではないでしょうか。
あら、すでにプログラムに手馴れた方々から返答がありましたね(^_^;)
目立つようにしてあるのはわざとかと思ったのですが、ご回答のお二人のご意見はやっぱりソコですか。型は暗黙に変換されるのですね。。。
やすさんの回答2の
Path = "C:\output\" + YM + ".csv"
の「+」演算はアリなのでしょうか。よーわからんw
#3>やすさんの回答2の…「+」演算はアリなのでしょうか
文字列と数値の+演算は、エラーになります。
(VBScript5.5 & excel2007VBAで確認)
文字列同士の連結には、&でなく+を用いることができます。
なので、
"Strings" + CStr(Num)
は、できますが、同じ事なら&を使った方が良いです。&は、文字列の連結に使われるので型変換がおこなわれます。
VBA とVB Script は、文法はほぼ同じですが、一応別モノです。
>VBA とVB Script
フォローありがとうございます。
プログラムだけみて同じかと勝手に判断してました。&と+の違いも明確にわかってなかったので、こちらも勉強になりました。
では、失礼します。
あと、ついでに
VBScript では、
Format 関数は使えません。



