2016-10-26 2 views
0

내가 원하는 것은 파일 이름이 이미 존재하는지 확인하고 수정하는 것입니다. 나는 여러 가지 방법을 시도했지만 아무도 일을 !! 솔루션 찾기를 도와 주시겠습니까?VBA FileNma가 이미 존재하는지 확인하는 PowerPoint

이 내가 세 가지 방법으로 쓴 것입니다 :

Private Sub CommandButton21_Click() 
Dim lRetVal As Long 
Dim ObjFso As Object 
Dim CheckExists As Boolean 

Todate = DateValue(Now) 
oldWeekDay = Weekday(Todate) 
Select Case oldWeekDay 

Case 1 
NewFileName = "PT PM Weekly " & Format(Date + 4, "yyyymmdd") 
Case 2 
NewFileName = "PT PM Weekly " & Format(Date + 3, "yyyymmdd") 
Case 3 
NewFileName = "PT PM Weekly " & Format(Date + 2, "yyyymmdd") 
Case 4 
NewFileName = "PT PM Weekly " & Format(Date + 1, "yyyymmdd") 
Case 5 
NewFileName = "PT PM Weekly " & Format(Date, "yyyymmdd") 
Case 6 
NewFileName = "PT PM Weekly " & Format(Date + 6, "yyyymmdd") 
Case 7 
NewFileName = "PT PM Weekly " & Format(Date + 5, "yyyymmdd") 

End Select 
OwnPathName = Application.ActivePresentation.Path 
FullFileName = OwnPathName & "\" & NewFileName 
MsgBox OwnPathName 
MsgBox FullFileName 
'------------------------------------------------------------------- 
'lRetVal = Application.Presentations.Open(FullFileName) 
'If lRetVal <> HFILE_ERROR Then 
' MsgBox "Modification already done" 
'------------------------------------------------------------------ 
    'If Dir(FullFileName) <> "" Then 
    'MsgBox "Modification already done" 

'------------------------------------------------------------------- 
     'Set ObjFso = CreateObject("PowerPoint.Application") 
     'CheckExists = ObjFso.FileExists(FullFileName) 
     'If CheckExists = True Then 
     'MsgBox "Modification already done" 
Else 
deleteTextBox 
AllBlackAndDate 
LastModifiedDate 
SaveAllPresentations (FullFileName) 
End If 
End Sub 

여러분의 도움에 감사드립니다!

+0

아래 코드가 귀하에게 적합한 지 알고 싶습니다. –

답변

0

아래 코드를 시도해보십시오. PowerPoint 프레젠테이션의 NewFileName이 이미 존재하는지 확인하고, 그렇지 않으면 MsgBox을 표시합니다.

Private Sub CommandButton21_Click() 

Dim NewFileName    As String 
Dim OwnPathName    As String 

oldWeekDay = Weekday(Now) 

Select Case oldWeekDay 

    Case 1 
     NewFileName = "PT PM Weekly " & Format(Date + 4, "yyyymmdd") 
    Case 2 
     NewFileName = "PT PM Weekly " & Format(Date + 3, "yyyymmdd") 
    Case 3 
     NewFileName = "PT PM Weekly " & Format(Date + 2, "yyyymmdd") 
    Case 4 
     NewFileName = "PT PM Weekly " & Format(Date + 1, "yyyymmdd") 
    Case 5 
     NewFileName = "PT PM Weekly " & Format(Date, "yyyymmdd") 
    Case 6 
     NewFileName = "PT PM Weekly " & Format(Date + 6, "yyyymmdd") 
    Case 7 
     NewFileName = "PT PM Weekly " & Format(Date + 5, "yyyymmdd") 

End Select 

OwnPathName = ActivePresentation.Path 
FullFileName = OwnPathName & "\" & NewFileName 

' for debug only (can remove it later) 
MsgBox OwnPathName 
MsgBox FullFileName 


Dim StrFile    As String 
Dim FileFound   As Boolean 

FileFound = False 
' look for all types of PowerPoint files only (filter only to PowerPoint files to save time) 
StrFile = Dir(OwnPathName & "\*ppt*") 

Do While Len(StrFile) > 0 
    If InStr(StrFile, NewFileName) > 0 Then 
     FileFound = True 
     Exit Do 
    End If 
    StrFile = Dir 
Loop 

If FileFound Then 
    MsgBox "Modification already done" 
Else 
    ' do something .... your logics 

End If 

End Sub 
관련 문제