• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:(VB複数htmファイルからのテキストデータの抽出)

ExcelVBAで複数のhtmファイルからテキストデータを抽出する方法

このQ&Aのポイント
  • ExcelVBAを使用して複数のhtmファイルからテキストデータを抽出する方法を教えてください。
  • ExcelVBAを使って複数のhtmファイルからテキストデータを抽出する際、htmlタグも一緒にコピーされてしまいます。どのように修正すればボードらがいいでしょうか。
  • ExcelVBAを利用して複数のhtmファイルからテキストデータのみを抽出する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • NuboChan
  • ベストアンサー率47% (785/1650)
回答No.1

以下では ? (コード検証していないので処理できるかは?不明です。) Sub ExtractTextFromHTMLFiles() Dim fso As Object Dim folder As Object Dim file As Object Dim text As String Dim i As Integer ' フォルダを選択するダイアログを表示 Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder("フォルダのパス") ' フォルダ内のすべてのHTMLファイルを処理 For Each file In folder.Files If Right(file.Name, 4) = ".htm" Or Right(file.Name, 5) = ".html" Then ' ファイルを開く Open file.Path For Input As #1 ' ファイルからテキストを読み込む Do Until EOF(1) Line Input #1, text ' HTMLタグを除去 text = StripHTML(text) ' テキストを出力 Debug.Print text Loop ' ファイルを閉じる Close #1 End If Next file End Sub ' HTMLタグを除去する関数 Function StripHTML(text As String) As String Dim regEx As Object Set regEx = CreateObject("VBScript.RegExp") regEx.Pattern = "<[^>]+>" regEx.Global = True StripHTML = regEx.Replace(text, "") Set regEx = Nothing End Function

pikopiko29
質問者

お礼

修正案ありがとうございます。 早速やってみたところ、DIVタグの箇所だけ抽出されました。 <DIV CLASS="PABDEF_RTID1_6"><SPAN CLASS="Def_Sans_Serif" STYLE="color:#000000;font-size:10pt;line-height:1.1em;"></SPAN><BR></DIV> 「regEx.Pattern = "<[^>]+>"」の箇所で上記のhtmlタグも消去されると思ったのですが、何か不足しているのでしょうか。