• 締切済み

ExcelVBAのフォーム上のimageコントロールにWeb上にある画

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

みんなの回答

回答No.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

関連するQ&A

  • ExcelVBA:フォーム2のイメージオブジェクト(画像付)をフォーム1のイメージオブジェクト(画像なし)に表示する方法

    ExcelVBAで、他のフォームのイメージオブジェクトを表示させる方法が分かりません。LoadPicture()を使ってみたのですが、ファイル名を入力しないとダメなのでできませんでした。 例えば、フォーム2の中に画像の付いたイメージオブジェクト「イメージ2」があったとします。 それを、フォーム1の、画像のないイメージオブジェクト「イメージ1」に表示させるにはどうすればよいのでしょうか? 回答よろしくお願いします。

  • VB6のイメージコントロールでURLの画像を表示

    VB6のイメージコントロール、またはピクチャーコントロールで URLの画像を表示したいです。 ローカルに一度保存してLoadPicture関数を使うことでできそう ですが、ローカルに保存せずに表示することは可能でしょうか?

  • ExcelVBAのイメージコントロールについて

    こんにちは。Excel2000を使用している初心者です。 フォーム上には以下のものがあります。 Image1 Label1、Label2、Label3、Label4 CommandButton1 ・CommandButton1を押すとImage1に画像Aをロードして、次に押すと消すという動作をさせます。 ・Image1の上をマウスが動くと座標をLabel1(x)、2(y)に常に表示させます。 ・Image1をクリックするとそのときの座標をLabel3(x)、4(y)に表示させたままにします。 コードは以下の通りです。 Dim Flg As Boolean Flg = False Private Sub CommandButton1_Click() If Flg = False then Me.Image1.Picture = LoadPicture ("C:\A.jpg") Flg = True Else Me.Image1.Picture = LoadPicture ("") Flg = False End If End Sub Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer,_ ByVal X As Single, ByVal Y As Single) Me.Label1.Caption = X Me.Label2.Caption = Y End Sub Private Sub Image1_Click() Me.Label3.Caption = Me.Label1.Caption Me.Label4.Caption = Me.Label2.Caption End Sub ・・・という記述なんですが、まず画像を表示させて、次にイメージをクリックしてLabel3、4に座標を表示させた後、CommandButton1を押してもイベントを受け付けてくれません。 イメージをクリックさえしなければ、画像の表示/非表示の切り替えはできます。 何が間違っている(足りない?)のでしょうか? よろしくお願いします。

  • VBAでフォームに画像を表示したい

    ExcelVBAでフォームに画像を表示したいのですが Private Sub CommandButton1_Click() Image2.Picture = LoadPicture("A3") End Sub セルA3に"C:\デスクトップ\A\A\a-1\A-01.jpg"が入力されています。 ファイルがありません。とエラーがでます。 下記ではうまく表示されます。 Image2.Picture = LoadPicture("C:\デスクトップ\A\A\a-1\A-01.jpg") 何がよくないのでしょうか? よろしくお願い致します。

  • Imageコントロール vba

    Imageコントロールをsheetに直接はりました。 sheetにはったイメージをExcelを開いたときにリンク先のものに変えたいです。 Image1_Click()を使えばクリックすると切り替えることができます。 Image1.Picture = LoadPicture("C:\イメージ.bmp") クリックせずにExcelをひらくと「イメージ.bmp」を参照して画像が変わるようにしたいのですが、どうしたらよいでしょうか。

  • VB2005 コントロールの背景を透過

    フォームにバックグラウンドイメージを設定しているのですが その上にグループボックスやラベルを貼り付けたら、フォームのイメージが隠れてしまいます。 VB6はコントロールに背景を透過にするプロパティがあったので探してみたのですが、見当たりません。 おそらくVB2005でも簡単に透過設定できると思うのですが… グループボックスとラベルを透過に設定する簡単な方法はありますでしょうか? (コントロールの継承になってくる?) また、これはおそらく無理だと思うのですが ピクチャーボックスで表示されている画像の透過部分にも フォームの背景イメージを表示させる、ということは可能でしょうか? よろしくお願い致します。

  • Imageコントロールにグラフを表示させるには

    Excel VBAでフォームにイメージコントロールを配置して、そこにエクセルで作成したグラフ(グラフシート)を表示するようなプログラムは作成可能でしょうか? 例えば、 まずワークシートのデータを元にグラフ(グラフシート)を作成し、作成したグラフをフォーム上のイメージコントロールに表示させる一連の作業をVBAでプログラミングできるかどうかということです。 Userform1.MultiPage1.Image1.Picture = .........といった感じです。 もしくは、作成したグラフをgif形式の画像として特定のディレクトリなりフォルダに保存して、その画像ファイルを読み込むことで対応はできるでしょうか? よろしくお願いします。

  • LoadPictureのヘルプが見れない理由は?

    エクセル(2007)にユーザーフォームを設置し、その上にImage1を設置し、 Private Sub UserForm_Initialize() Me.Image1.Picture = LoadPicture("C:\test.jpg") End Sub としました。 正常に動くのですが、LoadPictureの意味を調べたくて、LoadPictureを選択してF1を押すと、 添付画像のようになり、ファイルが開けません。 「はい」を選んでも、ライブラリ\ドキュメントから選ぶように言われ、 何を選んでいいのかわかりません。 なぜ、LoadPictureのヘルプは見れないのでしょうか? ヘルプの検索窓から、「LoadPicture」で検索をかけたところ ・MouseIcon プロパティ、MousePointer プロパティの使用例 ・CommandBarButton.Picture プロパティ ・MouseIcon プロパティ ・Picture プロパティ ・CommandBarButton.Mask プロパティ ・コントロールからビットマップを削除する ・PictureAlignment プロパティの使用例 ・コンボ ボックス (ComboBox) コントロール、AddItem メソッド、Picture プロパティ、PicturePosition プロパティの使用例 ・PictureSizeMode プロパティの使用例 ・Object プロパティの使用例 しかヒットしませんでした。

  • 連続で印刷すると画像が更新されない(Excelのイメージコントロール)

    いつもお世話になります。 エクセルのイメージコントロールを使用しているのですが、 なかなかうまく行かないので、アドバイスをお願いします。 シートにイメージコントロールをいくつか(8個)配置しました。 マクロで LoadPicture を使用し画像を読み込ませました。 Rangeで範囲を指定して印刷しました。 一旦、Sheet1.Image1.Picture = Nothing と開放しました。 そのイメージコントロールに別画像を LoadPicture させました。 同様に印刷させましたが、画像は最初に読み込ませたもののままです。 マクロが終了して見ると、最新の画像に更新されているのですが、 印刷したものでは(プリビューでも)更新されません。 Redraw させたり Refresh させるコマンドはないかと思いましたが見つかりません。 同じマクロで画像のコメントをセルに表示させているのですが、 こちにはどんどん更新しています。 画像だけが、最初に読み込んだ画像のままで印刷されてしまいます。 印刷範囲は常に同じです。 原因なり対処法なりをお教え下さいますようお願いします。

  • イメージコントロールに画像をセット

    イメージコントロールに画像をセットしたいのですが、下記ではうまく動きません。 どうしたらよいでしょうか。 Private Sub Workbook_Open() ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _ DisplayAsIcon:=False, Left:=137.25, Top:=20.25, Width:=270, Height:= _ 154.5).Select Worksheets("Sheet1").Image1.Picture = LoadPicture("D:\My doc\My Pictures\11.jpg") End Sub