VBA中如何根据文本长短设置窗口大小

添加如下控件,如何实现在Label2和Label3中输入字符串,根据输入的最大字符串长度设置Label2、Label3、UserForm1的宽度,根据Label2输入字符串的条数设置三者的高度,Label2和Label3的字符串条数是一样的,一一对应的关系。急求,大神帮忙!

粗调:用鼠标拉列头(如A,B)和行头(如1,2),这个适用已经有内容的表格,调整后可以使行高和列高很好适应现有的内容。

细调:对准列头或行头-右键-选择列宽或行高-直接输入数字即可,这个比较适和还没具体内容的。

自动调整:开始-格式-自动调整行高、列宽,这个办法也只适用有内容的。图解:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-28
第一,label控件在userform1.show后,是不可改动的,故你这个实现不了。需要用textbox控件来实现;
第二,确定宽度你需要先确定字体的大小,然后用lenb(StrConv(textbox1,vbfromUnicode))换算出其字节长度,并找出textbox1宽度与字节长度之间的关系(这个只能试,因为字号大小不同是不一样的),这样用textbox1的宽度就可以确定userform和2、3框的宽度了;
第三,确定高度你需要先将2、3textbox的MultiLine 属性值设为true,可以实现多行(EnterKeyBehavior的属性值设为TRUE可以用回车换行)。再用lineCount属性获得文本框的行数,找到行数与高度的换算关系(也跟字号有关),实现对高度的调整。本回答被提问者采纳