매크로 | Posted by lamie 2008. 9. 22. 11:03

화일 이름 바꾸기 매크로

파란부분 path는 직접 손으로 쓰야 합니다......ㅡㅡㅋ


디렉토리네 화일을 a열에 읽어오는 메크로가   Sub 파일이름읽기() 이고

이거실행시킨후


b열에 작업한후  Sub 다른이름저장() 메크로를 실행합니다.

b열에 바꿀명 넣으면 화일명 변경하고 비워두면 그냥 지나갑니다.

*가 있으면 삭제합니다.  a열은 절대 변경하면 안돼고요


도구 메크로 비주얼베이직 에디터로 가셔서 왼쪽 탐색기창에 모듈삽입하고

아래 메크로 붙여넣으세요



Sub 파일이름읽기()

Dim mydir, Mypath, FileExt As String
Dim fs          As Object
Dim sFile       As Variant
Dim i, s          As Integer


mydir = "H:\새 폴더\mp3\z미정리곡\21212222"
s = Len(mydir)

FileExt = "*.*"                       '
Set fs = Application.FileSearch       ' 지정 디렉토리에서 지정한 형식의 파일을 찾음
  
With fs
  .NewSearch
  .LookIn = mydir
  .Filename = FileExt
  .SearchSubFolders = False
  .Execute
                   
  If .FoundFiles.Count = 0 Then      ' 지정 디렉토리에 파일 없을땐 끝냄
        MsgBox "디렉토리에 파일이 없습니다."
  End If
  Range("a:b").Clear
  Range("a1").Select
 
  For i = 1 To .FoundFiles.Count
       
      sFile = .FoundFiles(i)                          ' 찾은 파일
      Selection.Offset(i, 0) = Right(sFile, Len(sFile) - s - 1)
  Next i
 
End With
 
End Sub


Sub 다른이름저장()

Dim Oldname, NewName, mydir As String
Dim i, lastRow As Integer

Cells(Cells.Rows.Count, 1).End(xlUp).Select
lastRow = Selection.Row
mydir = "H:\새 폴더\mp3\z미정리곡\21212222"

Range("a1").Select
With Selection

For i = 1 To lastRow - 1
   Oldname = .Offset(i, 0).Value
   NewName = .Offset(i, 1)
   Oldname = mydir & "\" & Oldname
  
   If NewName = "*" Then
       Kill Oldname
   ElseIf NewName = "" Then
   Else
   NewName = mydir & "\" & NewName
   Name Oldname As NewName
   End If
  
Next i
파일이름읽기
End With

End Sub

'매크로' 카테고리의 다른 글

filesearch 대용  (0) 2008.10.05
사진 자동입력하는 매크로 - manual/auto  (0) 2008.09.25
폴더 여는 매크로  (0) 2008.09.25
macro 설명  (0) 2008.09.03
엑셀 함수 목록  (0) 2008.09.02