2016-04-12 12 views
0

リンクからVBA画像コントロールに画像を追加する方法がわかりません。インターネットからVBA画像コントロールに画像を追加する

私は次のようにVBAにイメージを持って来ることができます。

Sheets("Elk").Shapes.AddPicture "http://images.summitpost.org/original/562016.jpg", msoFalse, msoTrue, 200, 200, 800, 700 

をこれは、ワークシート上に画像を取り込みますが、今私はイメージコントロールにそれを置くことができるようにしたいです。

これは実行可能なタスクですか?

+1

あなたが書いたコードの一部を表示する必要があります。 –

答えて

0

このMrExcel.com threadには、お探しの答えがあります。基本的には、 "LoadPicture(ファイルパス)"メソッドを使用して、実行時に画像コントロールに画像を割り当てる方法があります。残念ながら、ファイルパスとしてURLは使用されません。画像がローカルまたは共有ドライブにある場合は、「LoadPicture」が使用できます。申し訳ありません...

LOADPICTURE()メソッドの例:

'Having that "Image1" is the name of the Image Control 
Image1.Picture = LoadPicture("here the path to your picture") 
+0

このリンクは質問に答えるかもしれませんが、ここに答えの重要な部分を含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の記事/ 11991457) – KittMedia

+0

チップのKittediaをありがとう、私はちょうどコードの例を追加しました。 –

0

あなたは(私はこれがあなたが使用しているものであると仮定)のActiveXイメージコントロールにURLを追加することはできません、あなたが持っていますまずHDDにイメージを保存します。

これには標準ウィンドウdll urlmonを使用できます。モジュールの上にURLDownloadToFileという機能があると宣言する必要があります。

イメージをダウンロードしてImage Controlに割り当て、最後にファイルを削除するには、HDD上の一時フォルダを選択します。

Private Declare Function URLDownloadToFile Lib "urlmon" _ 
    Alias "URLDownloadToFileA" _ 
    (ByVal pCaller As Long, _ 
    ByVal szURL As String, _ 
    ByVal szFileName As String, _ 
    ByVal dwReserved As Long, _ 
    ByVal lpfnCB As Long) As Long 



Private Sub Testit() 
    Image_Download "http://images.summitpost.org/original/562016.jpg" 
End Sub 

Private Sub Image_Download(strImgURL As String) 

     Dim lngRC As Long 

     strTempFile = "C:\temp\anyfilename.jpg" 

     lngRC = URLDownloadToFile(0, strImgURL, strTempFile, 0, 0) 

     If ret Then 
      MsgBox "The image download failed", vbExclamation 

     Else 

      MyImageControl.Picture = LoadPicture(strTempFile) 
      Kill strTempFile 

     End If 

End Sub 

画像形式に注意してください。これは、JPGを継続している場合にのみ機能します。 GIFまたはPNGをダウンロードする予定がある場合は、それに応じて一時ファイル拡張子を変更する必要があります。

関連する問題