Board logo

標題: [發問] 關於圖片VBA的問題 [打印本頁]

作者: av8d    時間: 2012-2-2 11:28     標題: 關於圖片VBA的問題

本帖最後由 av8d 於 2012-2-2 11:32 編輯

我開啟了兩張圖片VBA~分別是Image1和Image2

我希望我點一下Image1將會跑插入圖片的那個視窗,
預設路徑是桌面,然後能讓我選取,可是不知道裡面該怎麼寫
Private Sub Image1_Click()

End Sub

然後寫個巨集去刪除Image1的圖片,但是內容有錯
Sub ColseImage_Click()
Image1.Picture = (無)
End Sub

然後寫個巨集去刪除全部的圖片VBA,但是內容有錯
Sub ColseImage_Click()
Image1.Picture = (無)
Image2.Picture = (無)
End Sub

圖片VBA內的Height和Width內的數值單位是?公分還是?
作者: GBKEE    時間: 2012-2-2 13:37

回復 1# av8d
  1. Option Explicit
  2. Private Sub Image1_Click()
  3.     With Application.FileDialog(msoFileDialogFilePicker)
  4.         .InitialFileName = "D:\*.*"    '修改為你的桌面路徑
  5.         If .Show = -1 Then Image1.Picture = LoadPicture(.SelectedItems(1))
  6.     End With
  7. End Sub
複製代碼

刪除Image1的圖片   Image1.Picture = LoadPicture("")
VBA的說明:
Height、Width 屬性 物件的高度與寬度,單位為點。
點數 一點為 1/72 吋。字形大小通常以點數來量度
Height 或 Width 必須大於等於零。在多數系統中,通常其範圍在 0 到 +32,767 之間,超過的話則需視系統而定。
作者: howard3344    時間: 2012-2-2 17:52

印象上一單位為視窗坐標1單位的長度
作者: av8d    時間: 2012-2-4 10:33

回復 2# GBKEE


    刪除Image1的圖片   Image1.Picture = LoadPicture("")

您好~如果我是開啟畫一個圓形~然後右鍵→指定巨集

會出現此處需要物件 (錯誤 424)

Dim RetVal                                ' 為一 Variant。
' 預設屬性指定為型態 8,即 Variant RetVal。
RetVal = CreateObject("Excel.Application")   
RetVal.Visible = True                ' 錯誤在此發生。

當指定物件引用時,請使用 Set 陳述式。

所以如果是用指定巨集的寫法不同的地方是? 再次感謝。
作者: GBKEE    時間: 2012-2-4 10:58

回復 4# av8d
您好~如果我是開啟畫一個圓形~然後右鍵→指定巨集
錄製:
  1. Sub Macro1()
  2.     ActiveSheet.Shapes("AutoShape 1").Select
  3.     Selection.OnAction = "ThisWorkbook.EX"
  4. End Sub
複製代碼

自己寫的
  1. Sub EX()
  2.     Sheet1.Shapes("AutoShape 1").OnAction = "ThisWorkbook.EX"
  3. End Sub
複製代碼

***************************
Dim RetVal                                ' 為一 Variant。
' 預設屬性指定為型態 8,即 Variant RetVal。
RetVal = CreateObject("Excel.Application")   
RetVal.Visible = True                ' 錯誤在此發生。
當指定物件引用時,請使用 Set 陳述式。
*********這一段不明瞭   你已知道  請使用 Set 陳述式
作者: av8d    時間: 2012-2-4 11:34

本帖最後由 av8d 於 2012-2-4 11:54 編輯

回復 5# GBKEE

如果我是寫在橢圓32裡面該如何套用呢?因為會出現  "系統錯誤&H80070057(-2147024809)"  

點了一下說明出現

產生指定系統錯誤
Visual Basic 遇到一個由系統或外部元件所產生的錯誤。

    Sub 橢圓32_Click()

    End Sub
如果要一次刪除全部的圖片VBA寫法是否有比較簡易的方法呢?

謝~謝~大~大
作者: GBKEE    時間: 2012-2-4 12:33

回復 6# av8d
附上檔案看看
  1. Sub Ex()
  2.     ActiveSheet.Pictures.Delete   '刪除全部照片
  3.     ''''''''''''''''''''''''''''''''''''''''''
  4.     ActiveSheet.Shapes.SelectAll  '點選全部圖片
  5.     Selection.Delete              '刪除 點選全部圖片
  6. End Sub
複製代碼

作者: av8d    時間: 2012-2-4 12:52

本帖最後由 av8d 於 2012-2-4 13:01 編輯

回復 7# GBKEE


    [attach]9427[/attach]

我剛測試了一下~都可以了~
Image1.Picture = LoadPicture("")

刪除全部就要複製貼上10次了
Image1.Picture = LoadPicture("")
Image2.Picture = LoadPicture("")
...
..
.
.

謝謝版主~您辛苦了~應該都還沒吃飯吧~再次感謝!
作者: GBKEE    時間: 2012-2-4 13:32

回復 8# av8d
Sheet1 沒有橢圓 32
Sub 橢圓32_Click()
    Sheet3.Shapes("橢圓 32").OnAction = "ThisWorkbook.EX"
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)