本文的緣由,是期望在Excel VBA 的環境裡,處理製作出好看的【單字卡】,希望字卡中有文字、圖片等元素。
例如:
在此介紹一些處理文字、圖片(Picture)的基本知識:
上圖中所有的文字、圖片名稱或是網路URL位置都是記錄在同一檔案的另一個工作表裡,它被條列成清單形式,如此資料也可以容易被維護。
- 要將【工作表A】中【儲存格A】的文字資料,寫到存放單字卡的【工作表Form】裡面。
srcRow = ActiveCell().Row
srcCol = ActiveCell().Column
Sheets("Form").Cells(2, "C") = Cells(srcRow, "C")
Sheets("Form").Cells(3, "C") = Cells(srcRow, "G")
圖片資料的處理,有些觀念要知道!
- 已經存在的圖片,無法直接以”更改“圖片名稱或是網路URL位置方式,來變幻圖片。
需要改以刪除舊圖片,再新加圖片來處理。 - 得知工作表中圖片數量
ActiveSheet.Shapes.Count
--> 2 表示該工作表中,有兩張”圖片“。 - 得知工作表中”特定“圖片的名稱
ActiveSheet.Shapes(1).Name
--> Picture 1 在中文環境中,你可能會看到的名稱是【圖片1】
ActiveSheet.Shapes(2).Name
--> Picture 2 在中文環境中,你可能會看到的名稱是【圖片2】 - 要更改圖片名稱
ActiveSheet.Shapes(1).Name = ”BackGroup” - 刪除特定圖片
ActiveSheet.Shapes(2).Delete - 要刪除工作表中的所有圖片!
ActiveSheet.Shapes.SelectAll
Selection.Delete - 新增圖片
Sheets("Form").Select
ActiveSheet.Pictures.Insert(strPicName).Select
變數 strPicName 是圖片的檔案路徑或是該圖片存放在網路中的URL位置。
例如:
D:\Hebrew_Learning\Hebrew@TW\imags\Quran.jpg
https://d1pra95f92lrn3.cloudfront.net/media/thumb/9722_fit160.jpg - 控制圖片的尺寸大小
ActiveSheet.Pictures.Insert(strPicName).Select
sImageCell = "B3"
With Selection.ShapeRange
.Top = Range(sImageCell).Top + 2
.Left = Range(sImageCell).Left + 4
.Height = 100 ' Range(sImageCell).Height - 40
.Width = 100 ' Range(sImageCell).Width - 40
End With
沒有留言:
張貼留言