用Office VBA實現多控制項一次性組合

2021-09-05 03:03:31 字數 2240 閱讀 2569

最近要做個專案,通過

office vba

來自動生成一系列的控制項(包括文字框、直線等),並將這些控制項組合在一起(這在

office

裡很好實現,只要選中這些控制項,使用上下文選單裡的組合選單項即可)。最開始的**如下:

dimelement1, element2

dimi 

asinteger

setelement1 

=nothing

setelement2 

=nothing

fori =0

to7setelement1 =*

30, 

30, 

25, 25)

ifnot

(element2 

isnothing

) then

activedocument.shapes.range(array(element1.name, element2.name)).select

selection.shaperange.group.select

setelement2 

=selection.shaperange

else

setelement2 

=element1

endif

nexti

上面的**生成了8個

textbox

,將其兩個為一組進行組合。這樣做雖然從技術上沒問題。但是如果生成的

textbox

很多的話,如

1000

個,就會很慢。主要把時間消耗在了是用

vba進行組合操作上。因此,只要將組合的方式改為將所有控制項都選中,然後組合一次就可以解決這個問題。在上面的**中,使用了

array

函式生成了

variant

型別的陣列。而使用

array

函式是無法根據實際需要生成實際大小的陣列的。因此,需要使用

dim來定義這個陣列,**如下:

dimelements(0to

7) asvariant

dimi 

asinteger

fori =0

to7elements(i) =*

30, 

30, 

25, 

25).name

next

i     

activedocument.shapes.range(elements).select           

selection.shaperange.group.select

應使用dim elements(

陣列上標 to

陣列下標)

的形式,不能使用dim elements(

陣列下標)

的形式。如上面的陣列定義**不能寫成dim elements(7) as variant

。 如果在程式執行時改變陣列的大小,可以使用如下的**:

dimelements(0to

7) asvariant

dimnewelements 

asvariant

dimi 

asinteger

fori =0

to7elements(i) =*

30, 

30, 

25, 

25).name

next

i     

newelements 

=elements

redim

preserve

newelements(0to

10) 

asvariant

fori =8

to10

newelements(i) =*

30, 

200, 

25, 

25).name

next

iactivedocument.shapes.range(newelements).select           

selection.shaperange.group.select

要注意的是,在使用

redim

時,不能使用已經指定型別的陣列,而需要將這個陣列放到

variant

變數中。如不能使用如下的**來增加陣列長度:

redim

preserve

elements(0to

10) 

asvariant

用Office VBA實現多控制項一次性組合

最近要做個專案,通過 office vba 來自動生成一系列的控制項 包括文字框 直線等 並將這些控制項組合在一起 這在 office 裡很好實現,只要選中這些控制項,使用上下文選單裡的組合選單項即可 最開始的 如下 dim element1,element2 dim i asinteger set...

用c 實現的語法高亮控制項

用c 實現了乙個能夠對vbscript,c j sql顯示語法高亮的文字編輯控制項。這裡詳細介紹一下它的原理。如果需要解析其他語言,請新增相應的xml檔案,並修改列舉型別languages以及parser類的建構函式中的相應 已知bug 當兩個詞是由括號分割的時候,程式無法識別。比如function...

iOS UIProgressView控制項用法

ios中進度條控制項的用法總結。進度條控制項是ios開發中乙個簡單的系統控制項,使用總結如下 初始化乙個進度條 instancetype initwithprogressviewstyle uiprogressviewstyle style 注意 1.用這個方式初始化的進度條系統會預設給乙個長度。2...