返回列表 上一主題 發帖

[發問] icon路徑問題

[發問] icon路徑問題

請問各位大大

小弟有個巨集

可以將檔案附到Excel裡面

是以圖示的方式貼上,並修改成特定名稱

但由其他人使用時發現無法順利以圖示顯示

後來才發現原來是icon的路徑不同

下方截取部分程式碼
  1. ActiveSheet.OLEObjects.Add(filename:=filename1, Link:=False, Link:=False, _
  2.                     DisplayAsIcon:=True, IconFileName:= _
  3.                     "C:\WINDOWS\Installer\{AC76BA86-7AD7-1028-7B44-A93000000001}\PDFFile_8.ico", _
  4.                     IconIndex:=0, IconLabel:=icon_name1).Select
複製代碼
請問不同電腦使用時,能否自動判別icon的路徑

不用特別去修改

謝謝!!!
用功到世界末日那一天~~~

ActiveSheet.OLEObjects.Add(filename:=filename1, Link:=False, Link:=False, _
                    DisplayAsIcon:=True, IconFileName:= _
                    Environ("Windir")+"\{AC76BA86-7AD7-1028-7B44-A93000000001}\PDFFile_8.ico", _
                    IconIndex:=0, IconLabel:=icon_name1).Select

TOP

回復 1# li_hsien
有兩種方法可以達成,
一種是參考這一篇 : 請問如何在"文字方塊"輸入條件後再去搜尋資料
對 C:\Windows\Installer 底下的每個子目錄,
搜尋 PDFFile_8.ico 檔案(若要快些可以濾掉非 { 開頭的目錄)

但我不建議用此方式,
因為 Installer 目錄裡面的檔案是在安裝過程中產生的,
裡面大部分的檔案可能在安裝完後就再也不會使用,
所以有些垃圾資料清除功能或工具可能會清掉這些檔案.
而且每次都要搜尋Installer 底下的每個子目錄找該檔案也很沒有效率.

我較建議方式就是把這個 Icon 檔案 Copy 到某個目錄下,
可以自建一個目錄,
或是乾脆跟 Excel 檔放在同個目錄下,(可以用 ThisWorkBook.Path 取得)
這樣每個人都用相同的路徑即可,
程式也會比較好維護.

TOP

回復 2# bobomi

感謝bobomi回覆

不過好像每台電腦的                    
這個位置 -> {AC76BA86-7AD7-1028-7B44-A93000000001}\PDFFile_8.ico" 都不盡相同

用這方法好像無法確保每台電腦都找得到圖示
用功到世界末日那一天~~~

TOP

回復 3# luhpro

luhpro大的建議是將我所要的圖示,統一放置在一處

檔案抓取的圖示都固定抓那一處的圖示來顯示嗎???
用功到世界末日那一天~~~

TOP

另外請問各位大大

插入檔案物件,我能否指定他要插入的地方呢???

我用了Range().select

可以附到特定儲存格上

可是為什麼試了幾次又不行了@@

另外我想調整它呈現出來的圖示大小
加了Width:=57

沒有效果

請問能怎麼操作呢???

謝謝
  1.             If Dir(filename) <> "" Then
  2.                 Range("B" & i).Select
  3.                 ActiveSheet.OLEObjects.Add(filename:=filename, Link:=False, Width:=57, DisplayAsIcon:=True, _
  4.                     IconFileName:= _
  5.                     "C:\WINDOWS\Installer\{AC76BA86-7AD7-1028-7B44-A93000000001}\PDFFile_8.ico", _
  6.                     IconIndex:=0, IconLabel:=Range("A" & i)).Select
複製代碼
用功到世界末日那一天~~~

TOP

回復  luhpro
luhpro大的建議是將我所要的圖示,統一放置在一處
檔案抓取的圖示都固定抓那一處的圖示來顯示嗎???
li_hsien 發表於 2014-10-23 08:34

這應該是最多人用的方法.

除非是系統有規範(例如共用元件目錄, 共用桌面...等目錄)或是市面常態上)該放的目錄外,
同一套軟體自己做的檔案大都會放在同一個目錄下.
不但好管理也便於引用相關資源.

另外請問各位大大
插入檔案物件,我能否指定他要插入的地方呢???
我用了Range().select
可以附到特 ...
li_hsien 發表於 2014-10-23 15:38

其實 Range本身也有  .Top .Left 及  .Width .Height  等屬性,
只要把物件的  .Top .Left 設定與某一儲存格相同,
這個物件就對齊該儲存格左上角.

值得一題的是有個屬性可以將該物件綁定某個儲存格的左上角,
使得物件能一直對齊儲存格,
不因插入欄列而有所變動.

TOP

本帖最後由 GBKEE 於 2014-10-27 15:22 編輯

回復 6# li_hsien
另外我想調整它呈現出來的圖示大小
加了Width:=57 沒有效果  


VBA OLEObjects.Add 的範例
  1. '套用至 OLEObjects 物件時。
  2. '本範例在 Sheet1 中新增一個 Microsoft Word OLE 物件。

  3. ActiveWorkbook.Worksheets("Sheet1").OLEObjects.Add _
  4.     ClassType:="Word.Document"

  5. '本範例為第一張工作表新增指令按鈕。
  6. Worksheets(1).OLEObjects.Add ClassType:="Forms.CommandButton.1", _
  7.     Link:=False, DisplayAsIcon:=False, Left:=40, Top:=40, _
  8.     Width:=150, Height:=10
複製代碼
你可以指定
  1. Sub Ex()
  2.     Dim i
  3.     i = 5
  4.     With ActiveSheet.OLEObjects.Add(Filename:="D:\test.xls", Link:=False,  DisplayAsIcon:=True, _
  5.         IconFileName:="C:\WINDOWS\Installer\{AC76BA86-7AD7-1028-7B44-A93000000001}\PDFFile_8.ico", _
  6.         IconIndex:=0 , IconLabel:=Range("A" & i))
  7.         .Top = Range("B" & i).Top        '指定頂部位置
  8.         .Left = Range("B" & i).Left      '指定右邊位置
  9.         .Height = Range("B" & i).Height  '指定高度
  10.         .Width = Range("B" & i).Width    '指定寬度        
  11.     End With   
  12. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# luhpro


感謝luhpro

圖示放在一個固定的路徑或資料夾真的是個完全不錯的作法

之前都沒想到

又在執行安排上學到了一點

謝謝
用功到世界末日那一天~~~

TOP

回復 8# GBKEE

感謝GBKEE版大

所以他的相關屬性
.Height
.Width
都不是指定實際的長寬,而僅是指某個儲存格的相對位置吧???
用功到世界末日那一天~~~

TOP

        靜思自在 : 滴水成河。粒米成蘿,勿輕己靈,勿以善小而不為。
返回列表 上一主題