2016-06-30 3 views
0

저는 PowerPoint 추가 기능을 만든 프로젝트에서 작업하고 있습니다. 이 개념은 목록 상자가있는 사용자 양식 만 포함합니다. 사용자 선택에 따라 다른 모듈 (기본 파일)이 프레젠테이션에 추가되거나 가져와 코드가 실행됩니다.동적으로 추가 기능에 코드를 가져 오거나 동적으로 추가하십시오.

수정 사항을 수행하고 공유 폴더에 저장할 수있는 요구 사항에 따라 추가 기능에 모든 모듈을 포함하고 싶지 않습니다. 따라서 사용자가 추가 기능을 사용할 때마다 업데이트 된 버전을 가질 수 있습니다. 그래서 나는 모든 변화와 함께 addin을 순환시킬 필요가 없습니다.

나는 텍스트 파일 (텍스트로 저장된 기본 파일의 코드)에서 코드를 가져와 실행하는 빈 모듈이 있습니다.

insertFrom 파일 옵션을 사용하여 기본 파일을 가져올 수 있습니다. 텍스트 파일에서 코드를 가져올 수는 있지만 문제는 항상 현재 프레젠테이션 코드 창에 추가되는 문제입니다. 하지만 addin 코드 창에 코드를 추가하고 싶습니다.

내가 가져온 코드를 업데이트하려는 "tempCode"라는 추가 모듈에 빈 모듈이 있지만 그렇게 할 수 없습니다.

ppt로 addin을 편집 할 때 제대로 작동하지만 ppt를 addin으로 변환하면 개념이 작동하지 않습니다.

어떻게하면 addin 코드 창에 코드를 추가하여 활성 PPT에 추가 할 수 있는지 생각해보십시오.

코드 세부 정보 :

나는 목록 상자가있는 사용자 양식이 있습니다. 3 개의 항목이 있습니다. 옵션 1 옵션 2 옵션 3 사용자가 옵션을 선택하면 옵션 2에 대한 코드가 텍스트 파일에서 작업 모듈로 가져옵니다.

선택한 명령을 실행하는 명령 단추.

Sub ImportSelected() 
With ActivePresentation.VBProject.VBComponents(“Mod_Working”).CodeModule 
    .DeleteLines 1, .CountOfLines 'it deletes any existing code 
    .AddFromFile “C:\Code\Option2.txt” 
End With 
End Sub 

Code in text file: 
Sub Test 
Msgbox “You selected Opt 2” 
End sub 

Code of Command Button: 
Private Sub Cmd_run_Click() 
    Application.Run “Mod_Working.Test” 
End Sub 

이 작동합니다 아래

내가 사용하고있는 코드입니다 : 모듈 작업의

이름 텍스트 파일의 이름 "\ 코드 \ Option2.txt C가" "Mod_Working"입니다 ppt 모드로 전환하지만 addin으로 변환 할 때는 그렇지 않습니다.

+0

기존 코드를 표시하면 변경 제안을 쉽게 할 수 있습니다. 그러나 추가 기능을 공유 폴더에서 "실제"추가 기능을로드하는 "스텁"으로 만드는 것이 더 쉬울 수도 있습니다. 이렇게하면 항상 최신 상태가 유지되며, 만들 수있는 리본 항목의 변경 사항을 관리 할 수 ​​있습니다. (폴더의 공유 추가 기능에 "읽기 전용"으로 태그를 지정하십시오.) –

+0

프로젝트 탐색기에서 PowerPoint 추가 기능을 표시하도록 레지스트리 키를 설정 했습니까? – ThunderFrame

+0

사용중인 코드 : Sub ImportSelected() With ActivePresentation.VBProject.VBComponents ("Mod_Working").CodeModule .DeleteLines 1, .CountOfLines '는 기존 코드 .AddFromFile "C : \ 코드 \ Option2.txt"삭제 텍스트 파일에 최종 하위 코드와 종료 : MSGBOX "당신은 수신 거부 2 선택 하위 테스트 "명령 단추의 최종 하위 코드 : 개인 서브 Cmd_run_Click() Application.Run"Mod_Working.Test " 최종 하위이 PPT 모드에서 작동하지만 추가 기능으로 전환하지 않을 경우 . Tim, 스텁 개념을 좀 더 설명해 주실 수 있습니까? 또한 내 사무실 시스템이므로 레지스트리에 액세스 할 수 없습니다. –

답변

0

왜 이렇게 : - 공유 폴더에서 추가 기능 파일을 읽기 전용으로 표시 (오른쪽 클릭, 속성). 이렇게하면 사람들이 추가 기능을 사용할 때 파일이 사용되는 것을 막을 수 있습니다 (적어도 Excel에서는 그런 식으로 작동합니다). - 업데이트가 있으면 추가 기능을 교체하고 다시 읽기 전용으로 설정하면됩니다.

www.jkp-ads.com/articles/updateanaddin.asp

+0

고맙습니다 ...하지만 프로그램을 동적으로 유지하고 싶습니다. 코드를 폴더에 덤프하고 내용에 따라 양식이 목록을 표시하고 실행해야합니다. 나는 점심 패드와 추가 기능으로 코드를 포함하기보다는 코드를 호출 할 수 있어야한다. 처리 할 파일은 매우 동적이며 형식이 많이 바뀝니다. 그래서 개념을 원한다. 오류가 있다면 폴더에 n 개의 저장소를 디버깅 할 것이다. 사용자는 양식을 다시로드하면된다. 그것은 어쨌든 가능합니까? –

+0

실제로 모듈을 가져올 수는 있지만 관련된 모든 사용자에 대해 Excel 보안 설정을 변경해야합니다 (VBA 프로젝트에 대한 액세스 허용). – jkpieterse

+0

예, 알아 냈습니다.하지만 여기서는 모듈이나 코드를 추가 기능 내에서 가져 오려고합니다. –

관련 문제