Q11. 폴더를 만드는 방법?

3508 단어 VBAExcelExcelVBA
폴더를 만드는 방법을 생각해 봅시다.

지금까지는, 셀의 문자색을 바꾸거나, 셀의 값을 다른 셀에 카피하거나 엑셀내의 조작을 취급해 왔습니다만, 이번은 폴더 작성을 실시합니다.

의외로 모르는 사람도 많을지도 모르지만 엑셀 VBA에서 폴더를 만들 수도 있습니다.
다만, 특별한 엑셀 VBA로 폴더를 작성할 뿐이라고 그다지 의미가 없을지도 모릅니다만,
예를 들어, 출력처를 폴더를 작성해, 거기에 엑셀 파일에 있는 특정의 시트나 정보등의 백업을 취하는 것 같은 매크로를 만들면, 간단하게 백업할 수 있지요.

다만, 이번은 단순히 폴더 작성만을 실시해 갑니다.

그렇다면 어떤 매크로로 만들 것인가,
샘플 1~샘플 10이라는 10개의 폴더를 C 드라이브 바로 아래에 작성하는 것으로 합니다.

■ 포인트



폴더 작성을 하는 방법에 대해서입니다만, 이하가 됩니다.
Mkdir "경로"
입니다.
경로에 새 폴더 이름을 포함해야 합니다.

예를 들어 C 드라이브 아래에 aaa라는 폴더를 만드는 경우,
Mkdir "C:\aaa"
됩니다.

그러나 단순히 Mkdir "aaa"라고하면,
현재 폴더를 만들 수 있습니다.

현재 디렉토리는 CurDir 속성에 저장되므로,
예를 들어, Msgbox CurDir를 사용하여 표시할 수 있습니다.

폴더를 작성할 때의 주의점입니다만, 이미 존재하고 있는 경우는,
에러가 되기 때문에, 사전에 존재 확인을 하는 코드를 기술해 두면 좋을 것입니다.

■답변


Sub Q11_Answer()
    Dim ForderPath As String
    Dim ForderName As String
    Dim i As Integer
    ForderPath = "C:\"
    ForderName = ForderPath + "サンプル"
    For i = 1 To 10
        If Dir((ForderName & i), vbDirectory) = "" Then
            MkDir (ForderName & i)
        End If
    Next i
    Shell "explorer" & Chr(32) & ForderPath, vbNormalFocus
End Sub

■해설



For 루프 내에 폴더를 만드는 과정을 설명함으로써,
샘플 1 ~ 샘플 10의 폴더를 작성하고 있습니다.

For 루프 내에 있는 If Dir((ForderName & i), vbDirectory) = ""Then,
폴더를 만들기 전에 만들려는 폴더가 이미 있는지 확인할 수 있습니다.
만약, 존재하고 있었을 경우는, 폴더명이 취득되기 때문에, 조건에 맞지 않기 때문에, 폴더의 작성은 행해지지 않습니다.

마지막에 있는 Shell "explorer"& Chr(32) & ForderPath, vbNormalFocus는,
이번에 작성한 폴더가 있는 폴더를 열기 위해서 기술하고 있습니다.
이렇게 하면 일일이 탐색기에서 여는 번거로움을 줄일 수 있습니다.

마지막으로 실행 결과는 여기입니다. 제대로 폴더가 만들어졌는지 확인할 수 있습니다.

좋은 웹페이지 즐겨찾기