## 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
0 件のコメント:
コメントを投稿