- 締切済み
VBAで抽出した画像の数枚をフォームに表示
VBAで指定したURLにある画像を抽出し、その画像をExcelシートに貼るものを作りましたが、そのうち3枚くらいをユーザフォーム上にも表示したいのですが、どのように記述したらよいでしょうか? 教えていただけたら幸いです。
- anatawadare01
- お礼率33% (3/9)
- Excel(エクセル)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- real beatin(@realbeatin)
- ベストアンサー率82% (174/211)
こんにちは。 Q9322829の続きとして回答します。 > VBAで指定したURLにある画像を抽出し、その画像をExcelシートに貼るものを作りましたが、 Q9322829にてご提示の記述は、 自PC内にファイルとしてを画像を取り込むのではなく、 画像のURLだけを扱って、直接シート上に図を挿入するというものですね。 となると、 > そのうち3枚くらいをユーザフォーム上にも表示したいのですが、 WebBrowserコントロールでNaviするぐらいかな、と思いますが、 この方法だとフォームのデザインで難儀するかも知れません。 ファイルとして取り込んであれば、 Imageコントロール等を配置して、 .Image1.Picture = LoadPicture("ファイルパス") みたいに簡単な処理で済ますことが出来ますし、 画像のサイズ指定や、フォームのデザインについても融通が利きます。 ですので、一旦は、Q9321989に立ち戻って、 画像ファイルをダウンロードする方法について再検討された方が、 今後の機能追加を考えると有利になる場面が多いとは思います。 ただ、今回は今回の、ご要望に素直にお応えすることにします。 Q9322829での、 > まず、下準備として、ご提示のコードの直下に、 > DoEvents > s.AlternativeText = e.href > 以上の2行を書き加えてから画像を取り込んでください。 > これによって、挿入された図の属性として、 > 画像のURLを保持します。 を前提(must です)としています。 ユーザーフォームのコントロールをデザインします。 UserForm1 ┣ WebBrowser1 ┣ WebBrowser2 ┗ WebBrowser3 コントロールの名前に齟齬が生じないように、 必要なら、下記コード側のオブジェクト名を書換えてください。 以下、UserForm1の WebBrowser1、WebBrowser2、WebBrowser3 に、シート上の図の内、 .AlternativeTextに"*.jpg" "*.jpeg"を登録してある画像の 最初に見つかる3点 を表示する記述です。 ' ' // Sub Re9322886w() Dim colCtrl As MSForms.Controls Dim s As Shape Dim cnt As Long Load UserForm1 Set colCtrl = UserForm1.Controls For Each s In ActiveSheet.Shapes If s.AlternativeText Like "*.jpg" Or s.AlternativeText Like "*.jpeg" Then cnt = cnt + 1 With colCtrl("WebBrowser" & cnt) .Visible = True .Navigate s.AlternativeText Do While .Busy Or .ReadyState < 3 DoEvents Loop End With End If If cnt = 3 Then Exit For Next UserForm1.Show End Sub ' ' // 他、 仮に、3つではなく、1つでもよければ、図をコピーして Imageコントロール上に表示させることもできます。 或いは、 Excelブックを保存してある圧縮フォルダを解凍するなどして、 Imageコントロール3つに表示させることもできます。 しかし、どちらも、難度は高く、また、処理が不安定な面も持ちます。 ということで、今回は、 WebBrowserコントロールでの表示方法のみ紹介しましたが、 お奨めは画像ファイルをダウンロードする設計、ということになります。 以上です。
関連するQ&A
- (vba) 画像抽出時、ファイル名を表示したい
vbaで指定するURLにある画像を抽出するものをつくりました。 一部------------------------------------ For Each e In oIE.Document.getElementsByTagName("img") If LCase(e.nameProp) Like "*.jpg" Or LCase(e.nameProp) Like "*.jpeg" Then Set s = ActiveSheet.Shapes(ActiveSheet.Pictures.Insert(e.href).Name) ------------------------------------ ユーザフォーム上にvbaで抽出したファイル名(例:abc.jpg等)を表示させたいのですが、どのように拡張記述すればよいでしょうか? 教えていただけたら幸いです。 理想は、ユーザフォームに ****.jpg ****.jpg ・・・・ トータル◯件 というようなのをフォーム上に出せたらうれしいです。
- ベストアンサー
- Visual Basic
- VBAでボタンを押すと指定サイトの画像抽出
お力を貸してください。 エクセルVBAで、テキストボックスとボタンを配置しました。 テキストボックス内にURLを入れてボタンを押すと、指定サイトに表示されている すべての画像を抽出して、エクセルに貼り付けるVBAを作りたいのですが、どのようなソースにすればよいでしょうか? 教えて頂けたら幸いです。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- EXCELのShape画像をVBAのフォームに表示するには
EXCELのShape画像をVBAのフォームに表示するには はじめまして EXCEL2007-VBAを勉強中です。 EXCELのShape画像をVBAのフォームへ表示したいのですが、どのように書けば よろしいのでしょうか
- ベストアンサー
- オフィス系ソフト
- VBAで実行押すまでExcel非表示にしたい
VBAでユーザフォームを作成しました。 Excelを立ち上げるとExcelシートの前にユーザフォームが出る状態なのですが、 ユーザフォームの実行ボタンを押すまでは非表示にしたいのですが、どのような記述をしたらよいでしょうか? マクロ的に実行ボタンを押すと結果が、Excel上に反映されるので、実行ボタンを押すまで非表示であれば大丈夫です どうか教えてください。
- ベストアンサー
- Excel(エクセル)
- vba エクセルに記載のURLを順次見に行き画像を
エクセルのB列に複数のURLが入っています。 1 http://~~~ 2 http://~~~ 等々 ユーザフォームのボタンを押すと、このURLを順次見に行き、別シートに シート番号1 上の1のURL内にある画像を張っていく(並べていく) シート番号2 上の2のURL内にある画像を張っていく(並べていく) というのを終わるまで繰り返していくVBAを作りたいです。 シートはURLの数だけ増やしていくイメージです。 どのようなプログラムにしたらよいでしょうか?
- 締切済み
- Visual Basic
- ユーザーフォームの表示について
Aというブックを選ぶと車というシートが一番最初にあるのですが、 これをvbaでshowと記述しても一旦他のシートを選んでからでないと 表示されません。 ブックを開いた瞬間にユーザーフォームを表示したいのですが、何か方法はあるでしょうか? どうしてもうまくいきません。。 やりたいことは、ブックを開いたら、フォーム(自分で作ったユーザーフォーム)を開いたときから表示させたいのです。知ってる方がいたら教えてくれると助かるのですが。
- 締切済み
- オフィス系ソフト
- (VBA) 実行すると指定URLにある画像を保存
タイトルの通りなのですが、vba で、実行すると、指定のURLにある「jpg」,「jpeg」画像を抽出し、指定フォルダに保存するものを作りたいのですが、どのようなコード記述にすればよいでしょうか? 教えていただけると幸いです。
- 締切済み
- Visual Basic
- ユーザーフォームに画像を表示
Excel2003のユーザーフォームに関しての質問です。 ユーザーフォームに画像を表示させるコントロールがあるのですが そのコントロールにシート内にある画像を表示させることは可能なのでしょうか。 (フォルダなどにある画像を表示させることは出来ます) もしそのような方法があるのでしたら 簡単なコードなどを教えていただけたらと思います。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- VBAで画像を表示する方法
VBA初心者です。ExcelのVBAでプログラミングの練習をしています。 早速ですが質問させてください。 ユーザーフォーム上にコマンドボタンをクリックすることにより画像を表示させることはできるのですが、これをユーザーフォームを開いた瞬間に自動的に表示させる方法はないのでしょうか? ちなみに現在は以下のようにしています。 Private Sub CommandButton1_Click() Image1.Picture = LoadPicture(" ") End Sub インターネットで調べてみても見つからないので質問させてもらいました。分かりにくい説明でしたらすみません。
- ベストアンサー
- Visual Basic
- Excel VBAでユーザーフォームだけ表示
Excel VBAでユーザーフォームだけ表示の設定をしました。エクセルの中身や、コードを修正したいのですが、エクセルを開くことができません。なんとかエクセルを開くことはできませんでしょうか?
- ベストアンサー
- オフィス系ソフト