2008年2月24日日曜日

VBA ~フォルダを作る~

フォルダを作る


セルのA2からA30までに作りたいフォルダ名を書きます。
セルのA4にパスを書きます。
あと、エクセルのシートにボタンを挿入して、下のプログラムと対応ずければOK!!


---------------------------------------------------------------------------------------
Private Sub btnMakeDir_Click()
   Dim path As String
   Dim notUse As Variant

   'パス
   path = Trim(Cells(2, 4)) & "\"

  '連番
  'Dim Num As Integer
  'Num = 1


  'フォルダの作成を開始
  For i = 2 To 30 Step 1
    '何も書いていないセルはとばす
    If Cells(i, 1) <> "" Then
      '使用不可の文字は消去 \/:*?<>|と改行
      For Each notUse In Array("\", "/", ":", "*", "?", "<", ">", "|", vbLf)
        Cells(i, 1) = Replace(Trim(Cells(i, 1)), notUse, "")
      Next notUse

      '同じフォルダ名があるかどうかを判断
      If Dir(path & Cells(i, 1), vbDirectory) = "" Then
        'フォルダを作成
        MkDir path & Trim(Cells(i, 1))
        '連番をつける場合は上をコメントにして、下を使う
        'MkDir path & Format(Num, "0#") & "_" & Trim(Cells(i, 1))
        'Num = Num + 1
      End If
    End If
  Next i

  Range("A2:A30").Clear

  MsgBox ("フォルダ作成完了!!")

End Sub

---------------------------------------------------------------------------------------