docx에는 저장되어 있지 않으며 단지 경로 만 저장되어 있습니다. 따라서 문서를 전달하면 거의 항상 링크가 끊어집니다. VSTO는 XSD를 리소스로 응용 프로그램에 포함시킴으로써이를 해결할 수 있습니다.
그러나 VBA의 경우 더 까다 롭습니다. 각 사용자의 컴퓨터에 의존 할 수있는 경로가 있어야하며 XSD를 배포해야합니다. 한 가지 방법은 Document_Open
(또는 단지 AutoOpen
) 이벤트를 동기화하여 사용자가 문서를 열 때 (경고 : 매크로 보안이 주변에서 처리되어야 함) 하드 코딩 된 XSD를 "쓰기"만하면됩니다. 당신이 유물 뒤에 떠나지 않을 것 같은, 그런 다음 사용자의 컴퓨터에서 해당 XSD를 삭제할 수 있도록
Dim objSchema As XMLNamespace
Set objSchema = Application.XMLNamespaces.Add("c:\something\mynewlycreated.xsd")
objSchema.AttachToDocument ActiveDocument
: 코드 뒤에 다음의 문자열은 파일에 기록하고 다음과 같은 루틴이 파일을 첨부 Document_Close
또는 AutoClose
입니다.
아래 질문에 대한 답변이 있습니까? –
아닙니다. 내가 알고 싶은 것은 스키마에 대한이 정보가 어디에 저장되어 있는지 (예 : 어딘가 설정 파일이나 레지스트리 또는 무한한 설정 파일에 저장되어있는 경우) 위치를 찾은 후 편집 할 수있는 양식에있는 경우입니다. –
은 지금까지 이것을 보지 못했습니다 (주석에 누군가를 플래그로 표시하여 알림을받을 수 있도록 "@"및 사용자 이름 (예 : @ Otaku)). 나는 당신의 필요성을 여기서 이해하지 못한다고 생각합니다. 아래에서 설명했듯이 스키마 경로는 docx와 응용 프로그램과 함께 저장됩니다. 그것은 다른 곳에 저장되지 않습니다. 따라서 경로를 변경하려면 응용 프로그램에서 경로를 변경하십시오. 예를 들어 아래의 코드를 기반으로'Debug.Print objSchema.Location'는 경로를 보여 주며 위치도 설정할 수 있습니다. 그러나 다른 컴퓨터를 사용하고 있다면 먼저 스키마를 첨부해야합니다. –