HTML を読み取り、そこからいくつかの列を Excel テーブルに書き込みたいと考えています。現在、マクロを使用してそれを実行していますが、VBScript でそれが必要です。
コンプライアンスチェックとオラクルテーブルの失敗回数を数えてExcelドキュメントに書き出したい。
サンプル HTML のフルサイズの画像と目的の Excel ファイルの結果。
HTML を読み取り、そこからいくつかの列を Excel テーブルに書き込みたいと考えています。現在、マクロを使用してそれを実行していますが、VBScript でそれが必要です。
コンプライアンスチェックとオラクルテーブルの失敗回数を数えてExcelドキュメントに書き出したい。
サンプル HTML のフルサイズの画像と目的の Excel ファイルの結果。
Excel は、次のように VBScript から制御できます。
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set wb = xl.Workbooks.Add
HTML ファイルは DOM ドキュメントに解析できます。
Set doc = CreateObject("Msxml2.DOMDocument.6.0")
doc.async = True
doc.load "C:\path\to\your.html"
XPath式を使用してすべての<td>
要素を選択します。
Set td = doc.selectNodes("//tr/td")
この時点で、ドキュメント内のすべての要素td
のコレクションが含まれています。<td>
次のように処理できます。
numrows = doc.selectNodes("//tr").Length
numcols = td.Length / numrows
row = 0
For i = 0 To td.Length - 1 Step numcols
If td(i).Text = "Fail" Then
row = row + 1
wb.Sheets(1).Cells(row, 1).Value = CDate(Split(td(i+2).Text)(0))
If InStr(td(i+1).Text, "compliance") > 0 Then
wb.Sheets(1).Cells(row, 2).Value = 1
ElseIf InStr(td(i+1).Text, "Oracletable") > 0 Then
wb.Sheets(1).Cells(row, 3).Value = 1
End If
End If
Next
上記は、次のようなテーブルを作成します。
2/9/2012 1
2/9/2012 1
2/9/2012 1
.
.
.
その後、Excel のConsolidate
方法を使用してデータを統合できます。
Const xlSum = -4157
wb.Sheets(2).Range("A1").Consolidate _
Array(wb.Sheets(1).Name & "!R1C1:R" & row & "C3"), xlSum
任意のdomライブラリを使用して html を読み取り、OpenXML SDKを使用して Excel (2007 形式 - xlsx) に書き出すことができます。それはあなたの質問に答えていますか、それともあなたが苦労していることはありますか?
編集
申し訳ありませんが、何らかの理由で VB.Net でそれを行うことについて話していると思っていましたが、既に Excel を使用していることに気付きました。だから私はあなたが何を求めているのかはっきりしていません.htmlファイルを開く方法は? 値を計算または保存する方法は?
おそらく、これまでに作成したスクリプトを投稿して、何が機能していないかを具体的に説明してください。