作者yimean (溫柔殺手)
看板Office
標題[算表] VBA在特定儲存格插入物件並調整大小
時間Fri Oct 19 07:54:09 2018
軟體:Excel
版本:2013
各位版上的大大早安,我有一個需求就是用VBA在某一個特定位置插入說明圖面。
圖面來源有可能是PDF跟JPG。必須要以可看見的方式插入。如此才能達到"說明"的效果。
這兩個檔案來源都已經有固定的大小了,插入之後我需要調整大小,讓頁面可以放得下。
煩請高手指導一下,感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.98.141
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1539906852.A.3BA.html
1F:→ soyoso: 圖片jpg的方面shape.height或width,比例的話scaleheight 10/19 08:16
2F:→ soyoso: 或scalewidth,特定位置如是要配合儲存格大小話則長寬以 10/19 08:18
3F:→ soyoso: range.height或width 10/19 08:18
4F:→ soyoso: oleobject的話則在shaperange調整height、width或比例的部 10/19 08:28
5F:→ soyoso: 分;位置的話,則是top和left 10/19 08:29
6F:→ yimean: 感謝指導,請問,插入JPG與PDF的方法是一樣的嗎? 10/19 09:02
7F:→ soyoso: 如是以插入物件方式來插入pdf的話,為回文內oleobject的部 10/19 10:07
8F:→ soyoso: 分 10/19 10:07
@soyoso 感謝指導。
我這邊有嘗試錄製巨集,有三個問題請教。
Sub 插入PDF()
' 插入PDF 巨集
ActiveSheet.OLEObjects.Add(Filename:="D:\desktop\AX1N.pdf", Link:=False, _
DisplayAsIcon:=False).Select
ActiveWindow.SmallScroll Down:=12
ActiveSheet.Shapes("Object 1").ScaleWidth 0.5976430976, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Object 1").ScaleHeight 0.5976430446, msoFalse, _
msoScaleFromTopLeft
ActiveWindow.SmallScroll Down:=-30
End Sub
Sub 插入圖片()
' 插入圖片 巨集
ActiveSheet.OLEObjects.Add(Filename:= _
"D:\desktop\ScreenHunter_11 Oct. 11 21.55.jpg", Link:=False,
DisplayAsIcon _
:=False).Select
End Sub
第一個問題,關於PDF插入的部分,插入的物件似乎被直接命名為"Object 1"
這個是系統預設嗎?我們如果再寫程式是不是應該修改如下。
Dim Object 1 As OLEObject
Set Object 1 = ActiveSheet.OLEObjects.Add(Filename:="D:\desktop\AX1N.pdf", Link:=False, _
DisplayAsIcon:=False)
.......
第二個問題,錄製的巨集中有ActiveWindow.SmallScroll Down:= 12。這個陳述是不是
可以直接刪掉?
第三個問題,插入圖片部分,插入的過程當中我並沒有選擇用圖示顯示,但是,插入後
卻是一個未開啟的圖示。請問我應該要如何處理?才能讓他像PDF一樣處於開啟的狀態?
煩請撥冗解惑,感謝。
※ 編輯: yimean (114.33.116.8), 10/19/2018 14:28:47
9F:→ yimean: 更新資料 10/19 14:28
10F:→ soyoso: 問題1,命名上如無更名時,預設依序物件 1、物件 2... 10/19 15:08
11F:→ soyoso: 變數名稱無需相同於物件命名,只要符合變數命名規則 10/19 15:09
12F:→ soyoso: 如dim obj as oleobject,set obj = .... 10/19 15:10
13F:→ soyoso: 問題2,要看應用於實際檔案是否有符合要的結果,如果無的 10/19 15:12
14F:→ soyoso: 的話可以直接刪除或做修改 10/19 15:12
15F:→ soyoso: 問題3,插入圖片方面看是否以pictures.insert 10/19 15:17
16F:→ soyoso: 如要以回文所提到的shape型態的話,addtextbox的方式 10/19 15:28