読者です 読者をやめる 読者になる 読者になる

意外となんとかなる日記

世迷言を心に、綺麗事を頭に

スポンサーリンク

【Access】【Excel】VBAで階層的なフォルダを作成する

一歩踏み込むVBA

 ちょっと必要になったので作ってみました。

 SHCreateDirectoryExというAPIをつかうと一発らしいのですが、個人的にDLLとかのライブラリを叩くのはあまり好きではないので、プログラミングでやってみました。


Sub testMakeDir()
    makeDir "C:¥TEMP¥test¥1¥2¥3¥4¥"
End Sub

Sub makeDir(ato As Variant, Optional mae As String)
    ' ディレクトリ作成再帰版
    Dim wrk As String
    
    If Right(ato, 1) <> "¥" Then ato = ato & "¥"
    
    wrk = Mid(ato, InStr(ato, "¥") + 1)
    mae = mae & Mid(ato, 1, InStr(ato, "¥"))
    ato = wrk
    
    If Dir(mae, vbDirectory) = "" Then MkDir mae
    
    If ato <> "" Then makeDir ato, mae
End Sub

 変数のネーミングセンスがアレな癖に、こいつ動くぞ?というギャップが良いですね(自画自賛)。

 なるほどーと言ってもらえると悦びます。

 こういうのを考えることがプログラミングだと思っています。

 再帰処理なんて久しぶりに使いましたし、良い頭の体操になりました。

スポンサーリンク