こんにちはモチ湖です。
前回の記事でワードをhtmlにワンクリックで変換する方法【特許出願向け】を紹介しましたが、
文章中に「ファイルにリンクで画像データを挿入」した場合を想定していませんでした。
今回は、文章中に画像データがある場合でも、ワンクリックでHTML変換できるマクロを紹介します。
これを使えば、商標出願原稿でもワンクリックでHTML化できます。
本記事の内容
・ワードデータからHTMLデータをワンクリックで変換する方法
・今回は画像データが「ファイルにリンク」で挿入されているワードデータからHTMLデータに変換する方法を解説していきます!
本記事の信頼性
この記事を書いている私は、特許実務者であり、中堅特許事務所でシステム管理者の経験があります。これまでに、知財関係の便利ツールを発掘しています。
特許等の出願書類は、下記のとおり、文章中に「ファイルにリンクで画像データを挿入」しなければならないケースがあります。(商標出願の場合は「商標」、特許出願の場合は「数式」「表」など)
このようなケースでも、ワードデータからHTMLデータに変換できるマクロを紹介します。
マクロコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
Sub WordToHtml() Dim strFilePath As String Dim wordFileName As String Dim htmlFileName As String 'HTML変換元のファイル名取得' wordFileName = ActiveDocument.Name 'HTML変換先のファイル名' htmlFileName = "\" + Left(wordFileName, InStrRev(wordFileName, ".") - 1) + ".html" strFilePath = ActiveDocument.Path & htmlFileName 'HTML変換先のファイル作成' Open strFilePath For Output As #1 Print #1, "<html>" Dim p As Paragraph Dim Sups As Boolean Dim Subs As Boolean Dim Uline As Boolean 'HTMLタグ付与' For Each p In ActiveDocument.Paragraphs Print #1, "<p>"; '画像タグ付与' If p.Range.InlineShapes.Count >= 1 Then Dim isp As InlineShape For Each isp In p.Range.InlineShapes Print #1, "<img src=" & Chr(34); Print #1, isp.LinkFormat.SourceFullName; '画像データ名書き込み' Print #1, Chr(34) & ">"; Next Else Dim c As Range '下線部、上付文字、下付文字、タグ付与' For Each c In p.Range.Characters If Uline = False And Subs = False And c.Font.Underline <> wdUnderlineNone And c.Font.Subscript = True Then Print #1, "<u><sub>"; Uline = True Subs = True ElseIf Uline = False And Sups = False And c.Font.Underline <> wdUnderlineNone And c.Font.Superscript = True Then Print #1, "<u><sup>"; Uline = True Sups = True ElseIf Uline = True And Sups = True And c.Font.Underline = wdUnderlineNone And c.Font.Superscript = False Then Print #1, "</sup></u>"; Uline = False Sups = False ElseIf Uline = True And Subs = True And c.Font.Underline = wdUnderlineNone And c.Font.Subscript = False Then Print #1, "</sub></u>"; Uline = False Subs = False ElseIf Uline = False And c.Font.Underline <> wdUnderlineNone Then Print #1, "<u>"; Uline = True ElseIf Subs = False And c.Font.Subscript = True Then Print #1, "<sub>"; Subs = True ElseIf Sups = False And c.Font.Superscript = True Then Print #1, "<sup>" Sups = True ElseIf Sups = True And c.Font.Superscript = False Then Print #1, "</sup>"; Sups = False ElseIf Subs = True And c.Font.Subscript = False Then Print #1, "</sub>"; Subs = False ElseIf Uline = True And c.Font.Underline = wdUnderlineNone Then Print #1, "</u>"; Uline = False End If If Not c = vbCr Then Print #1, c; End If Next End If Print #1, "</p>" Next Print #1, "</html>" Close #1 End Sub |
マクロの特徴
前回との相違点は、下記のコードを追加した点です。段落内にフィールドコード(ファイルにリンクで挿入した画像)があると、イメージタグを挿入する動作を行います。
1 2 3 4 5 6 7 8 9 10 11 12 |
'画像タグ付与' If p.Range.InlineShapes.Count >= 1 Then Dim isp As InlineShape For Each isp In p.Range.InlineShapes Print #1, "<img src=" & Chr(34); Print #1, isp.LinkFormat.SourceFullName; '画像データ名書き込み' Print #1, Chr(34) & ">"; Next Else |
段落内にフィールドコード(ファイルにリンクで挿入した画像)があると、イメージタグを挿入する動作を行います。
実行結果
<HTML>
<ソースコード>
マクロの使い方は、過去の記事をご覧ください。
①マクロで明細書変換(文字データのみ)
-
ワードをhtmlにワンクリックで変換する方法【特許出願向け】
続きを見る
②マクロで図面変換
-
特許の図面データをhtmlにワンクリックで変換する方法
続きを見る
③マクロでファイルにリンクの画像を貼る
-
「ファイルにリンク」の選択を省略して画像を貼付けるマクロ
続きを見る
④マクロをツールバーに登録
-
HTML変換マクロ用のツールバーを作成する方法
続きを見る
以上、画像データが「ファイルにリンク」で挿入されているワードデータからHTMLデータに変換する方法を解説していきました。
このブログではこれからもどんどん特許事務に役立つ情報を発信していきますのでご覧いただければと思います!