|
▼sakurabudoh さん、こんにちは。
VBSは、私も良く知りません(もっともVBAだってまだまだなんですが)。
まず、前回投稿した
call test(1)
sub test(byval aaa)
msgbox aaa
abc(1,1)
if aaa+1 <= 10 then
aaa=aaa+1
call test(aaa)
end if
end sub
私の投稿をメモ帳等にコピーしてますよね?
頭の空白( msgbox aaa等)に別の文字が入ってしまっています。
これを半角空白に打ち直して下さい。
もしくは、全コードをご自分で打ち直すかしてみて
再度確認して下さい。
私は、普段は、
ExcelのVBAを編集するVBEに一旦、コードを貼り付けた後、これをコピーして
メモ帳等に貼り付けるという方法をとっています。
(もっと良い方法があったらどなたか教えて下さい)
それから提示頂いたコードですが、いくつか間違いあります。
サンプルコードを忠実に再現されていますか?
作り直してみました。
On Error Resume Next
strpath = "D:\My Documents\TESTエリア"
rem これは、適当フォルダパスに変えてください
Set objFS = CreateObject("scripting.filesystemobject")
Set objfolder = objFS.getfolder(strpath)
If Err.Number <> 0 Then
MsgBox "エラーno." & Err.Number & vbCr & Err.Description
wscript.Quit
End If
Set objexcel = CreateObject("excel.application")
Set objbook = objexcel.Workbooks.Add
objexcel.Visible = True
objexcel.Cells(1, 1).ColumnWidth = 15
objexcel.Cells(1, 2).ColumnWidth = 15
objexcel.Cells(1, 3).ColumnWidth = 15
objexcel.Cells(1, 4).ColumnWidth = 35
rem columuwidth になっていました
objexcel.Cells(1, 1).Value = "ファイル名"
objexcel.Cells(1, 2).Value = "作成日"
objexcel.Cells(1, 3).Value = "最終更新日"
objexcel.Cells(1, 4).Value = "ファイルのパス"
rem objexcel.Cells(1, 4)Valueになっていました
introw = 2
Call fileinfo(objfolder)
Sub fileinfo(objfolder)
For Each objfile In objfolder.Files
objexcel.Cells(introw, 1).Value = objfile.Name
objexcel.Cells(introw, 2).Value = objfile.datecreated
objexcel.Cells(introw, 3).Value = objfile.datelastmodified
objexcel.Cells(introw, 4).Value = objfile.Path
introw = introw + 1
Next
For Each objsubfolder In objfolder.subfolders
Call fileinfo(objsubfolder)
rem objfolderになっていましたこのままだと永久ループ・・
Next
end sub
これもエラーが発生した場合、頭の空白を打ち直してみて下さい。
上記のコードで私の環境では、うまく作動しています。
確認してみて下さい。
|
|