[[20151006101120]] 『VBAでHTML保存時にセルが間延びする』(杉山) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでHTML保存時にセルが間延びする』(杉山)

原因不明のためご教授願います。

データを自動で取得し計算したうえで、
シートをHTML保存する、というVBAを書いたのですが、
HTML保存された際に高さが間延びするセルが発生します。

発生するシートと発生しないシートが存在し、
発生するシートにおいても間延びする行は毎回バラバラです。

口頭での説明が難しいので画像リンクを添付します。
(一部情報はセキュリティのためマスクしています。)

・元のエクセルシート その1

・間延びしたHTML保存ファイル その1

・元のエクセルシート その2

・間延びしたHTML保存ファイル その2

HTMLファイルはIE8で開いていますが、
ファイヤーフォックス等でも発生しましたので、
ブラウザの原因ではないと考えています。

HTML保存する際のVBAを記載します。


'HTML保存先を指定する定数
Public Const HTMLFileDirectory As String = "C:\aaaa\bbbb\cccc\"

'実際の関数(保存するシート名を指定して呼び出し)
Sub saveAsHTML(SaveSheet As String)

    Sheets(SaveSheet).Select

    With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
        HTMLFileDirectory & SaveSheet & ".html", SaveSheet, "", xlHtmlStatic, _
        SaveSheet, "")
        .Publish (True)
        .AutoRepublish = False
    End With

End Sub


間延びの原因、対策がわかりますでしょうか。

ご教授のほどよろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


ExcelのHTML出力は、たまに変になりますよね。1つ目のシートでは、表の下部にある、長い説明文あたりが怪しいかもです。

まず、出力されたHTMLで、崩れている箇所を特定してみてください。
「width: 33%」とか表示サイズのルールを追加している箇所だったりしませんか?
この場合、幅指定している箇所を削除してみると、サイズ自動調整により、正常な表になるかもです。

2つ目のシートの場合、表示項目が多いけれど、構造は単純ですね。
これならば、Excelの機能に頼らず、自前でテーブルタグを書くようなマクロを作成してしまうとか?
Excelの自動出力は、余分な指定が多すぎると思います。
(???) 2015/10/06(火) 17:11


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.