2012-07-06 12 views
0

배경 : SaveAs 대화 상자의 기본 파일 이름으로 TextBox의 특정 입력 된 텍스트를 사용하고 싶습니다. 내 문서에 다음 VBA 스크립트를 구현 한VBA 매크로를 사용하지만 Word 템플릿의 WordBox에서 TextBox의 값 가져 오기

, 나는 그것을 실행

Sub FileSaveAs() 

'for testing 
Dim fileName As String 
fileName = Me.tb_myTextBox.Value & "_MyFileNameToSave" 
MsgBox fileName 

'use specific file name in save dialog 
With Dialogs(wdDialogFileSaveAs) 
    .Name = fileName 
    .Show 
End With 

End Sub 

그것은 잘 작동 워드 2010 템플릿 .dotm. .dotm을 저장하고 닫은 다음 Windows 탐색기에서 다시 열었습니다 ("최종 사용자"라는 의미). 그러나이 경우 템플릿 문서를 "최종 사용자"로 여는 것을 의미하므로 (템플릿을 덮어 쓰지 않고 새 문서를 저장할 수 있도록) 입력 한 경우에도 TextBox의 내용/값이 비어 있습니다. 그것으로 무언가.

그럼 어떻게 문서 모드에서 템플릿의 데이터를 읽을 수 있습니까?

+0

텍스트 상자는 어디에 있습니까? –

+0

정확한 단계를 공유하기 위해 질문을 편집해야합니다. 제대로 작동하지 않습니다. 또한 코드가 불완전하고 도움을 제공하는 사람은 공란을 채워야하므로 혼동을 야기 할 수 있습니다. – JohnZaj

+0

좋아요, 새로운 설명 시도 ... 두 가지 경우가 있습니다 : - (1) 템플릿을 편집하고 저장하면 다시 .dotm이됩니다. 이 경우 모든 스크립트가 제대로 작동합니다. - (2) 템플릿을 "최종 사용자"(템플릿 작성자가 아닌)로 엽니 다. 사용자가 저장 버튼을 클릭하면 문서는 .doc이 아닌 .doc로 저장됩니다. 이 경우 스크립트가 작동하지 않습니다! btw : 코드가 불완전합니다. ?? * 혼란스러운 * – Chris

답변

1

템플릿의 "문서 모드"에서 TextBox의 데이터를 어떻게 읽을 수 있습니까?

무슨 뜻인지 확실치 않습니다. 이것은 나를 위해 작동 :

Private Sub btn_OK_Click() 
    Dim fileName As String 
    fileName = tb_myTextBox.Value & "_MyFileNameToSave" 
    With Dialogs(wdDialogFileSaveAs) 
     .name = fileName 
     .Show 
    End With 
End Sub 

이 양식을 호출하는 서브를 만들 :

Sub FileSaveAs() 
    UserForm1.Show 
End Sub 

이 모든 템플릿/.dotm에 저장됩니다

양식을 만듭니다.

이제 템플릿에서 문서를 만듭니다 (템플릿을 두 번 클릭하여 문서를 시작하십시오). Alt + F8을 클릭하고 템플릿에서 매크로를 실행합니다 (드롭 다운 메뉴에서 템플릿을 선택해야 할 수도 있음). 결과 : 양식이 나옵니다. 문서 이름을 입력하고 확인을 누르면 Word Save As 대화 상자에 문서에 지정한 이름이 나타납니다.

+0

답장을 보내 주셔서 감사합니다! 저장 버튼이 더 이상 필요하지 않습니다. "FileSaveAs()"하위 함수는 사용자가 Save (As) 버튼/메뉴 항목을 클릭 한 후 자동으로 호출됩니다. – Chris

+0

그래서 FileSaveAs는 사용자가 파일 | 다른 이름으로 저장? 문제를 이해할 수 없어 다시 작성해야합니다. – JohnZaj

+0

아니요, 내 Sub는 사용자가 파일 | 다른 이름으로 저장). 그래서 함수 호출이 잘 작동합니다! 그러나 TextField는 문서에 있고 사용자 형식이 아닙니다. 또한 질문에 내 의견을보십시오. 그것은 매우 이상합니다. 왜 모든 경우가 case 1에서 작동하지만 case 2에서는 작동하지 않습니다 : - / – Chris