Aspose.Cellsを使用して、プログラムでExcelドキュメントを作成しています。これはうまくいきます。ただし、セルの1つは生のHTMLのブロックです。セルを解析してHTMLとして表示するようにExcelに(GUIを含む任意の方法で-Aspose APIを知る必要はありません)指示できるかどうか疑問に思っています。現時点では、テキスト形式、タグなどすべての未加工のHTMLとして表示されます。
私はExcelにHTMLを貼り付けることができることを知っていますが、それはそれを単独で解析してからExcel化して、HTMLを保存しないので、実際には解析して表示しません。 HTMLとして。さらに、この貼り付け機能を複製する方法がとにかくわかりません。
ありがとう。
残念ながら答えはノーです。
Excelには2つのHTMLオプションがあります。
おそらく、セルにHTMLを入力し、そのHTMLをドキュメントとして保存し、Excelの別のインスタンスで開き、そのフォーマットされたHTMLを取得して元のドキュメントに配置するマクロを考え出すことができます。このようにすると、HTMLと出力の2つの列ができます。 veryでも見苦しいでしょう。しないでください:0)
ExcelにHTMLデータを貼り付けると、HTMLがExcelに正しく表示されます。これに関する1つの問題は、キャリッジリターンとタブが次のセルに貼り付けられることです。
Dim objData As New DataObject
objData.SetText(sHTML)
Clipboard.SetDataObject(objData)
objRange.PasteSpecial()
適切にフォーマットされたテキストでセルを埋めます
Webブラウザーコントロールを使用してMicrosoft Excelで簡単なHTMLインタープリター(VBA)を作成する方法を示す興味深いYouTubeビデオを見つけました。 HTMLおよびCSSコードをテキストボックスに入力すると、フォームによってHTMLがWebプレビューに変換されます。
このコードは1つのセルで機能しました(@Rickの回答に触発されましたが、Clipboard.SetDataObject(objData)
がエラーを引き起こし、objRange.PasteSpecial()
が機能しなかったため、ほとんど変更がありませんでした)。
Private Sub Worksheet_Change2(ByVal Target As Range, ByVal sht As Worksheet)
Dim objData As DataObject 'Set a reference to MS Forms 2.0'
Dim sHTML As String
Dim sSelAdd As String
Application.EnableEvents = False
objData = New DataObject
sHTML = Target.Text
objData.SetText sHTML
objData.PutInClipboard
sht.PasteSpecial Format:="Unicode Text"
Application.EnableEvents = True
End Sub
Sub test()
Dim rng As Range
Set rng = ActiveSheet.Range("F15") 'cell to change'
Worksheet_Change2 rng, ActiveSheet
End Sub
詳細については、この post を参照してください
特定の1つのセルだけでなく、ワークシート全体で機能することを少し微調整することはそれほど難しくないと思います。エラーを防ぐために、このコードをラップするif条件をいくつか追加する必要があります。 この投稿 詳細については