JSL 스크립트를 사용하여 그래프를 PowerPoint로 내보내기모두 안녕,
여기서 당신의 두뇌를 고르고 이 아이디어에 대한 최선의 길이 무엇인지 알아보십시오.
아이디어는 스크립트에서 모든 그래프/플롯을 가져와서 파워포인트로 푸시할 수 있다는 것입니다. 그래프를 슬라이드로 끌어서 텍스트와 함께 Powerpoint 외부에 배치한 다음 이를 Powerpoint로 푸시할 수 있도록 이를 사용자 정의하고 싶습니다.
나는 현재 첫 번째 부분을 대략적으로 완료했습니다. Application Builder를 사용하여 사용자에게 스크립트를 요청하고, 스크립트를 실행하고, 스크립트에서 열려 있는 모든 창을 가져와, 사용자가 이동할 그래프를 선택할 수 있는 목록에 표시하는 앱을 만들 수 있었습니다. PPT로.
그 다음에는 사용자가 템플릿을 선택하면 호출되는 VBscript가 있습니다. HTML에 저장된 모든 그래프는 해당 그래프의 내용이 포함된 GFX 폴더를 생성하고 VB 스크립트는 해당 GFX 폴더의 내용을 가져와서 파워포인트에 보냅니다.
매우 조잡한 슬라이드당 하나의 그래프로 사용자는 파워포인트 내에서 텍스트를 추가해야 합니다.
내 질문은 당신이 취해야 할 올바른 방향이라고 생각하는지입니다. 어제 JMP의 일부 사람들과 이야기를 나눴는데 그들은 R을 활용하는 것이 또 다른 방법이라고 언급했습니다. 나는 R에 대한 경험이 없지만 그것이 더 나은/더 효율적인 경로라면 고려해 볼 것입니다.
현재 작업을 확장하려면 텍스트와 함께 그래프를 배치할 파워포인트 부분을 사용자가 선택할 수 있는 옵션을 만들 수도 있습니다. 그러나 나는 그것을 VB 스크립트에 전달하는 방법을 확신하지 못합니다.
어떤 도움이나 아이디어라도 미리 감사드립니다. 무엇이든 환영합니다.
-매트
Re: 두뇌를 선택하세요...PowerPoint로 내보낼 스크립트<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />네, 제가 직접 했어요. 여기 있어요
이것들은 단일 모듈입니다. 더 넓은 루프에 넣거나 원하는 대로 사용하세요(제 영어를 용서해주세요...)
*jmp에서 내보내기 - 이미지
평소대로 그래프를 생성하고 이에 대한 참조를 생성합니다(예:
graph_reference = 데이터 테이블 <
그런 다음 평소대로 이미지를 저장하십시오.
graph_reference <<그림 저장("\output\"name_image.png", png);
*jmp에서 내보내기 - 텍스트
테스트를 위해 변수에 무언가를 넣으면 실제 용도는 내보내는 데 필요한 정보를 포함하는 것입니다.
string_changing_title1 = "첫 번째 행";
string_changing_title2 = "\!N두번째 행";
텍스트 파일 저장("titles.txt",string_포함_title1, 모드 ("교체"));
텍스트 파일 저장("titles.txt",string_포함_title2, 모드 ("추가"));
이제 이미지와 텍스트가 있으므로 PowerPoint에서 직접 가져올 수 있습니다(.pptm 형식, 매크로 보안 등에 주의하세요...).
이것은 이미지를 가져와서 배치하는 VBA 코드입니다.
' 정의 변수 슬라이드
oSlide를 슬라이드로 흐리게 표시
희미한 숫자를 정수로
모양으로 희미한 그림
' 정의 변수 이미지
ImgFolder를 문자열로 희미하게 표시: ImgFolder = "C:\Users\john_ronald_reuel\Documents\toy_box\pet01\test_im\"
Dim piazza1 As String
희미한 file1을 문자열로
' 테스트 목적으로 설정된 값, 실제 사용을 위해 cicle을 넣어 정의합니다. 여기서는 슬라이드 02에 5831_pie.jpg를 넣습니다.
file1 = "5831_pie.jpg"
숫자 = 2
' 이미지 파일의 전체 경로 생성
piazza1 = (ImgFolder 및 파일1)
' 슬라이드 02를 활성으로 설정
oSlide = ActiveWindow.Presentation.Slides(숫자)로 설정
' 이미지 배치, 링크 없음, 저장, 왼쪽 상단에서 10,10 좌표에, 크기 조정 없음
oPicture = oSlide.Shapes.AddPicture(piazza1, msoFalse, msoTrue, 10, 10) 설정
' 편집: 자르기 및 기타 기능을 사용하여 자르기, 배치 또는 크기 조정.
ActivePresentation.PageSetup 사용
oPicture.PictureFormat.CropBottom = 30
oPicture.Height = 450
oPicture.Left = 450
끝
이에 대한 참고 사항:
*이 코드와 함께 상대 경로를 사용할 수 있습니다 --> ImgFolder = ActivePresentation.Path & "\output\"
*이미지 편집은 순차적이며 음수를 좋아하지 않습니다. 40을 자르고 10에서 끝나려면 -30에서 시작하여 자르고 중지할 수 없지만 10에서 시작하고 자른 다음 왼쪽(또는 상단)을 사용해야 합니다. )
*piazza와 numero는 코드를 고정 배선하지 않도록 만드는 데 사용되지만 이는 단일 모듈입니다. 이미지 이름과 슬라이드 번호를 저장하려면 cicle과 배열을 사용하는 것이 좋습니다.
그리고 여기 jmp에서 내보낸 정보를 로드하고 배열에 넣는 코드가 있습니다. 각 행은 배열의 요소로 이동합니다.
'cicle에 대한 정의 변수
Dim ilvelli를 정수로 사용
Dim i를 정수로 표시
문자열로 희미한 온도
'텍스트 파일에 대한 정의 변수
Dim 인덱스 폴더를 문자열로
ImgFolder를 문자열로 희미하게 표시
sFileName을 문자열로 희미하게 표시
iFileNum을 정수로 희미하게 표시
'정의 폴더
indexfolder = "C:\Users\john_ronald_reuel\Documents\toy_box\pet01\config\"
'정의 동적 배열은 텍스트 파일의 행을 포함합니다
Dim sparam() 문자열로
'큰 수정
ReDim sparam(75)을 문자열로
'파일 이름 정의
sFileName = indexfolder & "levels_DD.txt"
'파일을 로드
iFileNum = FreeFile()
iFileNum으로 입력을 위해 sFileName 열기
'cicle do EOF: i-eth 라인을 로드하고 이를 temp에 넣은 다음 이를 배열의 i-eth 요소에 할당하고 정수 ilvelli를 업데이트합니다.
나는 = 1
EOF가 아닌 동안 수행(iFileNum)
라인 입력 #iFileNum, temp
sparam(i) = CStr(임시)
일리벨리 = 나
나는 = 나는 + 1
고리
'배열을 삭제하지 않고 올바른 행 수로 크기를 조정합니다.
ReDim Preserve 스팸(ilivelli)
'원본 파일을 닫습니다
iFileNum 닫기
이것은 나에게 효과가 있습니다. 도움이 되기를 바랍니다!
Re: 두뇌를 선택하세요...PowerPoint로 내보낼 스크립트읽는 사람을 위한 정보입니다. 예측 추가 기능은 파일을 생성하지만 PowerPoint 2007과 충돌합니다.
또한 jsl 스크립트는 암호화되어 파워포인트를 생성하기 위해 별도의 exe를 호출하는 것 같습니다.
즉, 이 도로는 (적어도 나에게는) 폐쇄되었습니다. VBA 스크립트 방식으로 가겠습니다.
모두에게 감사합니다
Re: 두뇌를 선택하세요...PowerPoint로 내보낼 스크립트확실히 그렇게 할 수 있는 방법이 있으며 텍스트 파일에 쓰는 것보다 쉬울 것입니다. VBA는 JMP와 많은 연관이 있습니다. 컴퓨터에 JMP가 설치되어 있는 경우 VBA 편집기>도구>참조...로 이동하면 참조로 사용할 수 있는 선택 가능한 응용 프로그램의 긴 목록이 표시됩니다. "JMP"를 찾아 상자를 클릭하면 이제 JMP에 실행할 수 있는 명령 라이브러리가 내장됩니다. 기본적으로 이 방법으로 VBA에서 JMP를 스크립트할 수 있습니다.
Re: 두뇌를 선택하세요...PowerPoint로 내보낼 스크립트모든 정보 m477에 감사드립니다. 저는 이 자체 기능을 JMP에 포함하고 싶었습니다. JMP가 있는 모든 컴퓨터에 설치하고 실행할 수 있는 추가 기능을 만들기만 하면 됩니다. 완전히 확정된 것은 아니므로 이 옵션이 완전히 기본에서 벗어난 경우 VBA로 작업할 수 있습니다.
JMP에 내장된 현재 추가 기능은 열려 있는 모든 플롯을 가져와 선택한 플롯을 폴더에 추가합니다. 그래서 저는 PPT에 넣고 싶은 모든 플롯이 담긴 폴더를 가지고 있습니다. 제가 찾고 있는 다음 단계는 맞춤화 형태입니다. jmp 추가 기능 내에서 슬라이드당 그래프 수, 슬라이드 제목, 추가 텍스트 및 슬라이드/텍스트 위치를 포함한 슬라이드 속성에 대한 메시지를 사용자에게 표시하고 싶습니다.
현재 내 아이디어는 JMP에서 이 모든 것을 요청하고 모든 슬라이드 속성을 가져온 다음 특정 슬라이드 속성을 실행할 수 있도록 VBA 매크로에 전달하는 것입니다.
JMP에서 매크로로 매개변수를 전달할 수 있나요? 슬라이드 매개변수를 일종의 텍스트 파일로 저장할 수도 있습니다.
Re: 두뇌를 선택하세요...PowerPoint로 내보낼 스크립트편집: AddSlides 서브루틴도 작성해야 합니다.
Re: 두뇌를 선택하세요...PowerPoint로 내보낼 스크립트PowerPoint에서 실행하고 싶지 않은 정말 타당한 이유가 있습니까?
제가 제안하는 것은 JMP 응용 프로그램을 작성하여 분석을 수행하고 원하는 그래프를 생성한 다음 생성하려는 프레젠테이션과 완전히 독립적으로 이미지로 저장하는 것입니다. 그런 다음 먼저 JMP 스크립트를 호출하여 실행하는 매크로를 PowerPoint에 작성한 다음 지정된 폴더에서 생성된 이미지를 가져옵니다.
제가 이렇게 말하는 이유는 PowerPoint의 서식 지정이 VBA에서 매우 쉽고(VBA에서 가장 쉬운 유일한 방법임) 내장된 메서드가 많고 이를 사용하는 방법에 대한 온라인 예제가 많기 때문입니다.
Powerpoint에서 JMP를 호출하는 서브루틴은 다음과 같습니다.
공개 하위 RunJSL()
MyJMP = CreateObject("JMP.Application") 설정
MyJMP.Visible = 참
MyJMP.RunJSLFile("C:\
서브 끝
그런 다음 RunJSL을 호출하는 또 다른 VBA 서브루틴을 작성한 다음 지정된 폴더를 살펴보고 해당 폴더의 모든 이미지에 대한 슬라이드를 추가합니다. 이를 통해 원하는 것은 무엇이든 할 수 있습니다. 예:
공개 하위 MakePics()
oSlide를 슬라이드로 흐리게 표시
모양으로 희미한 그림
희미한 o제목을 모양으로
ImgFldr을 문자열로 희미하게 표시: ImgFldr = "$Documents\Plot Images"
현재 파일을 문자열로 희미하게 표시
나는 = 1
RunJSL에 전화하세요.
현재파일 = Dir(ImgFldr & "\")
CurrentFile <> "" 동안 수행
AddSlides(현재 파일) 호출
//새 그림이 있는 새 슬라이드의 서식을 지정하고, 중앙에 배치하고, 크기를 조정하고, 제목을 추가하는 등의 작업을 수행합니다.
ActiveWindow.View.GotoSlide i
현재파일 = Dir()
나는 = 나는 + 1
고리
서브 끝
편집: AddSlides 서브루틴도 작성해야 합니다.
Re: 두뇌를 선택하세요...PowerPoint로 내보낼 스크립트VB 스크립트를 사용하는 경우 JMP 내에서 OLE 자동화 지원을 이미 살펴봤다고 가정합니다.나는 이것을 시도하지 않았지만 XML을 인터페이스 메커니즘으로 사용하는 것을 고려해 볼 수도 있습니다. XML SDK를 엽니다.
데이브
Re: 두뇌를 선택하세요...PowerPoint로 내보낼 스크립트예, 저는 그들의 솔루션을 조사했지만 기본적으로 그들이 한 일을 이미 수행했습니다. 이제 파워포인트를 열지 않고도 슬라이드에 그래프/텍스트를 배치할 수 있는 곳으로 확장하려고 합니다.
나는 또한 다른 사람들이 생각할 수 있는 가능한 다른 경로나 솔루션을 찾고 있었습니다.
Re: 두뇌를 선택하세요...PowerPoint로 내보낼 스크립트Predictum에는 JMP 출력을 Powerpoint로 내보내는 무료 패키지가 있습니다.http://predictum.com/