Excel 2002 (XP)/2003 용 VBA로 작성된 구식 응용 프로그램을 유지 관리하고 있으며이를 국제화하려고합니다.VBA에서 사용자 폼의 제목 표시 줄 텍스트를 변경하는 방법?
이렇게하려면 번역 된 문자열을 동적으로 읽고 해당 .Caption 속성을 업데이트하여 내 userform의 다양한 컨트롤을 업데이트하십시오.
양식의 .Caption 속성을 변경하면 제목 표시 줄에 "하드 코드 된"값이 계속 표시되고 대신 새 값이 표시됩니다 그 아래, 폼 자체의 "캔버스"의 맨 위에.
사용자 정의 폼의 제목 표시 줄 텍스트가 표시된 후에이를 변경하거나 제목 표시 줄에 반영되도록하기 전에 양식의 .Caption 속성을 변경해야합니까? 캔버스/클라이언트 영역보다는?
내 코드는 다음과 같이 보입니다 : 내가 말했듯이
' in frmFoo
Private Sub UserForm_Activate()
' ...
TranslateDialog Me, "frmFoo"
' ...
End Sub
' in a VBA module
Sub TranslateDialog(pForm As UserForm, pFormName As String)
Dim new Caption As String
Const notFound As String = "###[email protected]@[email protected]@!!###"
' ...
' GetMessage() returns the translated message for a given key, or the
' default value (second parameter) if no translation is available.
' The translation key for the form caption is the form name itself.
newCaption = GetMessage(pFormName, notFound)
If newCaption <> notFound Then pForm.Caption = newCaption
' ...
End Sub
이 pForm.Caption
에 할당이 영향을 않습니다를 -하지만 그것은 바로 아래에 오히려 창의 제목 표시 줄에 쓸 수 있지만하지 않습니다 . Windows XP SP 3에서 Excel 2003을 실행하고 있습니다.
귀하의 도움에 감사드립니다. 그것은 정말로 효과가있었습니다. –