* 告発状の見出しを一覧としてCSVファイルに書き出しするWordのVBAマクロ

 作成したのは昨日の午前中だったと思います。Linuxで作成した告発状本文のテキストをWindows10の一太郎に貼り付けるのが目的でした。

Sub エントリーの見出しをCSVファイルに書き出し()
  Dim lv1 As String
  Dim lv2 As String
  Dim lv3 As String
  Dim lv4 As String
  Dim lv5 As String
  Dim i As Integer
  i = 1
    Dim datFile As String
    Const F_PATH = "C:\Users\hirono\OneDrive\list.csv"  ' 出力ファイルのフルパス
    Dim f_num As Integer  ' ファイル番号

    f_num = FreeFile
    Open F_PATH For Output As f_num

  For Each par In ActiveDocument.Paragraphs
    If par.OutlineLevel <> wdOutlineLevelBodyText Then
    Select Case par.OutlineLevel
        Case 1
            'MsgBox "小学生です"
        Case 2
            'MsgBox "中学生です"
        Case 3
            'MsgBox "高校生です"
        Case 4
            i = i + 1
        Case 5
            i = i + 1
        Case Else
            'MsgBox "入力が不正です"
    End Select
    End If
    Next par


Dim max As Integer
max = i
i = 0
Dim entryies() As String
ReDim entryies(max)

  For Each par In ActiveDocument.Paragraphs
    If par.OutlineLevel <> wdOutlineLevelBodyText Then
     title = Replace(par.Range.Text, vbCr, "")

     If par.OutlineLevel = 1 Then
        lv1 = title
     End If

     If par.OutlineLevel = 2 Then
        lv2 = title
     End If

     If par.OutlineLevel = 3 Then
        lv3 = title
     End If

     If par.OutlineLevel = 4 Then
        lv4 = title
     End If

     If par.OutlineLevel = 5 Then
        lv5 = title
     End If

    Select Case par.OutlineLevel
        Case 1
            'MsgBox "小学生です"
        Case 2
            'MsgBox "中学生です"
        Case 3
            'MsgBox "高校生です"
        Case 4
            i = i + 1
            entryies(i) = lv1 & "," & lv2 & "," & lv3 & "," & lv4
        Case 5
            i = i + 1
            entryies(i) = lv1 & "," & lv2 & "," & lv3 & "," & lv4 & "," & lv5
        Case Else
            'MsgBox "入力が不正です"
    End Select

     'Selection.TypeText par.OutlineLevel & title & vbCr
    End If
  Next par


    For i = 0 To max
        'Selection.TypeText Var

        Print #f_num, entryies(i)
        Debug.Print entryies(i)
        Selection.TypeText entryies(i) & vbCr

    Next i

    Close #f_num
End Sub

 以前作成したものに手を加えていますが,カンマ区切りのCSVファイルとしました。これをExcelで開き,xlsxという拡張子のExcel形式で保存しました。これはそのままLinuxLibreOfficeで扱えます。

▶▶▶ kk_hironoのリツイート ▶▶▶

> 2020-09-06-091949_Wordマクロで作成した見出しの一覧CSVファイル.jpg https://t.co/PmDz6fpQLF

▶▶▶ kk_hironoのリツイート ▶▶▶

> 2020-09-06-093612_告発状項目一覧エクセルファイル.jpg https://t.co/3wR9voT7an

▶▶▶ kk_hironoのリツイート ▶▶▶

> 2020-09-06-095821_LibreOfficeの告発状項目一覧エクセルデータ.jpg https://t.co/FfMFnNtRnv

 LibreOfficeワープロソフトWriteのマクロで不具合が出たのが思案の始まりになります。段落をツイートするマクロですが,ファイルサイズが大きくなるのが原因なのか,その場で処理されなくなり,アプリの終了時にまとめて実行されるという問題です。

 告発状本文の作成は,LinuxEmacsをメインに,Mewというメールソフトの活用を考えています。gmailの送受信になります。このあと,Windows10のWSL2でもMewを使えるようにやってみたいと考えています。