完全な除去を望むのであればPerlなどのテキスト処理スクリプトで正規表現を用いてタグ内の要素を消去るような作業が必要になります。
完全な除去は出来ませんが、Office独特のタグが邪魔だということであれば、
■OfficeXP以降
WEBページ形式で保存の際に(フィルタ後)というのを選択しておけばOffice独特のタグや注釈などは省いてくれます。
■Office2000
HTML Filter 2.1 for Office 2000というものをダウンロードしてセットアップすれば同じような事が可能になります。
http://www.microsoft.com/downloads/details.aspx?FamilyID=209ADBE...
完全な除去を望むのであればPerlなどのテキスト処理スクリプトで正規表現を用いてタグ内の要素を消去るような作業が必要になります。
完全な除去は出来ませんが、Office独特のタグが邪魔だということであれば、
■OfficeXP以降
WEBページ形式で保存の際に(フィルタ後)というのを選択しておけばOffice独特のタグや注釈などは省いてくれます。
■Office2000
HTML Filter 2.1 for Office 2000というものをダウンロードしてセットアップすれば同じような事が可能になります。
http://www.microsoft.com/downloads/details.aspx?FamilyID=209ADBE...
名前をつけて保存から HTML を選んで保存すると、いろいろと勝手に修飾を付けてくれるので、VBA でやるのはどうでしょうか。
テーブルにしたい範囲を選択しておいて、下記を実行するとConst で定義したファイル(下記の例では C:\table.html)に結果を出力します。
簡単にやるには、シートタグを右クリックしてコードを表示して、そこに下記のコードを貼り付けます。
出力するセル範囲を選択してから、Alt+F8を押し「シート名!makeHTMLTable」を実行するれば、ファイルができると同時にメッセージボックスで結果が表示されます。
'----------------------------------------- ' 出力ファイル名 '----------------------------------------- Const outFile = "C:\table.html" '----------------------------------------- Sub makeHTMLTable() '----------------------------------------- Dim rng As Range Set rng = Selection Dim r As Long Dim c As Long Dim res As String res = "<TABLE>" & vbNewLine For c = rng.Column To rng.Column + rng.Columns.Count - 1 res = res & " <TR>" & vbNewLine For r = rng.Row To rng.Row + rng.Rows.Count - 1 If Cells(r, c).Value = "" Then res = res & " <TD> </TD>" & vbNewLine Else res = res & " <TD>" & Cells(r, c).Value & "</TD>" & vbNewLine End If Next res = res & " </TR>" & vbNewLine Next res = res & "</TABLE>" '---- 画面に表示 MsgBox res '---- ファイルに出力 With CreateObject("Scripting.FileSystemObject") With .createTextFile(outFile) .write res .Close End With End With End Sub
コメント(0件)