내가 난처한 상황에 빠진거야를 활성화 할 때 내가 바보 뭔가가 될있어 같은 느낌 다른 파일에 포함되어 있고 열려있는 프리젠 테이션 (초기 매크로가 실행 된 매크로)에 "적용"됩니다. 컴파일 오류가 발생합니다 : 메소드 또는 데이터 멤버가 두 번째 행에서 마지막 행에 없습니다. 해당 줄을 주석 처리하면 코드가 제대로 실행되지만 잘못된 프레젠테이션에 매크로가 적용됩니다.컴파일 오류가 나는 프리젠 테이션을
아이디어가 있으십니까? 사전에
감사합니다, 조
Function IsPresentationOpen(Name As String) As Boolean
Dim codePres As Presentation
On Error Resume Next
Set codePres = Application.Presentations.Item(Name)
IsWorkBookOpen = (Not codePres Is Nothing)
End Function
Sub Run_Macro()
Dim BriefingTemplate As Presentation
Set BriefingTemplate = Application.ActivePresentation
'Open Joe's Code Workbook
Dim xRet As Boolean
xRet = IsPresentationOpen("CODE.potm")
If xRet Then
Else
Presentations.Open "Direcory\CODE.potm"
End If
'Run Macro
BriefingTemplate.Activate '<<This is the line w/ the error
Application.Run ("'CODE.potm'!Macro"), BriefingTemplate
End Sub
Sub a_RunAll_PM(BriefingTemplate As Presentation)
BriefingTemplate.Activate
Call a_Scorecards_PM
Call CurrentTemps_PM
Call RadarSat_PM
Call Severe_PM
Call Day1_PM
Call Day2
Call JetStream_PM
Call Operational_Impact_PM
Call D1_Headlines_PM
Call D2_Headlines
End Sub
Sub a_Scorecards_PM()
Dim oPic As Shape
Set oPic = ActivePresentation.Slides(1).Shapes.AddPicture(_
FileName:="H:\Weather Briefs\Daily Ops Scorecards\SWA_Page_1.jpg", _
LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, Left:=0, Top:=0, _
Width:=720, Height:=540)
ActivePresentation.Slides(1).Copy
ActivePresentation.Slides.Paste 24
End Sub
FWIW -'IsPresentationOpen'은 반환 값을 지정하지 않기 때문에 항상'False'를 반환합니다. – YowE3K
[문서] (https://msdn.microsoft.com/en-us/vba/powerpoint-vba/articles/presentation-object-powerpoint)에 따르면,'Presentation' 객체는'Activate' 메소드를 가지고 있지 않습니다 - 이것이 그 방법이 존재하지 않는다고 말하는 이유입니다. TBH, 문제가 "매크로"에있는 코드와 관련이 있다고 생각합니다. 올바른 프레젠테이션을 업데이트하는 방법으로 쓰여지지 않은 것 같습니다. 그래서 우리가 당신이 그 코드를 수정하도록 도와달라고 요청하면 유용 할 것입니다. – YowE3K
'xRet'을 제거하고 IsPresentationOpen ("CODE.potm")이 아니라면 Presentations.Open "Direcory \ CODE.potm"을 사용하여 코드를 간소화하십시오. – jsotola