* 告発状の見出しを一覧として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形式で保存しました。これはそのままLinuxのLibreOfficeで扱えます。
▶▶▶ kk_hironoのリツイート ▶▶▶
2020-09-06-091949_Wordマクロで作成した見出しの一覧CSVファイル.jpg pic.twitter.com/PmDz6fpQLF
— 非常上告-最高検察庁御中_ツイッター (@s_hirono) September 6, 2020
▶▶▶ kk_hironoのリツイート ▶▶▶
2020-09-06-093612_告発状項目一覧エクセルファイル.jpg pic.twitter.com/3wR9voT7an
— 非常上告-最高検察庁御中_ツイッター (@s_hirono) September 6, 2020
▶▶▶ kk_hironoのリツイート ▶▶▶
2020-09-06-095821_LibreOfficeの告発状項目一覧エクセルデータ.jpg pic.twitter.com/FfMFnNtRnv
— 非常上告-最高検察庁御中_ツイッター (@s_hirono) September 6, 2020
LibreOfficeのワープロソフトWriteのマクロで不具合が出たのが思案の始まりになります。段落をツイートするマクロですが,ファイルサイズが大きくなるのが原因なのか,その場で処理されなくなり,アプリの終了時にまとめて実行されるという問題です。
告発状本文の作成は,LinuxのEmacsをメインに,Mewというメールソフトの活用を考えています。gmailの送受信になります。このあと,Windows10のWSL2でもMewを使えるようにやってみたいと考えています。