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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/04/16 23:38:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

ポイント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

回答回数2915ベストアンサー獲得回数301ここでベストアンサー

ポイント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

回答回数1314ベストアンサー獲得回数393

ポイント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

回答回数358ベストアンサー獲得回数30

ポイント26pt

XLS2HTMLTable (Excel Addin)

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

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

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

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

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

回答リクエストを送信したユーザーはいません