2016-06-09 77 views
0

我想修改一個excel插件,它從工作表的每個單元格獲取數據,並將其放入可更容易讀取和修改信息的文本框中。如何使文本框控件在VBA中可調整大小

由於某些單元格包含大量文本(並且文本框默認只有足夠大的一行),因此我試圖使文本框可調,以便用戶能夠查看所有文本細胞。

下面的鏈接是一個圖片,讓你確切地知道我的意思是:

http://www.jibberjobber.com/blog/wp-content/chrome_resize_text_boxes.png

請理解我不想形式簡單地放大到一個特定的大小,因爲這是容易完成,但我寧願讓用戶選擇最適合文本,大小和字體的大小。

非常感謝您的回答!

+0

如果不固定文本框的邊緣並調整放置框的*表格的大小,那麼您不能擁有該功能.VBA控件不是Web UI控件。 –

+0

表單可調整大小。你的意思是我只能通過調整整個表單的大小來調整文本框的大小? –

+1

是的。就我所知,無論如何都是通過用戶拖放操作實現的。你可以在某個地方有一個+/-按鈕來以編程方式增加/減少文本框的高度,但這很快就會不可避免地變成佈局噩夢IMO。 –

回答

1

不同的方法。運行時更改文本框設置。在這種情況下

Private Sub TextBox2_Enter() 
    showTextbox2Text 
End Sub 

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) 
    returnOriginalTextbox2Text 
End Sub 

Sub showTextbox2Text() 
    TextBox3.Visible = False 
    TextBox2.MultiLine = True 
    TextBox2.Height = 75 'make some calculation to adapt to your with and text in textbox 
End Sub 

Sub returnOriginalTextbox2Text() 
    TextBox3.Visible = Visible 'original setting 
    TextBox2.MultiLine = False 'original setting 
    TextBox2.Height = 25 'original setting 
End Sub 

之前進入TextBox2中 Before enter TextBox2

進入TextBox2中後...在出口將恢復到原來的 Enter TextBox2

0

您希望用戶更好地查看和編輯信息? 你可以製作一個訣竅......這是打開一個新的表格,現在在原始文本框中的信息在一個更大的文本框中。這種形式可以是通用的,可以在所有文本框中使用,並可以通過按鈕調用。

OriginalForm EditForm

+0

有趣的想法。但是,我怎樣才能使該文本框適合我正在使用的文本? –

0

以下的的問題,即:

... I寧願讓用戶選擇最適合的文字,量尺寸的大小和字體

你可以把下面的代碼在用戶窗體代碼窗格:

Option Explicit 

Private mouseLeft As Single, mouseTop As Single 

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) '<~~ change "TextBox1" to whatever the actual name of your textbox 
    If Button = 1 Then 
     mouseLeft = X 
     mouseTop = Y 
    End If 
End Sub 

Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) '<~~ change "TextBox1" to whatever the actual name of your textbox 
    If Button = 1 Then 
     With Me.TextBox1 '<~~ change "TextBox1" to whatever the actual name of your textbox 
      .Width = .Width + X - mouseLeft 
      .Height = .Height + Y - mouseTop 
     End With 
     mouseLeft = X 
     mouseTop = Y 
    End If 
End Sub 

和用戶可以將文本框邊框拖動到所需的大小