電子書籍の厳選無料作品が豊富!

以下のスクリプトは、あるフォルダ以下の(サブフォルダを含む)abcファイル(仮称)すべてについて同じ名前でhtmlファイルをつくると同時に、そこへリンクするメニューのページを上書きする、という構想で書いたものですが、実行すると2行目で ')'がありません というエラーが出てしまいました。(具体的な数値等は"****"としました)
私はExcelのVBAは多少の経験がありますが、VBScriptを書いたのはこれが初めてで、HTMLも未経験です。
"')'がない"というのはどういうことなのか、このエラーをどのように対処すればよいかを教えていただければと思います。よろしくお願いします。

Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Public Sub GetAllFiles(ByVal folder As String, ByVal searchPattern As String, ByRef files As ArrayList)
'folderにあるファイルを取得する。
Dim fs As String() = System.IO.Directory.GetFiles(folder, searchPattern)
'トップページを途中まで作成する。
Set outFileStream = fso.CreateTextFile(folder.Path & "\***", True)
outFileStream.WriteLine "<HTML>"
outFileStream.WriteLine "<HEAD>"
outFileStream.WriteLine "<TITLE>****</TITLE>"
outFileStream.WriteLine "</HEAD>"
outFileStream.WriteLine "<BODY>"

'各htmlファイルを作成する。
For Each fs In folder.Files
Set outFileStream = fso.CreateTextFile(folder.Path & "\" & Left(fs.Name, Len(fs.Name) - Len(Ext)-1) & ".html", True)
outFileStream.WriteLine "<HTML>"
outFileStream.WriteLine "<HEAD>"
outFileStream.WriteLine "<TITLE>***</TITLE>"
outFileStream.WriteLine "</HEAD>"
outFileStream.WriteLine "<BODY>"
outFileStream.WriteLine "<OBJECT ID=""****"" WIDTH=*** HEIGHT=*** CLASSID=""CLSID:****"">"
outFileStream.WriteLine "<PARAM NAME=""_Version"" VALUE=""***"">"
outFileStream.WriteLine "<PARAM NAME=""_ExtentX"" VALUE=""***"">"
outFileStream.WriteLine "<PARAM NAME=""_ExtentY"" VALUE=""***"">"
outFileStream.WriteLine "<PARAM NAME=""_StockProps"" VALUE=""***"">"
outFileStream.WriteLine "<PARAM NAME=""FileName"" VALUE=""" & folder.Path & "\" & fs.Name & """>"
outFileStream.WriteLine "</OBJECT>"
outFileStream.WriteLine "</BODY>"
outFileStream.WriteLine "</HTML>"
outFileStream.Close()

'トップページの続きを作成する。
Ext = fso.GetExtensionName(fs.Name)
If LCase(Ext) = "html" Then
outFileStream.WriteLine "<a href=""" & folder.Path & "\" & fs.Name & """>" & Left(fs.Name, Len(fs.Name) - Len(Ext)-1) & "</a><br>"
End If
Next
outFileStream.WriteLine "</BODY>"
outFileStream.WriteLine "</HTML>"
outFileStream.Close()

'folderのサブフォルダを取得する。
Dim ds As String() = System.IO.Directory.GetDirectories(folder)
'サブフォルダへの処理も行う。
Dim d As String
For Each d In ds
GetAllFiles(d, searchPattern, files)
Next d
End Sub

Set CurFolder = fso.GetFolder(".")
GetAllFiles(CurFolder, "*.abc", files)

Set outFileStream = Nothing
Set CurFolder = Nothing
Set fso = Nothing

A 回答 (1件)

> 実行すると2行目で ')'がありません というエラーが出てしまいました。


 VBScriptには型の宣言はないんだぜ。なので As Stringとかは使えないんだぜ。
Public Sub GetAllFiles(ByVal folder, ByVal searchPattern, ByRef files)
 JavaScriptと同じで内部でちゃんと型は持っているので心配はない。

 後、4行目にSystem.IO名前空間とかあるけどVBSはMicrosoft .Net Frameworkも使えないのでこの行もfsoを使ったものに変えないといけないです。
    • good
    • 0
この回答へのお礼

やってみます! すばやいご回答、ありがとうございます!

お礼日時:2010/02/08 23:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!