Exelで作成した表を、HTMLのTableとして出力したいのですが、その際、属性のない、<table></table><tr></tr><td></td>といった必要最低限のタグのみで構成されたものを出力したいのです。方法はあるでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/04/16 18:03:31
  • 終了:2007/04/16 23:38:45

ベストアンサー

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012007/04/16 18:54:33

ポイント27pt

完全な除去を望むのであればPerlなどのテキスト処理スクリプトで正規表現を用いてタグ内の要素を消去るような作業が必要になります。


完全な除去は出来ませんが、Office独特のタグが邪魔だということであれば、

■OfficeXP以降

WEBページ形式で保存の際に(フィルタ後)というのを選択しておけばOffice独特のタグや注釈などは省いてくれます。

■Office2000

HTML Filter 2.1 for Office 2000というものをダウンロードしてセットアップすれば同じような事が可能になります。

http://www.microsoft.com/downloads/details.aspx?FamilyID=209ADBE...

http://journal.mycom.co.jp/news/2002/10/03/10.html

その他の回答(2件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012007/04/16 18:54:33ここでベストアンサー

ポイント27pt

完全な除去を望むのであればPerlなどのテキスト処理スクリプトで正規表現を用いてタグ内の要素を消去るような作業が必要になります。


完全な除去は出来ませんが、Office独特のタグが邪魔だということであれば、

■OfficeXP以降

WEBページ形式で保存の際に(フィルタ後)というのを選択しておけばOffice独特のタグや注釈などは省いてくれます。

■Office2000

HTML Filter 2.1 for Office 2000というものをダウンロードしてセットアップすれば同じような事が可能になります。

http://www.microsoft.com/downloads/details.aspx?FamilyID=209ADBE...

http://journal.mycom.co.jp/news/2002/10/03/10.html

id:Mook No.2

Mook回答回数1313ベストアンサー獲得回数3922007/04/16 18:54:50

ポイント27pt

名前をつけて保存から 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>&nbsp;</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

★Let's Excel VBA★

id:pmakino No.3

まきのっぴ回答回数355ベストアンサー獲得回数282007/04/16 21:35:56

ポイント26pt

XLS2HTMLTable (Excel Addin)

でお望みのことが実現できると思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません