Excel VBA 處理圖片(Picture)的基本知識

本文的緣由,是期望在Excel VBA 的環境裡,處理製作出好看的【單字卡】,希望字卡中有文字、圖片等元素。
例如:
Toronto

在此介紹一些處理文字圖片(Picture)的基本知識:

上圖中所有的文字、圖片名稱或是網路URL位置都是記錄在同一檔案的另一個工作表裡,它被條列成清單形式,如此資料也可以容易被維護。

  1. 要將【工作表A】中【儲存格A】的文字資料,寫到存放單字卡的【工作表Form】裡面。
    srcRow = ActiveCell().Row
    srcCol = ActiveCell().Column
  2. Sheets("Form").Cells(2, "C") = Cells(srcRow, "C")
    Sheets("Form").Cells(3, "C") = Cells(srcRow, "G")

圖片資料的處理,有些觀念要知道!

  1. 已經存在的圖片,無法直接以”更改“圖片名稱或是網路URL位置方式,來變幻圖片。
    需要改以刪除舊圖片,再新加圖片來處理。
  2. 得知工作表中圖片數量
    ActiveSheet.Shapes.Count
    --> 2            表示該工作表中,有兩張”圖片“。
  3. 得知工作表中”特定“圖片的名稱
    ActiveSheet.Shapes(1).Name
    --> Picture 1               在中文環境中,你可能會看到的名稱是【圖片1】
    ActiveSheet.Shapes(2).Name
    --> Picture 2               在中文環境中,你可能會看到的名稱是【圖片2】
  4. 要更改圖片名稱
    ActiveSheet.Shapes(1).Name = ”BackGroup”
  5. 刪除特定圖片
    ActiveSheet.Shapes(2).Delete
  6. 要刪除工作表中的所有圖片!
    ActiveSheet.Shapes.SelectAll
    Selection.Delete
  7. 新增圖片
    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
  8. 控制圖片的尺寸大小
    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

沒有留言: