none
請問 powerpoint vba 如何貼上外部圖片 RRS feed

  • 問題

  • Dear 各位大大:

    目前我是利用別人寫好的程式(此程式是用VB寫成)中 「複製圖片」的功能,將複製圖片貼上powerpoint

    中,為了確定貼圖是正確的,我先利用「手動方式(此指 滑鼠右鍵 =>快速工具列 => 「貼上」

    的功能)」方式確認貼上的圖片是正確的。

    後續我查詢powerpoint vba 之help檔有查到要做上方所講的動作要利用「AddPicture」指令才能

    把外部圖片貼上,因此,我目前問題就是:

    1.AddPicture指令有規定要指出貼圖路徑,但,我不知道複製後的圖片放置完整路徑,所以我就無法

    指定路徑了!

    2.因為我試過用手動方式貼圖是正確的,所以我猜複製後的圖片可能放在powerpoint剪貼簿中,

    才會問 powerpoint剪貼簿圖完整路徑?

    3.有什麼好的方式可以提供嗎?

    4.我使用系統windows xp、office 2010

    很感謝您的回覆!

    2011年12月16日 上午 07:40

解答

  • 你的問題就是:

    1.我不知道別人已經寫好程式之複製後的圖片放置完整路徑,所以我就無法使用addpicture指令。

     

    所以,丟個瀏覽對話框來取的圖片放置完整路徑,問題即可解決。

     


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 浦傑 2011年12月28日 上午 10:03
    2011年12月20日 下午 01:19

所有回覆

  • Dear 各位大大:

    目前我是利用別人寫好的程式(此程式是用VB寫成)中 「複製圖片」的功能,將複製圖片貼上powerpoint

    中,為了確定貼圖是正確的,我先利用「手動方式(此指 滑鼠右鍵 =>快速工具列 => 「貼上」

    的功能)」方式確認貼上的圖片是正確的。

    後續我查詢powerpoint vba 之help檔有查到要做上方所講的動作要利用「AddPicture」指令才能

    把外部圖片貼上,因此,我目前問題就是:

    1.AddPicture指令有規定要指出貼圖路徑,但,我不知道複製後的圖片放置完整路徑,所以我就無法

    指定路徑了!

    2.因為我試過用手動方式貼圖是正確的,所以我猜複製後的圖片可能放在powerpoint剪貼簿中,

    才會問 powerpoint剪貼簿圖完整路徑?

    3.有什麼好的方式可以提供嗎?

    很感謝您的回覆!

    • 已合併 ChenBruceModerator 2011年12月19日 上午 02:22 已在 辦公室軟體與程式開發(Office System Development)重新發問
    2011年12月15日 上午 06:18
  • 你發錯版了 , 應該發到[辦公室軟體與程式開發(Office System Development)]

    我請版主幫你移過去好了.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年12月15日 上午 06:27
  • Dear Bill:

                  很感謝您的回覆,我已經重新發在辦公室軟體與程式開發(Office System Development)了,真的很感謝您!

    2011年12月16日 上午 07:43
  • 你是在問線上手冊這個說明嗎?

     

    PowerPoint 開發人員參考資料
    View.PasteSpecial 方法

    會將剪貼簿目前的內容貼到 View 物件所代表的檢視中。

    語法

     

    運算式.PasteSpecial(DataType, DisplayAsIcon, IconFileName, IconIndex, IconLabel, Link)

     

    運算式 代表 View 物件的變數。

     

    參數

     

    名稱 必要/選用 資料類型 描述
    DataType 選用 PpPasteDataType 在文件中插入剪貼簿內容時所用的格式。預設值會依據剪貼簿內容的不同而有所不同。如果剪貼簿內容不支援 DataType 引數中所指定的資料類型,就會發生錯誤。
    DisplayAsIcon 選用 MsoTriState msoTrue 會將內嵌物件 (或連結) 顯示為圖示。
    IconFileName 選用 String 如果 DisplayAsIcon 設為 msoTrue,這個引數就是用來儲存要顯示之圖示的檔案路徑和檔案名稱。如果 DisplayAsIcon 設為 msoFalse,就會忽略這個引數。
    IconIndex 選用 Long 如果 DisplayAsIcon 設為 msoTrue,這個引數就是一個數字,此數字會對應於您要在 IconFilename 所指定之程式檔中使用的圖示。圖示會出現在 [變更圖示] 對話方塊中,這可以從 [插入] 索引標籤 (按一下 [物件],選取 [以圖示顯示],然後按一下 [變更圖示]) 存取:0 (零) 會對應到第一個圖示,1 會對應到第二個圖示。如果省略此引數,則會使用第一個 (預設) 圖示。如果 DisplayAsIcon 設定為 msoFalse,就會忽略這個引數。如果 IconIndex 落在有效範圍之外,則會使用預設圖示 (索引 0)。
    IconLabel 選用 String 如果 DisplayAsIcon 設為 msoTrue,這個引數就是出現在圖示底下的文字。如果遺漏了這個標籤,Microsoft PowerPoint 會依據剪貼簿內容來產生圖示標籤。如果 DisplayAsIcon 設為 msoFalse,就會忽略這個引數。
    Link 選用 MsoTriState 會決定是否要建立剪貼簿內容來源檔案的連結。如果剪貼簿內容不支援連結,就會發生錯誤。

     

    備註

    呼叫 PasteSpecial 方法時,如果剪貼簿上沒有資料,就會發生錯誤。

     

    PasteSpecial 方法的有效檢視與 Paste 方法的有效檢視相同。如果該資料類型無法貼上到檢視中 (例如,如果您嘗試將圖片貼上到 [投影片瀏覽檢視] 中),則會發生錯誤。

     

    DataType 參數可以是下列其中一個 PpPasteDataType 常數。

     

    ppPasteBitmap
    ppPasteDefault 預設值
    ppPasteEnhancedMetafile
    ppPasteGIF
    ppPasteHTML
    ppPasteJPG
    ppPasteMetafilePicture
    ppPasteOLEObject
    ppPastePNG
    ppPasteRTF
    ppPasteShape
    ppPasteText

     

    DisplayAsIcon 參數可以是下列其中一個 MsoTriState 常數。

     

    msoFalse 預設值,不會將內嵌物件 (或連結) 顯示為圖示。
    msoTrue 會將內嵌物件 (或連結) 顯示為圖示。

     

    Link 參數可以是下列其中一個 MsoTriState 常數。

     

    msoFalse 預設值。不會建立剪貼簿內容之來源檔案的連結。
    msoTrue 會建立剪貼簿內容之來源檔案的連結。

     

     

     

    範例

    在下列範例中,會將某個點陣圖圖像當做圖示貼到另一個視窗。這個範例是假設有兩個開啟的視窗,第一個視窗中目前選取了一個點陣圖圖像。

     

    Visual Basic for Applications
    Sub PasteOLEObject()
        Windows(1).Selection.Copy
        Windows(2).View.PasteSpecial DataType:=ppPasteOLEObject, _
            DisplayAsIcon:=msoTrue, IconLabel:="New Bitmap Image"
    End Sub
    

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年12月16日 下午 04:01
  • Dear 心冷熱情熄:

    下面程式是用office 2003 巨集錄製

    Sub  Macro1()

        ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:="C:\My Documents\My Pictures\BG公主.JPG", LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=-23, Top:=-11, Width:=768, Height:=564).Select

            With ActiveWindow.Selection.ShapeRange
                .Fill.Transparency = 0#
                .Height = 282#
                .Width = 384#                      

                .Left = 0#
                .Top = 0#

        End With
    End Sub

    我現在的問題:我公司的電腦是用office 2010 版 無法巨集錄製,我才會用office 2003版去錄製我要功能,才會發現使用 addpicture指令須指定 「filename」路徑。

    問題就是:

    1.我不知道別人已經寫好程式之複製後的圖片放置完整路徑,所以我就無法使用addpicture指令。

    2.因為我試過用手動方式貼圖是正確的,所以我猜複製後的圖片可能放在powerpoint剪貼簿中,

    才會問 powerpoint剪貼簿圖完整路徑?

     以上 很感謝您的回覆

    2011年12月19日 上午 07:40
  • 剪貼簿是 Windows 全系統共用物件,並非是 PowerPoint 或其他所有,所以沒有剪貼簿路徑可言。

    在 PowerPoint 2003 應該還能存取 Clipboard 這個系統共用物件,但是在 Office 2010 被拿到了,變成線上手冊還有,可是你存取不到。

    所以 PowerPoint 2010 想要存取剪貼簿只剩下:

    1. 呼叫 API

    2. 前述方式

    3. Office 內的 Selection.Copy / Paste

     

    對應你的問題:

    1. 用個瀏覽對話框給人選

    2. 前面貼的線上手冊內容就是你要的


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年12月19日 下午 02:42
  • Dear 心冷熱情熄:

                很感謝您的回覆,我試過您的提意之後再跟您報告!

    p.s:    

    對應你的問題:

    1. 用個瀏覽對話框給人選   =>對不起,請您指的是什麼意思呢?

    2. 前面貼的線上手冊內容就是你要的

    真的很感謝您的回覆

    2011年12月20日 上午 03:20
  • 你的問題就是:

    1.我不知道別人已經寫好程式之複製後的圖片放置完整路徑,所以我就無法使用addpicture指令。

     

    所以,丟個瀏覽對話框來取的圖片放置完整路徑,問題即可解決。

     


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 浦傑 2011年12月28日 上午 10:03
    2011年12月20日 下午 01:19
  • Dear 心冷熱情熄:

                            1. 我沒有使用過=> 「瀏覽對話框來取的圖片放置完整路徑」的指令,能請您給我範例或指令說明嗎?

                            2.我想請教:因為我是使用別人寫好的程式之copy功能,如果要使用您說的方法,我有什麼細節要注意

                               的嗎?

       很感謝您的回覆

     

    2011年12月21日 上午 02:04