« * たぶん初めて知った,「日本コンピューティングシステム(JCS)」という会社,値段の出ていない商品のことから,Ubuntu,ホリエモンこと堀江貴文氏の回想 | トップページ | * LibreOfficeでコピーした告発状の見出しの階層をスラッシュで連結し,クリップボードにコピーするsedのワンライナーコマンド »

2020年9月 7日 (月)

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

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

|vba| 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のリツイート ▶▶▶

  • RT kk_hirono(刑事告発・非常上告_金沢地方検察庁御中)|s_hirono(非常上告-最高検察庁御中_ツイッター) 日時:2020-09-07 11:47/2020/09/06 09:25 URL: https://twitter.com/kk_hirono/status/1302800705799954433 https://twitter.com/s_hirono/status/1302402602953367552
> 2020-09-06-091949_Wordマクロで作成した見出しの一覧CSVファイル.jpg https://t.co/PmDz6fpQLF

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

  • RT kk_hirono(刑事告発・非常上告_金沢地方検察庁御中)|s_hirono(非常上告-最高検察庁御中_ツイッター) 日時:2020-09-07 11:47/2020/09/06 09:37 URL: https://twitter.com/kk_hirono/status/1302800715677540353 https://twitter.com/s_hirono/status/1302405430337966082
> 2020-09-06-093612_告発状項目一覧エクセルファイル.jpg https://t.co/3wR9voT7an

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

  • RT kk_hirono(刑事告発・非常上告_金沢地方検察庁御中)|s_hirono(非常上告-最高検察庁御中_ツイッター) 日時:2020-09-07 11:48/2020/09/06 11:03 URL: https://twitter.com/kk_hirono/status/1302800771214311424 https://twitter.com/s_hirono/status/1302427294745554946
> 2020-09-06-095821_LibreOfficeの告発状項目一覧エクセルデータ.jpg https://t.co/FfMFnNtRnv

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

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

|

« * たぶん初めて知った,「日本コンピューティングシステム(JCS)」という会社,値段の出ていない商品のことから,Ubuntu,ホリエモンこと堀江貴文氏の回想 | トップページ | * LibreOfficeでコピーした告発状の見出しの階層をスラッシュで連結し,クリップボードにコピーするsedのワンライナーコマンド »