2012-09-26 2 views
0

아주 복잡한 Excel VBA 응용 프로그램 (모듈, 클래스 모듈 및 양식 모듈에 걸쳐 수천 줄의 코드가 분산되어 있음)을 개발합니다. 여러 언어로 번역 할 필요가 있습니다. 즉, 응용 프로그램의 모든 문자열을 (거의) 대체하고 각 언어의 레코드와 함께 일종의 해시 테이블을 사용하는 것입니다.VBA 프로젝트를 국제화하는 가장 좋은 방법

제 질문은 응용 프로그램에 사용 된 모든 문자열을 수집하고 일종의 언어 변수로 대체하는 가장 효율적이고 편리한 방법입니다. 아무도 VBA 프로젝트 환경에서 이러한 유형의 작업에 대한 모범 사례를 추천 할 수 있습니까? 미리 감사드립니다.

+1

이 작업을 수행하는 가장 좋은 방법은 하드 코딩 된 문자열을 리소스 호출로 바꾸어 모든 파일을 수동으로 바꾸는 것입니다. (출처 : 자신의 경험). –

+0

고마워,하지만 너와 동의하지 않을거야, 우웨. 수동 교체는 거의 로봇 작업으로 몇 주일이 걸릴 것입니다 :). 모든 원시 코드를 일반 텍스트로 가져오고 변수에 대해 큰 따옴표 (")로 묶인 모든 텍스트를 쉽게 바꾸는 것이 쉽지만, 나는 이것을 위해"그래버 (grabber) "를 개발했습니다. 문제는 너무 원자 형태로 된 문자열을 얻는 것입니다. 예를 들어 "텍스트의 첫 번째 부분"& 플래그 & "텍스트의 두 번째 부분"은 번역 과정에서 원치 않는 어려운 두 개의 개별 변수를 생성합니다. – bazinac

+1

간단한 'string.Format'을 다음과 같이 작성합니다. VBA는 여러 단편 대신에 자리 표시자를 갖는 하나의 문자열을가집니다. [실제로 저는 12 년 전 VBScript를 위해 이것을했습니다] (http://www.codeproject.com/Articles/250/printf-like-Format-Function-in-VBScript) –

답변

2

하나의 옵션은 source tools addin을 사용하여 모든 코드를 하나의 폴더 아래에있는 소스 파일로 내보내는 것입니다. 아래 예 : Source Files

이제 파일을 수정하기위한 스크립트를 작성할 수 있으며 이제는 소스 제어에 추가 할 수 있습니다. 완료되면 변경 사항을 사용하여 VBA 프로젝트로 다시 가져올 수 있습니다.

관련 문제