« # 金沢駅西合同庁舎 | トップページ | ## 弁護士樋詰哲朗さんはTwitterを使っています 「金沢弁護士会の副会長に就任。初日は怒涛の挨拶周り。なんと33か所。」 / Twitter »

2020年4月 1日 (水)

## Wordで見出しの一覧からフォルダとファイルを作成するシェルスクリプトの文字列をファイルに書き出すVBA

``` Sub 見出しのディレクトリーを作成() Dim par As Paragraph Dim title As String Dim lv1 As String Dim lv2 As String Dim lv3 As String Dim lv4 As String Dim i As Integer i = 1 Dim datFile As String Const F_PATH = "\wsl$\Ubuntu\home\myhome\word_list.txt" ' 出力ファイルのフルパス 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 i = i + 1 Case 2 i = i + 1 Case 3 i = i + 1 Case 4 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)

MsgBox 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


Select Case par.OutlineLevel
    Case 1
        i = i + 1
        entryies(i) = "mkdir -p " & lv1
    Case 2
        i = i + 1
        entryies(i) = "mkdir -p " & lv1 & "/" & lv2
    Case 3
        i = i + 1
        entryies(i) = "mkdir -p " & lv1 & "/" & lv2 & "/" & lv3
    Case 4
        i = i + 1

        entryies(i) = "if [ ! -s """ & lv1 & "/" & lv2 & "/" & lv3 & "/" & lv4 & ".md" & """ ]; then  touch " & lv1 & "/" & lv2 & "/" & lv3 & "/" & lv4 & ".md" & "; fi"

    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)

Next i

Close #f_num

End Sub ```

作成されたファイルの一部: [1995] % tail ~/word_list.txt mkdir -p 被告発人らの犯罪事実(共謀・共犯関係)/被告発人岡田進弁護士(金沢弁護士会) mkdir -p 被告発人らの犯罪事実(共謀・共犯関係)/被告発人木梨松嗣(金沢弁護士会) mkdir -p 被告発人らの犯罪事実(共謀・共犯関係)/被告発人長谷川紘之弁護士(金沢弁護士会) mkdir -p 被告発人らの犯罪事実(共謀・共犯関係)/被告発人若杉幸平弁護士(金沢弁護士会) mkdir -p 被告発人らの犯罪事実(共謀・共犯関係)/被告発人小島裕史裁判長(平成5年当時の名古屋高裁金沢支部裁判長) mkdir -p 情報公開のご説明及び参考資料 mkdir -p 情報公開のご説明及び参考資料/書面の作成環境(プラットホーム) mkdir -p 情報公開のご説明及び参考資料/書面の作成環境(プラットホーム)/Windows10 if [ ! -s "情報公開のご説明及び参考資料/書面の作成環境(プラットホーム)/Windows10/Wordでのアウトラインの作成と,VBAによる対応したフォルダ,ファイルの作成.md" ]; then touch 情報公開のご説明及び参考資料/書面の作 成環境(プラットホーム)/Windows10/Wordでのアウトラインの作成と,VBAによる対応したフォルダ,ファイルの作成.md; fi

WSLのLinux環境に合わせ文字コードと改行コードを変換: % nkf --overwrite -w -Lu ~/word_list.txt

スクリプトの実行(ファルだとファイルの生成: % cat ~/word_list.txt |bash

|

« # 金沢駅西合同庁舎 | トップページ | ## 弁護士樋詰哲朗さんはTwitterを使っています 「金沢弁護士会の副会長に就任。初日は怒涛の挨拶周り。なんと33か所。」 / Twitter »