人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: crashtruck
●カテゴリ:インターネット ウェブ制作
✍キーワード:HTML タグ 作成 属性
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●27ポイント ベストアンサー

完全な除去を望むのであれば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 ● Mook
●27ポイント

名前をつけて保存から 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★


3 ● まきのっぴ
●26ポイント

XLS2HTMLTable (Excel Addin)

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ