アプリ版:「スタンプのみでお礼する」機能のリリースについて

ExcelVBAのフォーム上のimageコントロールにWeb上にある画像を表示したいのですが、VBE上のプロパティで設定するときは表示されるのに、プログラム上で設定するとエラーが出ます。
Image1.Picture = LoadPicture(strURL)で設定しましたが無理でした。
どうやら、LoadPicture関数での設定では駄目なようです。
VBE上では出来るので、何かしら方法があると思うのですが、いかがでしょうか?
よろしくお願いいたします。

A 回答 (1件)

>ExcelVBAのフォーム上のimage~Web上にある画像を表示したい


そのままだと無理です。

イメージコントロールに通信機能はありません。
ftp://やhttp://などではじまるところはイメージコントロールは参照を行う事ができません。

ローカル端末などに落として、画像を使用する必要があります。

VB6のサービスパックを利用し、画像のダウンロードは簡単に行えます。

フォームデザイン画面より
→ ツール
→→ その他のコントロール
→→→ Microsoft Internet Transfer Control 6.0

↓はVB6での説明ですが、VBAでも応用できるものです。
http://hanatyan.sakura.ne.jp/vbhlp/urltodl.htm


↓それを利用したサンプル
Sub ダウンロード(p_strURL As String, p_strFileName As String)
  Dim l_bytHtml()   As Byte
  Dim l_intFileNo   As Integer
  
  l_intFileNo = FreeFile
  
  l_bytHtml() = Inet1.OpenURL(p_strURL, icByteArray)
  Open p_strFileName For Binary Access Write As #l_intFileNo
    Put #l_intFileNo, , l_bytHtml()
  Close #l_intFileNo
End Sub

Private Sub UserForm_Initialize()
  Dim l_strURL As String
  l_strURL = "http://okwave.jp/images/logo/logo.jpg"
  
  Dim l_strFileName As String
  l_strFileName = "C:\logo.jpg"
  
  Call ダウンロード(l_strURL, l_strFileName)
  Me.Image1.Picture = LoadPicture(l_strFileName)
End Sub
「ExcelVBAのフォーム上のimage」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!