web-dev-qa-db-ja.com

Excelスプレッドシート(​​またはoo calc)にURLでWebから画像を埋め込む

Webの画像をExcelスプレッドシートに埋め込みたい。

画像がhtmlページに埋め込まれるのと同じ方法で、画像をURLで埋め込みたいと思います。画像をダウンロードして通常の画像として挿入したくありません。

そして、URLだけでなく、画像を表示したい(もちろん、オンラインの場合)。

これはできますか?もしそうなら、どのように?

できればExcelで、しかしOO calcは大丈夫でしょう

2
flybywire

Excelで、挿入> 画像> ファイルから...に移動し、挿入する画像のURLを入力します。試したことがないので、画像が自動的に更新されるかどうかはわかりません。

2
alex

これは、tomelin5によって共有された回答の私の修正版です。これはExcel2016で機能し、おそらく(はるかに)以前のバージョンでも機能します。

私の場合、 Microsoft PowerApps app to ペン入力コントロールを使用して署名を収集および保存 を作成しました。

脇:PowerAppを作成しようとしているためにこれを読んでいる場合:コントロールのコンテンツをスプレッドシートに保存するための魔法のソースシートは Patch 関数です。

それが機能する方法は、ペン入力コントロールが画像をPNGファイルとしてディレクトリに保存し、PNGファイルへの相対アドレスをスプレッドシートのセル内のURLとして保存することです。 .\MyAppName_images\x829ca33re2d6114588e59ca45829d21.png

これらの署名をExcelスプレッドシートに表示して、アプリから入力した他のデータを使用して並べ替えられるようにしたかったのです。 tomelin5のソリューションは、私のソリューションの基礎として非常にうまく機能し、リミックスを共有する必要があると考えました。

私のソリューションは、URLを列「A」(1)に保存し、画像自体を列「I」(9)に配置します。また、行の高さを列9の列幅に調整しますが、その動作を変更/削除することをお勧めします。

すべてのURLは、A2から始まり、列Aの最後に入力されたセルまで処理されます。私のソリューションは例外処理を行わないため、画像が利用できない場合に必要になることに注意してください。

Sub Button1_Click()
    ' https://msdn.Microsoft.com/en-us/library/office/aa221353(v=office.11).aspx
    ' http://www.excelhowto.com/macros/loop-range-cells/
    ' https://www.excelcampus.com/vba/find-last-row-column-cell/
    ' https://superuser.com/questions/52760/embed-pictures-from-web-by-url-in-Excel-spreadsheet-or-oo-calc#

    Dim Pic As Picture
    Dim SrcRange As Range
    Dim LastRowA As Long

    LastRowA = Cells.Find(What:="*", _
                    After:=Range("A1"), _
                    LookAt:=xlPart, _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious, _
                    MatchCase:=False).Row

    Set SrcRange = ActiveSheet.Range(Cells(2, 1), Cells(LastRowA, 1))

    SrcRange.Rows().RowHeight = ActiveSheet.Columns(9).Width

    For Each Cell In SrcRange.Cells
        With Cell
            Set Pic = .Parent.Pictures.Insert(.Value)
            With .Offset(, 8)
                Pic.Top = .Top
                Pic.Left = .Left
                Pic.Height = .Height
                Pic.Width = .Width
                Pic.Border.Color = vbRed
            End With
        End With
    Next
End Sub
1
user2021355

解決策は、画像を取得してワークシートに埋め込むVBAマクロを作成することだと思います。

この画像を自動的に更新する唯一の方法だと思います。

0
harrymc

以下の手順に従ってください。

  1. タブの挿入 '画像'をクリックします

  2. 画像へのURLを挿入します(jpg | pngなど)ORデスクトップマシンの画像へのパスを選択します

  3. 挿入ボタンの下向き矢印をクリックし、挿入とリンクを選択します

  4. これで、Excelファイルを閉じて再度開くたびに、更新された画像が表示されます(変更されている場合)。

enter image description here

0
Anmol Saraf

URLがC1の場合、画像はB1に配置されます(Excel 2003および2013でテスト済み)。

Sub Test()
    Dim Pic As Picture
    Application.ScreenUpdating = False
    With ActiveSheet.Range("C1")
        Set Pic = .Parent.Pictures.Insert(.Value)
        With .Offset(, -1)
            Pic.Top = .Top
            Pic.Left = .Left
            Pic.Height = .Height
            Pic.Width = .Width
        End With
    End With
    Application.ScreenUpdating = True
End Sub

ソース

0
tomelin5