VBA常用代碼解析_第1頁
VBA常用代碼解析_第2頁
VBA常用代碼解析_第3頁
VBA常用代碼解析_第4頁
VBA常用代碼解析_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、055 在工作表中添加藝術(shù)字在工作表中插入藝術(shù)字,可 以使用 AddTextEffect 方法,如下面的代碼所示。 Sub TextEffect() DimmyShape As Shape On ErrorResume Next Sheet1.Shapes(myShape).Delete SetmyShape = Sheet1.Shapes.AddTextEffect _ (PresetTextEffect:=msoTextEffect15 ,_ Text:= 我愛 Excel Home, FontName:=宋體,FontSize:=36 , _ FontBold:=msoFalse, Fo

2、ntItalic:=msoFalse , _ Left:=100 , Top:=100) WithmyShape .Name = myShapeWith .Fill .Solid .ForeColor.SchemeColor = 55 .Transparency = 0 End With With .Line .Weight = 1.5 .DashStyle = msoLineSolid .Style = msoLineSingle .Transparency = 0 .ForeColor.SchemeColor = 12 .BackColor.RGB = RGB(255 , 255, 255

3、) End With EndWith SetmyShape = Nothing End Sub 代碼解析:TextEffect過程在工作表中插入藝術(shù)字并設置其格 式。第 3、 4 行代碼刪除工作表中可能存在的藝術(shù)字,以免 重復添加。第 5 行到第 9 行代碼使用 AddTextEffect 方法在工 作表中插入藝術(shù)字, AddTextEffect 方法創(chuàng)建藝術(shù)字對象。返 回一個Shape對象,該對象代表新建的藝術(shù)字對象,語法如 下: expression.AddTextEffect(PresetTextEffect , Text,F(xiàn)ontName, FontSize, FontBold , F

4、ontltalic , Left, Top)參數(shù) expression是必需的,返回一個 Shapes對象。參數(shù) PresetTextEffect 是必需的,藝術(shù)字預置文本效果,可為 MsoPresetTextEffect 常量之一,等同于在工作表中插入藝術(shù) 字時的樣式選項卡。 參數(shù) Text 是必需的, 藝術(shù)字對象中的文 字。參數(shù) FontName 是必需的,藝術(shù)字對象中所用的字體名 稱。參數(shù) FontSize 是必需的,以磅為單位給出藝術(shù)字對象中 所用的字體大小。 參數(shù) FontBold 是必需的, 在藝術(shù)字中要加 粗的字體。 參數(shù) Fontltalic 是必需的, 在藝術(shù)字中要傾斜的字

5、體。參數(shù) Left 和參數(shù) Top 是必需的,相對于文檔的左上角、 頂部, 以磅為單位給出藝術(shù)字對象邊框左上角的位置。 第 11 行代碼將藝術(shù)字對象重命名為“myShape”第12行到第16行代碼設置藝術(shù)字對象的填充格式。其中第 13 行代碼將填 充格式設置為均一的顏色,應用于 FillFormat 對象的 Solid 方法將指定的填充格式設置為均一的顏色,可用本方法將帶 有漸進色、紋理、圖案或背景的填充格式轉(zhuǎn)換為單色的填充 格式。第 14 行代碼設置填充的顏色。第 15 行代碼設置填充 的透明度。第 17 行到第 24 行代碼設置藝術(shù)字對象的線條格 式屬性。其中第 18 行代碼設置線條粗細,

6、第 19 行代碼設置 線條虛線樣式,第 20 行代碼設置線條區(qū)域的樣式,第 21 行 代碼設置線條的透明度,第 22 行代碼設置前景色,第 23 行 代碼設置填充背景的顏色。056 遍歷工作表中的圖形工 作表中的多個圖形, 如果使用系統(tǒng)缺省名稱, 如“文本框 1”、 “文本框 2”這樣前面是固定的字符串,后面是序號的,可 以使用 For.Next 語句遍歷圖形,如下面的代碼所示。 Sub ErgShapes_1() Dimi As Integer Fori = 1 To 4 Sheet1.Shapes( 文 本框 & i).TextFrame.Characters.Text = “ Next

7、End Sub 代 碼解析: ErgShapes_1 過程清除工作表中四個圖形文本框中 的文字。第3行到第5行代碼,使用Shapes屬性在工作表上 的三個圖形文本框中循環(huán)。Shapes屬性返回Shapes對象,代 表工作表或圖形工作表上的所有圖形,可以使用Shapes(index)返回單個的 Shape對象,其中index是圖形的名 稱或索引號。返回單個的Shape對象后使用TextFrame屬性和Characters方法清除文本框中的字符,關(guān)于Shape對象的TextFrame屬性和 Characters方法請參閱 53 。如果圖形的 名稱沒有規(guī)律,可以使用For Each.Next 語句循

8、環(huán)遍歷所有圖形,根據(jù) Type 屬性返回的圖形類型進行相應的操作,如 下面的代碼所示。 Sub ErgShapes_2() DimmyShape As Shape Dimi As Integer i =1 ForEach myShape In Sheet1.Shapes If myShape.Type = msoTextBox Then myShape.TextFrame.Characters.Text =這是第 & i & 個文本 框i = i + 1 End If Next End Sub 代碼解析:ErgShapes_2過程 在工作表中的所有圖形文本框中寫入文本。第 5 行代碼使用 Fo

9、r Each.Next 語句循環(huán)遍歷工作表中所有的圖形對象。 第 6 行到第 9 行代碼如果圖形對象是文本框則在文本框中寫入文 本。其中第 6 行代碼根據(jù) Type 屬性判斷圖形對象是否為文 本框,應用于 Shape 對象的 Type 屬性返回或設置圖形類型, MsoShapeType 類型,如表格所示。 057 移動、旋轉(zhuǎn)圖片 工作表中的圖片可以移動、旋轉(zhuǎn),如下面的代碼所示。 Sub MoveShape() Dimi As Long Dimj As Long WithSheet1.Shapes(1) For i = 1 To 3000 Step 5 .Top = Sin(i * (3.141

10、6 / 180) * 100+ 100 .Left = Cos(i * (3.1416 / 180) * 100+ 100 .Fill.ForeColor.RGB = i * 100 For j = 1 To 10 .IncrementRotation -2 DoEvents Next Next EndWith End Sub 代碼解析: MoveShape 過程移動、旋轉(zhuǎn)工作表中的圖片 并不斷改變其填充的前景色。第 6 行代碼設置圖片的 Top 屬 性值,應用于 Shape 對象的 Top 屬性設置圖形的頂端到工作 表頂端的距離。在循環(huán)的過程中使用 Sin 函數(shù)將 Top 屬性值 設置為一個

11、圓形的弧度值。 Sin 函數(shù)返回指定參數(shù)的正弦值, 語法如下:Sin(number)參數(shù)number表示一個以弧度為單位 的角。 Sin 函數(shù)取一角度為參數(shù)值,并返回角的對邊長度除 以斜邊長度的比值, 將角度除以 180 后即能角度轉(zhuǎn)換為弧度。 第 7 行代碼設置圖片的 Left 屬性值,應用于 Shape 對象的 Left 屬性設置圖形從左邊界至 A 列左邊界 (在工作表中 )或 圖表區(qū)左邊界 (在圖表工作表中 )的距離。在循環(huán)的過程中使 用 Cos 函數(shù)將 Left 屬性值設置為一個圓形的弧度值。 Cos 函數(shù)返回指定一個角的余弦值,語法如下: Cos(number) 參數(shù) number

12、表示一個以弧度為單位的角。 Cos 函數(shù)的 number 參 數(shù)為一個角,并返回直角三角形兩邊的比值,該比值為角的 鄰邊長度除以斜邊長度之商,將角度除以 180 后即能角度轉(zhuǎn) 換為弧度。第 8 行代碼設置圖片填充的前景色隨著循環(huán)的過 程不斷的變化。使用 Fill 屬性返回一個 FillFormat 對象, FillFormat 對象代表圖形的填充格式, 其 ForeColor 屬性設置 對象填充的前景色。第 9 行到第 11 行代碼在圖形移動的過 程中使用 IncrementRotation 方法設置圖形繞 z 軸的轉(zhuǎn)角, IncrementRotation 方法以指定的度數(shù)為增量,更改指定的

13、圖 形繞 z 軸的轉(zhuǎn)角,語法如下: expression.IncrementRotation(Increment) 參數(shù) expression 是必 需的,返回一個 Shape 對象。參數(shù) Increment 是必需的,以 度為單位指定圖形在水平方向的旋轉(zhuǎn)量,正值使圖形按順時 針方向旋轉(zhuǎn),負值使圖形按逆時針方向旋轉(zhuǎn)。其中第11 行是關(guān)鍵的代碼, 使用 DoEvents 函數(shù)轉(zhuǎn)讓控制權(quán), 否則達不到 預計的視覺效果。 運行 MoveShape 過程, 工作表的圖形在自 身進行逆時針方向旋轉(zhuǎn)的同時沿著一個圓形的弧度進行移 動,并不斷改變其填充的顏色。 058 工作表中自動插入 圖片在日常工作中經(jīng)常

14、需要在工作表中插入大量圖片,比如 在工作表中需要根據(jù) A 列的名稱在 C 列插入保存在同一目錄 中的相應的圖片,如果使用手工插入不僅非常繁瑣且極易出錯,而使用 VBA 代碼可以很好的完成操作。示例代碼如下: Sub insertPic() Dimi As Integer DimFilPath As String Dimrng As Range Dims As String WithSheet1 For i = 3 To .Range(a65536).End(xlUp).Row FilPath = ThisWorkbook.Path & & .Cells(i , 1).Text & .jpg I

15、f Dir(FilPath) “ Then .Pictures.Insert(FilPath).Select Set rng = .Cells(i , 3) With Selection .Top = rng.Top + 1 .Left = rng.Left + 1 .Width = rng.Width - 1 .Height = rng.Height - 1 End With Else s = s & Chr(10) & .Cells(i , 1).Text End If Next .Cells(3 , 1).Select EndWith If s “ Then MsgBox s & Chr

16、(10) & 沒有 照片 ! EndIf End Sub 代碼解析: insertPic 過程使用 Insert 方 法在工作表中插入圖片。第 7 行代碼開始 For.Next 循環(huán), 循環(huán)的終值由工作表中 A 列單元格的行數(shù)所決定。 第 8 行代 碼字符串變量 FilPath 保存 A 列名稱單元格所對應的圖片文 件的路徑和文件名, 本例中圖片文件的文件名應和 A 列中的 名稱一致。第 9 行到第 11 行代碼使用 Dir 函數(shù)在同一文件夾 中查找與 A 列單元格中的名稱相對應的圖片文件, 如果對應 的圖片文件存在則使用 Insert 方法將圖片插入到工作表中, 并將 C 列的單元格賦給變量 rng。 Dir 函數(shù)返回一個 String, 用以表示一個文件名、目錄名或文件夾名稱,它必須與指定 的模式或文件屬性、或磁盤卷標相匹配。如果已沒有合乎條 件的文件,則 Dir 函數(shù)會返回一個零長度字符串(“)。第12 行到第 17 行代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論