Excelにおいて、画像URL(フルパス)が入力されている列があったとして
─────────────────────
例:
A| |C|D|F|
https://example.com/img/img1.jpg
https://example.com/img/img2.jpg
https://example.com/img/img3.jpg
─────────────────────
Aの列それぞれの画像パスをFの列に表示をすることは可能なのでしょうか。
既出のもも試してみたのですが、VBAの知識が浅く、思った通りにできませんでした。
やり方をご教授いただきたいです。
ご自身で試されたコードと、どのようにうまくいかなかったのか教えてください。
-------------------
Dim c As Range
For Each c In Range("A2:A200")
With ActiveSheet.Pictures.Insert(fileName:=c.Value)
.ShapeRange.LockAspectRatio = msoTrue
.left = c.Offset(, 1).left
.Top = c.Offset(, 1).Top
.Width = c.Offset(, 1).Width
If .Height > c.Offset(, 1).Height Then
.Height = c.Offset(, 1).Height
End If
End With
Next
エラー文:
PicturesクラスのInsertプロパティを取得できません。
-------------------
ご指摘いただきありがとうございます。
最期に試したのが、上記の内容です。
コードを試してみました。下記のようにローカルファイルですと動作するようです。
C:\Users\Desktop\XX.jpg
excel vbaでクローリングして外部サイトから外部画像をとってきたいという質問なのでしょうか・・。
それにより質問の意味やVBAのコードが全くが違うものになると思います。
mako1972 さん
回答ありがとうございます。
説明不足でした。おっしゃるとおり、ローカルではなく、インターネット上の画像のパスからとってきて表示をさせたいです。
すでに回答していますが、インターネット上の画像パスからも同じコードでとれますよ。ただし、Web側で画像を保存できないようにされていたらその限りではありません。
スクレイピングする前提でほかの方のご指摘を参照いただくようお願いいたします。
スクレイピングですとInternetExplolerをvbaで操作するなど(IEは使わない方がいいですが)
VBAのコードが変わってきます。
他の方がおっしゃる通り今後の拡張性やふるまいが変わる可能性がありますので・・。
質問の内容としてはExcel VBAでスクレイピングして画像を取得したい。
という質問だと思います。
radames1000 さん
mako1972 さん
回答していただいたコードで対応することができました。
ありがとうございました!
回答1件
あなたの回答
tips
プレビュー