2017-04-11 15 views
0

일부 텍스트 (페이지보다 작음)에서 관련 정보를 필터링하는 매크로를 만들려고합니다. 이 정보는 MS-Word 템플릿을 작성하는 데 사용됩니다.VBA에서 입력으로 여러 줄의 텍스트 선택을 할 수있는 '입력 상자'를 만들 수 있습니까?

선택한 텍스트를 .txt 파일로 열었습니다. 그러나 &을 복사하여 입력 상자의 일부 양식에 붙여 넣을 수 있다면 워크 플로가 향상 될 것이라고 생각합니다.

Dim text As String 
text = InputBox("Enter selected text here:") 

이 문자열 (텍스트의 한 줄을) 받아들이는 그러나 단지 :

나는 다음과 같은 노력했다.

첫 번째가에서 InputBox과 같은 사용자 정의 폼을 만들 : 리치 홀튼은 지적

감사합니다, Donfernanado

+1

우리를 만들어야합니다. 어 형태. –

답변

0

, 당신은 원하는 기능을 지원하는 당신의 자신의에서 InputBox를 만들 수 있습니다. 내 이름은 CustomInputBox입니다.

TextBox의 MultiLine 속성을 True로 설정하십시오.

예 :

MessageBox Example

는 다음과 같은 몇 가지 매개 변수를 사용하여에서 InputBox를 표시하는 버튼과 기능에 대한 몇 가지 논리를 추가 프롬프트 및 제목 :

Option Explicit 

Private inputValue As String 
Private Cancel As Boolean 

Private Sub btnCancel_Click() 
    Cancel = True 
    Me.Hide 
End Sub 

Private Sub btnOK_Click() 
    If Me.txtInput.Value <> "" Then 
     inputValue = Me.txtInput.Value 
    End If 
    Me.Hide 
End Sub 

'This is the Function you are going to use to open your InputBox 
Public Function Display(Prompt As String, Optional Title As String = "", Optional Default As String = "") As String 
Cancel = False 

Me.lblPrompt.Caption = Prompt 

If Title <> "" Then 
    Me.Caption = Title 
Else 
    Me.Caption = "Microsoft Excel" 
End If 

If Default <> "" Then 
    Me.txtInput.Value = Default 
Else 
    Me.txtInput.Value = "" 
End If 

Me.txtInput.SetFocus 
Me.Show vbModal 

If Not Cancel Then 
    Display = inputValue 
Else 
    Display = "" 
End If 
End Function 

지금 당신은 할 수 있습니다 다음과 같이 InputBox를 사용하십시오.

Dim text As String 
text = CustomInputBox.Display("Enter selected text here:")