こんばんは。まず、状況の説明と、やりたいことの箇条書きです。
1. あるフォルダー"root"をルートフォルダーとする。
2. ルートフォルダーにはフォルダ"abcdata"とindex.htmlとmystyle.cssがある。
3. フォルダ"abcdata"にはサブフォルダー1つしかない。
4. サブフォルダーは複数階層になっている。
5. 各サブフォルダー内には拡張子 abc のファイルが置いてある。
6. index.html上のボタン"refresh"をクリックすると、サブプロシージャー"Start"が働く。
7. サブプロシージャー"Start"は、全ての *.abc ファイルと同じ名前の html ファイルを *.abc ファイルと同じフォルダーに作り、作成した各 html ファイルへのリンクを、ルートフォルダーの index.html に記述する。
8. index.html におけるリンクの表示は、階層ごとにインデント適用する。
下記、引用のソースは、index.htmlを写したものです(具体的な数値等は伏せてあります)。そこにうめこまれた"refresh"ボタンを押すとサブプロシージャー"Start"を起動され、index.html自身が書きかわるようにしたいのですが、うまくいきません(IEの左下のところに「ページでエラーが発生しました」と出ます)。どうすればよいでしょうか。
私はExcelのVBAは少し経験がありますが、VBSを書いたのはこれが初めてです。HTMLやCSSはまったくの初心者です。ようやくフォントサイズの絶対指定ができた程度です。よろしくお願いします。
<HTML><HEAD><TITLE>Viewer</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Start(ByRef i)
Set fso = CreateObject("Scripting.FileSystemObject")
Set rootFolder = fso.GetFolder(".")
'index.htmlを作成
Set indexPageTS = fso.CreateTextFile(fso.BuildPath(rootFolder.Path, "index.html"), True)
indexPageTS.WriteLine "<HTML>"
(ヘッダーは省略:文字数節約のため)
indexPageTS.WriteLine "<BODY text=""#000000"" link=""#0000FF"" alink=""teal"">"
indexPageTS.WriteLine "<span style="width:100%; filter:DropShadow(color=#CCCCFF,direction=135)"><font color=""Navy""; size= 6pt>abcdata</font></span><br>"
indexPageTS.WriteLine "<br>"
indexPageTS.WriteLine "<input type=""button"" value=""reload"" onclick=""location.reload()"">"
indexPageTS.WriteLine "<input type=""button"" name=""InputBtn"" onclick=""Start(1)"" value=""refresh"">"
indexPageTS.WriteLine "<br>"
'各サブフォルダーへの処理はDataFolderProcに任せる
Set accessoryFolder = fso.GetFolder(".\abcdata")
For Each dataFolder In accessoryFolder.SubFolders
i = 1
Call DataFolderProc(dataFolder, i)
Next
indexPageTS.WriteLine "</p>"
indexPageTS.WriteLine "</BODY>"
indexPageTS.WriteLine "</HTML>"
indexPageTS.Close()
Set indexPageTS = Nothing
Set fso = Nothing
End Sub
indexPageTS.WriteLine "<br>"
Sub DataFolderProc(aFolder, n)
For Each dataFile In aFolder.Files
If LCase(fso.GetExtensionName(dataFile)) = "abc" Then
linkName = fso.GetBaseName(dataFile.Name)
dataPageName = fso.GetBaseName(dataFile.Name) & ".html"
Set dataPageTS = aFolder.CreateTextFile(dataPageName, True)
dataPageTS.WriteLine "<HTML>"
'(中略:各htmlファイルへの記述がここに入る)
dataPageTS.WriteLine "</HTML>"
dataPageTS.Close()
'index.htmlに各リンクを張る
indexPageTS.WriteLine "<p style=""text-indent:" & n & "em"><a target=""_blank"" href='" & fso.BuildPath(aFolder.Path, dataPageName) & "'>" & linkName & "</a>"
End If
Next
'サブフォルダーがあれば同様に処理する
For Each subFolder In aFolder.SubFolders
n = n + 1
Call DataFolderProc(subFolder, n)
Next
End Sub
-->
</SCRIPT>
<LINK REL="stylesheet" TYPE="text/css" HREF="mystyle.css">
</HEAD>
<BODY text="#000000" link="#0000FF" alink="teal">
<span style="width:100%; filter:DropShadow(color=#CCCCFF,direction=135)"><font color="Navy"; size= 6pt>abcdata</font></span><br>
<br>
<input type="button" value="reload" onclick="location.reload()">
<input type="button" name="InputBtn" onclick="Start(1)" value="refresh">
<br>
<p style="text-indent:1em"><a target="_blank" href='C:\root\abcdata\a\abcde</a>
'(中略:各リンク)
</p></BODY></HTML>
No.1ベストアンサー
- 回答日時:
動作上のバグはともかく、次の点は明らかに間違いです。
(1)(ヘッダーは省略:文字数節約のため)
コメントになっていない。
(2)indexPageTS.WriteLine "<span style="width:~
引用符が二重になっていない。
(3)indexPageTS.WriteLine "<br>"
どのメソッドにも属さないので、真っ先に実行される。
但し、オブジェクト未設定なのでエラーになる。
(4)indexPageTS.WriteLine "<p style=""text-indent:" & ~
引用符の閉じ方が間違っている。
タグの設定はアポストロフィでも良いので、次のように
書き直してみては如何でしょう。
indexPageTS.WriteLine "<span style='width:~'>"
また、変数の誤記防止のため、Option Explicit宣言を入れ、
変数は定義してから使用するようにします。
ご回答ありがとうございます。
<SCRIPT>にSubを2個記述するのは無理だ、とかそういう根本的な間違いがあるわけではないようですね。
とりあえずご指摘の箇所を訂正して、それでもだめだったらまた質問させていただきます。そのときはまたよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
301リダイレクトを使用してURLw...
-
flaskのreturn render_template...
-
iPhoneで HTMLファイルを閲覧
-
L字みたいな記号の表示
-
WordPressに関しまして。#ハッ...
-
シーサーブログのヘッダー画像...
-
PDFファイルが破損していると表...
-
Powerpointに貼った画像のサイ...
-
レスポンシブWeb 右側の表示が...
-
テーブルセル余白(例えば左側...
-
ピクチャーボックスの大きさに...
-
複数の画像を1枚にしたファイ...
-
HTMLで、ホームページが作れる...
-
「社外秘」のイラスト、画像素...
-
ブログにバナーを貼り付けたい
-
HTMLタグで [ のような罫線を引...
-
Microsoft Powerpointのクリッ...
-
fc2に画像がアップロードできない
-
HTMLタグを使った画像のアップ...
-
教えてください。困ってます。D...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneで HTMLファイルを閲覧
-
rename関数で名前の変更が出来...
-
flaskのreturn render_template...
-
/public_html が表示されていない
-
「image」か「images」フォルダ...
-
Vue+Laravelのデザインテンプ...
-
花王サクセスで伊藤英明さんと...
-
フレームページでのメタとキー...
-
htmlのボタンでVBSのプロシージ...
-
L字みたいな記号の表示
-
テーブルセル余白(例えば左側...
-
PDFファイルが破損していると表...
-
ピクチャーボックスの大きさに...
-
グーグルのアイコンを操作して...
-
シーサーブログのヘッダー画像...
-
画像
-
borderの太さを1px以下に見せ...
-
縦ボーダーの長さ変更方法
-
レスポンシブWeb 右側の表示が...
-
ホームページビルダーで文字の...
おすすめ情報