標題:
[發問]
工作表中的多張圖片如何操控?
[打印本頁]
作者:
baconbacons
時間:
2014-4-18 15:03
標題:
工作表中的多張圖片如何操控?
工作表中存在多張圖片 目前有幾項操控圖片的需求
分別是刪除、新增以及對調圖片
該用何函數或方法來指定特定的圖片?
以下是我用錄製得知的方法 但進一步操控時都會發生錯誤
ActiveSheet.Shapes.Range(Array("Picture 2"))
請高手指教
作者:
GBKEE
時間:
2014-4-18 15:42
回復
1#
baconbacons
試試看
Option Explicit
Sub Ex()
Dim p As Pictures, S(1 To 2) As Picture, C(1 To 4)
Set p = ActiveSheet.Pictures
p.Delete
'刪除所有相片
Set S(1) = p.Insert("C:\Documents and Settings\hsuA\My Documents\My Pictures\EX.JPG")
'新增
With S(1) '設定
.Left = [C10].Left
C(1) = .Left
.Top = [C10].Top
C(2) = .Top
.Width = [C10:F10].Width
C(3) = .Width
.Height = [C10:C15].Height
C(4) = .Height
End With
Set S(2) = p.Insert("C:\Documents and Settings\hsuA\My Documents\My Pictures\EX1.JPG")
With S(2)
.Left = [H10].Left
.Top = [H10].Top
.Width = [H10:K10].Width
.Height = [H10:K15].Height
End With
'**********對調
With S(1)
.Left = S(2).Left
.Top = S(2).Top
.Width = S(2).Width
.Height = S(2).Height
End With
With S(2)
.Left = C(1)
.Top = C(2)
.Width = C(3)
.Height = C(4)
End With
End Sub
複製代碼
作者:
baconbacons
時間:
2014-4-23 09:16
回復
2#
GBKEE
GBKEE大:
請教幾個問題,pictures 也可以是資料型態嗎?
第三行程式碼:C(1 To 4)的後方是不是應該加入「As Picture」?
S(1 To 2) 以及 C(1 To 4) 的意思是否為陣列S的2張相片、陣列C的4張相片?
那下列程式碼的意思是否為相片S(1)的左、上位置以[C10]為準,高以[C10:C15],寬以[C10:F10]為準
相片C(1)的左位置與S(1),相片C(2)的上位置與S(1),相片C(3)寬度與S(1),相片C(4)高度與S(1)相同
如果是這樣的話,我無法理解,因為執行起來好像有點問題…
With S(1) '設定
.Left = [C10].Left
C(1) = .Left
.Top = [C10].Top
C(2) = .Top
.Width = [C10:F10].Width
C(3) = .Width
.Height = [C10:C15].Height
C(4) = .Height
End With
我再將我的想法表達更清楚一點的話…
我如果想要刪除該工作表中的第27張相片或是
新增第39張相片或是
將第51張相片與第54張相片對調
該如何操作
作者:
GBKEE
時間:
2014-4-24 05:58
本帖最後由 GBKEE 於 2014-4-24 05:59 編輯
回復
3#
baconbacons
Option Explicit
Sub Ex()
Dim S As Pictures, C(1 To 4) As Single
'Single 資料型態 Single (單精度浮點數) 變數係以 IEEE 32 位元 (4 個位元組)浮點數字的形式儲存,
'它的範圍在負數的時候是從 -3.402823E38 到 -1.401298E-45,而在正數的時候是從 1.401298E-45 到 3.402823E38。Single 的型態宣告字元為 !。
Set S = ActiveSheet.Pictures 'Pictures :照片物件的集合
MsgBox S.Count
'我如果想要刪除該工作表中的第27張相片
S(27).Delete
'新增第39張相片
'參考 http://forum.twbts.com/thread-11828-1-1.html
'將第51張相片與第54張相片對調
With S(54) '照片物件的集合的第54張照片
C(1) = .Left 'C(1)->讀取第54張照片的Left數值
C(2) = .Top 'C(2)->讀取第54張照片的Top數值
C(3) = .Width 'C(3)->讀取第54張照片的Width數值
C(4) = .Height 'C(4)->讀取第54張照片的Height數值
.Left = S(51).Left 'Left設定第51張照片的Left
.Top = S(51).Top 'Top設定第51張照片的Top
.Width = S(51).Width 'Width設定第51張照片的Width
.Height = S(51).Height 'Height設定第51張照片的Height
End With
With S(51) '照片物件的集合的第51張照片
.Left = C(1) 'Left數值為 C(1) ,S(54)先前的Left
.Top = C(2) 'Top數值為 C(2) ,S(54)先前的Top
.Width = C(3) 'Width數值為 C(3) ,S(54)先前的Width
.Height = C(4) 'Height數值為 C(4) ,S(54)先前的Height
End With
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)