pdf에서 동시에 다수 디자인에 수출하는 Macro VB

alxG88

Guest
안녕하세요.

내 작업에서 나를 용이하게하기 위해 나는 작업이 가장 자주 작동하는 고체 가장자리에 대한 일련의 매크로를 작성하고 있습니다.
제출하려는 문제는 다음과 같습니다. 나는 개인이 dfts를 열고, 그들 각각에 대한 매크로를 작성하려고, 특정 디렉토리 내에서 dxf 형식으로 pdf 형식과 dxf 형식으로 사본을 저장.
나는 이전 시간에 dft와 동일한 작업을 실행 매크로를 작성했지만 지금은이 개념을 모든 오픈 dfts로 확장 할 수 없습니다.
나는 내가 쓴 코드를 넣어:
Code:
모듈 모듈

dim objapp 으로 solidedgeframework. 제품정보
hardedgedraft.draftdocument로 디엠 objdft
dim 파일명 문자열
dim pathname_1 로 문자열
dim pathname_2 로 문자열

하위 메인()
오류는 다음을 다시 시작합니다.

objapp = getobject(, "solidedge.application") '은 특정 특성을 가진 응용 프로그램을 만듭니다.

if objapp 이다 아무것도 그때
msgbox("solid edge는 열리지 않습니다! 열린 단단한 가장자리.", vbcritical, "attention")
출구 sub
끝 면

objapp.activedocumenttype < solidedgeframework.documenttypeconstants.igdraftdocument 다음 것
msgbox("n 초안 문서가 열립니다! 초안을 엽니다.", vbinformation, "attention")
출구 sub
끝 면

objdft = objapp.activedocument
objdft가 아무것도 없다면
msgbox("open document!", vbinformation, "attention")
출구 sub
끝 면

'가열한 초안으로 주기를 따르십시오.
call objdft.save() '라는 이름으로 넣어, 새 파일에 대해 제대로 이름을 줄 것을 요청

filename = left(objdft.name, len(objdft.name) - 4)' derives 파일명
pathname_1 = "s:\ug\dxf" 경로 파일 dxf
pathname_2 = "s:\ug\dati" 파일 경로 pdf

objapp.displayalerts = false '파일을 호출하지 않고 같은 이름으로 자동으로 삭제

call objdft.saveas(pathname_1 + filename + "." + "dxf") 이름에 의해 저장
call objdft.saveas(pathname_2 + filename + "." + "pdf") 이름에 의해 저장

objapp.displayalerts = true 'reactive windows alert 메시지

call objdft.close() '파일을 닫으면 pdf 및 dxf를 생성했습니다.

objdft = 아무것도
objapp = 아무것도
objapp.activedocumenttype <> 단단한edgeframework.documenttypeconstants까지 반복. igdraft 문서
이름 *
끝 단위
당신이 볼 수 있듯이 나는 주기까지 do...loop를 만들기 위해 노력할 수 있습니다 그래서 그는 시간에서 시간까지 열린 dfts를 찾고, 그러나 그것은 작동하지 않습니다: 결과는 단지 저에게 첫번째 활동적인 dft를 저장하고 그 후에, 각 파일을 위한 매크로를 다시 시작시키기 위하여 나를 강제합니다.

나를 도울 수 있습니까? 어디 잘못?

감사합니다.

뚱 베어
 
루프 사이클 안에 "objapp = nothing"을 넣기 때문에 작동하지 않습니다.
결과적으로, 더 이상 계속하려면 유효한 objapp가 없습니다.
또한 루프 내부 objdft를 설치해야합니다. 그렇지 않으면이 오류를 줄 것입니다.

만약 당신이 당신의 열린 문서 중 하나 3d 모델 당신의 루프가 조기에 종료 될 것입니다.

안녕하세요.
 
답변 주셔서 감사합니다.
나는 당신의 방향을 따라 코드를 변경하려고 : 그것은 더 나은 작동하지만 때때로 그것은 모든 dfts에서 작동을 수행하지 않습니다, 그러나 그것은 나를 공개 한. 무엇을 할 수 있습니까?

즉, 나는 당신을 물었다 : 당신이 고체 가장자리의 빠른 메뉴에 매크로를 추가하려는 경우, 어떤 환경에서 그것을 삽입해야합니까? 나는 초안 환경에서 그것을 넣어 시도하지만 작동하지 않습니다, 그것은 단지 시작 된 dft에서 작동을 수행.
Code:
모듈 모듈

dim objapp 으로 solidedgeframework. 제품정보
hardedgedraft.draftdocument로 디엠 objdft
dim 파일명 문자열
dim pathname_1 로 문자열
dim pathname_2 로 문자열

하위 메인()
오류는 다음을 다시 시작합니다.

objapp = getobject(, "solidedge.application") '은 특정 특성을 가진 응용 프로그램을 만듭니다.

if objapp 이다 아무것도 그때
msgbox("solid edge는 열리지 않습니다! 열린 단단한 가장자리.", vbcritical, "attention")
출구 sub
끝 면

objapp.activedocumenttype < solidedgeframework.documenttypeconstants.igdraftdocument 다음 것
msgbox("n 초안 문서가 열립니다! 초안을 엽니다.", vbinformation, "attention")
출구 sub
끝 면

'가열한 초안으로 주기를 따르십시오.
objdft = objapp.activedocument
call objdft.save() '라는 이름으로 넣어, 새 파일에 대해 제대로 이름을 줄 것을 요청

filename = left(objdft.name, len(objdft.name) - 4)' derives 파일명
pathname_1 = "s:\ug\dxf" 경로 파일 dxf
pathname_2 = "s:\ug\dati" 파일 경로 pdf

objapp.displayalerts = false '파일을 호출하지 않고 같은 이름으로 자동으로 삭제

call objdft.saveas(pathname_1 + filename + "." + "dxf") 이름에 의해 저장
call objdft.saveas(pathname_2 + filename + "." + "pdf") 이름에 의해 저장

objapp.displayalerts = true 'reactive windows alert 메시지

call objdft.close() '파일을 닫으면 pdf 및 dxf를 생성했습니다.
objapp.activedocumenttype <> 단단한edgeframework.documenttypeconstants까지 반복. igdraft 문서

objdft가 아무것도 없다면
msgbox("open document!", vbinformation, "attention")
출구 sub
끝 면

objdft = 아무것도
objapp = 아무것도
이름 *
끝 단위
감사합니다.

뚱 베어
 
코드를 구조화하는 방법에서 당신의 루프는 첫 번째 비에서 끝납니다. Draft 문서가 발생합니다.
이 문서를 닫는 것은 활성 이유가되기 전에 종료 할 수있는 다음 하나에 대한 제어가 없습니다.

나는 대신 "도 - 루프"는 objapp.documents에 "각"주기를 만들 것입니다

안녕하세요.
 
그래서이 같은 한 가지 :
Code:
objdft = objapp. 문서
objapp에서 각 objdft를 위해. 회사연혁
· ...
· ...
이름 *
이런 식으로, 그러나, 나는 모든 문서를 가로지르지 않고. 따라서 무시하는 명령을 제공해야합니다 (또는 닫기) 모든 비 dft 파일과 dfts의 치료.
당신은 의미?

감사합니다.

뚱 베어
 
Code:
objapp의 각 문서. 회사연혁

문서의 경우.

objdft = 문서 설정
· ...

끝 면

다음 문서
 
감사합니다.
이제 프로그램이 작동하고 다음과 같이 작성되었습니다 :
Code:
모듈 모듈

dim objapp 으로 solidedgeframework. 제품정보
hardedgedraft.draftdocument로 디엠 objdft
dim 파일명 문자열
dim pathname_1 로 문자열
dim pathname_2 로 문자열

하위 메인()
오류는 다음을 다시 시작합니다.

objapp = getobject(, "solidedge.application") '은 특정 특성을 가진 응용 프로그램을 만듭니다.

if objapp 이다 아무것도 그때
msgbox("solid edge는 열리지 않습니다! 열린 단단한 가장자리.", vbcritical, "attention")
출구 sub

otherif objapp.activedocument 이다 아무것도 그때
msgbox("open document!", vbinformation, "attention")
출구 sub

otherif objapp.document.type <> 고체 프레임 워크.documenttypeconstants.igdraftdocument 다음 것
msgbox("n 초안 문서가 열립니다! 초안을 엽니다.", vbinformation, "attention")
출구 sub
끝 면

objapp의 각 문서. 문서는 오픈 초안이 있기 때문에 주기를 실행

document.type = hardedgeframework.typedocumentconstants.igdraftdocument의 경우 다음 것
objdft = 문서
call objdft.save() '라는 이름으로 넣어, 새 파일에 대해 제대로 이름을 줄 것을 요청

filename = left(objdft.name, len(objdft.name) - 4)' derives 파일명
pathname_1 = "s:\ug\dxf" 경로 파일 dxf
pathname_2 = "s:\ug\dati" 파일 경로 pdf

objapp.displayalerts = false '파일을 호출하지 않고 같은 이름으로 자동으로 삭제

call objdft.saveas(pathname_1 + filename + "." + "dxf") 이름에 의해 저장
call objdft.saveas(pathname_2 + filename + "." + "pdf") 이름에 의해 저장

objapp.displayalerts = true 'reactive windows alert 메시지
call objdft.close() '파일을 닫으면 pdf 및 dxf를 생성했습니다.
끝 면

다음 문서

objdft = 아무것도
objapp = 아무것도
이름 *
끝 단위
프로그램을 더 정확하거나 잘 느낄 수 있도록 다른 조언이 있습니까? 나는 여전히 시각적 기본 emi에서 프로그래밍과 경험이 많지 않습니다. 저보다 더 많은 경험을 가지고있는 것은 프로그램의 좋은 초안을위한 저에게 조언을 줄 것입니다.

다시

뚱 베어
 
감사합니다.
이제 프로그램이 작동하고 다음과 같이 작성되었습니다 :
Code:
모듈 모듈

dim objapp 으로 solidedgeframework. 제품정보
hardedgedraft.draftdocument로 디엠 objdft
dim 파일명 문자열
dim pathname_1 로 문자열
dim pathname_2 로 문자열

하위 메인()
오류는 다음을 다시 시작합니다.

objapp = getobject(, "solidedge.application") '은 특정 특성을 가진 응용 프로그램을 만듭니다.

if objapp 이다 아무것도 그때
msgbox("solid edge는 열리지 않습니다! 열린 단단한 가장자리.", vbcritical, "attention")
출구 sub

otherif objapp.activedocument 이다 아무것도 그때
msgbox("open document!", vbinformation, "attention")
출구 sub

otherif objapp.document.type <> 고체 프레임 워크.documenttypeconstants.igdraftdocument 다음 것
msgbox("n 초안 문서가 열립니다! 초안을 엽니다.", vbinformation, "attention")
출구 sub
끝 면

objapp의 각 문서. 문서는 오픈 초안이 있기 때문에 주기를 실행

document.type = hardedgeframework.typedocumentconstants.igdraftdocument의 경우 다음 것
objdft = 문서
call objdft.save() '라는 이름으로 넣어, 새 파일에 대해 제대로 이름을 줄 것을 요청

filename = left(objdft.name, len(objdft.name) - 4)' derives 파일명
pathname_1 = "s:\ug\dxf" 경로 파일 dxf
pathname_2 = "s:\ug\dati" 파일 경로 pdf

objapp.displayalerts = false '파일을 호출하지 않고 같은 이름으로 자동으로 삭제

call objdft.saveas(pathname_1 + filename + "." + "dxf") 이름에 의해 저장
call objdft.saveas(pathname_2 + filename + "." + "pdf") 이름에 의해 저장

objapp.displayalerts = true 'reactive windows alert 메시지
call objdft.close() '파일을 닫으면 pdf 및 dxf를 생성했습니다.
끝 면

다음 문서

objdft = 아무것도
objapp = 아무것도
이름 *
끝 단위
프로그램을 더 정확하거나 잘 느낄 수 있도록 다른 조언이 있습니까? 나는 여전히 시각적 기본 emi에서 프로그래밍과 경험이 많지 않습니다. 저보다 더 많은 경험을 가지고있는 것은 프로그램의 좋은 초안을위한 저에게 조언을 줄 것입니다.

다시

뚱 베어
그것은 당신이 할 수있는 단단한 가장자리와 초안 문서의 존재를 확인하기 위해 모든 초기 부분을 초안하는 매크로입니다.
또한 "오류 후 다시 다음"을 사용하여 방지하고 다양한 종류의 오류를 관리해야합니다.

저장되면 다양한 초안을 닫고 있지만 작업 흐름의 일부입니다.

안녕하세요.
 

Forum statistics

Threads
58,191
Messages
495,938
Members
103,104
Latest member
FabioFrontini

Members online

No members online now.

Back
Top