如何在Excel WebBrowser控件上调整图像大小

艾哈迈德·哈梅斯(Ahmed Khames)

我有名为的WebBrowser控件WebBrowser1

我使用此代码通过其URL显示图像。

WebBrowser1.Navigate ("https://cdn2.iconfinder.com/data/icons/modern-latin-alphabet-lowercase-and-uppercase-lett/154/alphabet-uppercase-letter-z-512.png")

它的效果很好,但是图像比WebBrowser控件大。

因此,我需要调整图像大小以适合WebBrowser控件的大小。

煎蛋卷

尝试以下代码以适合图像宽度:

Sub Test()
    
    UserForm1.Show
    UserForm1.WebBrowser1.Navigate "about:blank"
    UserForm1.WebBrowser1.Document.Write "<img style=""width:100%;"" src=""https://cdn2.iconfinder.com/data/icons/modern-latin-alphabet-lowercase-and-uppercase-lett/154/alphabet-uppercase-letter-z-512.png"">"
    
End Sub

现在,您可能要同时适合图像的高度和宽度,毕竟,object-fit幸运的是,所有现代浏览器都支持CSS ,IE除外;)因此,要使图像适合视口并保留纵横比,必须找到最小的高度和宽度比例。宽度,并通过将其设置为100%使图像适合该尺寸。可以通过嵌入文档中的CSS或javascript来完成,但是出于VBA的目的,以下代码效果很好。另外,WebBrowser控件的init和单独的过程用于显示定义的图像,从而增加了健壮性。

假设UserForm1使用WebBrowser控件将ShowModal设置为False。将以下代码放在UserForm模块中:

Private Sub UserForm_Initialize()
    
    With Me.WebBrowser1
        .Navigate "about:blank"
        .Document.Write "<body style='background-color: buttonface; overflow: hidden;'></body>"
    End With
    
End Sub

Public Sub displayImage(src)
    
    With Me.WebBrowser1
        .Document.Close
        .Document.Write "<body id='body' style='background-color: buttonface; overflow: hidden; margin: 0; text-align: center;'><img id='img' src='" & src & "'></body>"
        Dim img
        Set img = .Document.getElementById("img")
        Dim body
        Set body = .Document.getElementById("body")
        If body.ClientHeight / img.ClientHeight < body.ClientWidth / img.ClientWidth Then
            img.Style.Height = "100%"
        Else
            img.Style.Width = "100%"
        End If
    End With
    
End Sub

放入Test1标准模块并调用它以显示图像:

Sub Test1()
    
    UserForm1.Show
    UserForm1.displayImage "https://i.stack.imgur.com/B8imb.gif"
    
End Sub

您也可以将base64编码的图像嵌入到代码中(使用任何在线Base64图像编码器),请参见Test2示例:

Sub Test2()
    
    UserForm1.Show
    UserForm1.displayImage _
        "data:image/png;base64," & _
        "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADoklE" & _
        "QVR4nO3dwW2DQBBAUYjSaWSKikytTgMcgmS8K/57BaA5fc2BgXV5PF8LkPQ1egBgHAGAMAGAMAGAMAGA" & _
        "MAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGA" & _
        "MAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAsO/RA/AZr9+f0SPcyrrto0d4CxsAhAkA" & _
        "hAkAhAkAhAkAhAkAhAkAhAkAhAkAhAkAhAkAhLkF4NDV77qfvU2YbZ67sAFAmABAmABAmABAmABAmABA" & _
        "mABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmP8CcGi27+TP" & _
        "Ns9d2AAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgzC1AxLrto0f4KLcD/2MDgDABgDABgDAB" & _
        "gDABgDABgDABgDABgDABgDABgDABgLDb3AJ49/vearcMn2IDgDABgDABgDABgDABgDABgDABgDABgDAB" & _
        "gDABgDABgLDb3AKcdfW75WdvE8zDCDYACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMA" & _
        "CBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACMv+F2C279KbhxFsABAmABAmABAmABAmABAmABAm" & _
        "ABAmABAmABAmABAmABCWvQVYt/3S5599l36meWaahWvZACBMACBMACBMACBMACBMACBMACBMACBMACBM" & _
        "ACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACAs+1+A2b5NP9M8M83CtWwAECYA" & _
        "ECYAECYAECYAECYAECYAECYAECYAECYAECYAEJa9BZjNuu2XPt/7/RyxAUCYAECYAECYAECYAECYAECY" & _
        "AECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECY" & _
        "AECYAECYAECYAECYAECYAECYAECYAECYAEDYujyer9FDAGPYACBMACBMACBMACBMACBMACBMACBMACBM" & _
        "ACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBM" & _
        "ACBMACBMACBMACBMACBMACBMACBMACBMACDsD0NPOfMjSKzzAAAAAElFTkSuQmCC"
    
End Sub

我发现删除WebBrowser控件下陷边框的最简单方法是...通过将它们移到UserForm边框之外(通过将Top和Left设置为负,Height和Width大于UserForm)来简单地“裁剪”,或在Frame控件中进行相同的操作,其中SpecialEffect设置为0,并且标题为空。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android上调整Yuv图像的大小

来自分类Dev

如何在iOS上调整位图的大小

来自分类Dev

如何在PageViewController上调整ViewController的大小

来自分类Dev

如何在每个维度上调整体积图像的大小或形状?

来自分类Dev

如何在<li>网格上调整图像和文本的大小并居中?

来自分类Dev

如何在Excel中调整图表大小

来自分类Dev

如何使用AppScript在Gmail上调整嵌入式图像的大小?

来自分类Dev

在python上调整图像大小后如何读取二进制文件?

来自分类Dev

如何在Windows上调整所选jQuery下拉列表的大小

来自分类Dev

如何在导航弹出窗口上调整UIPopoverPresentationController的大小?

来自分类Dev

如何在Matlab上调整图形轴的大小?

来自分类Dev

如何在KendoUI / Angular Window上调整Highcharts图表的大小

来自分类Dev

如何在 Xubuntu 上调整 Xfce 4 面板的大小?

来自分类Dev

如何在ImageDataGenerator中调整图像大小

来自分类Dev

如何在UIWebView中调整图像大小?

来自分类Dev

如何在滚动时调整图像大小?

来自分类Dev

如何在Skype上调整网络摄像头图像?

来自分类Dev

如何在Skype上调整网络摄像头图像?

来自分类Dev

如何使控件相对于WPF中的背景图像移动/调整大小

来自分类Dev

调整窗口大小时如何调整ListView控件的大小

来自分类Dev

调整窗口大小时如何调整ListView控件的大小

来自分类Dev

如何在CWnd中调整WPF控件的大小?

来自分类Dev

如何在 Swift 中的分段控件中调整 textLabel 的大小?

来自分类Dev

如何在 DevExpress LayoutPanel 中调整 WPF 用户控件的大小

来自分类Dev

UWP:如何调整图像大小

来自分类Dev

如何调整按钮图像的大小?

来自分类Dev

如何使Winforms控件随窗口调整大小?

来自分类Dev

如何在运行时从左侧调整可调整大小的面板控件的大小?

来自分类Dev

在TableView上调整图像大小

Related 相关文章

  1. 1

    如何在Android上调整Yuv图像的大小

  2. 2

    如何在iOS上调整位图的大小

  3. 3

    如何在PageViewController上调整ViewController的大小

  4. 4

    如何在每个维度上调整体积图像的大小或形状?

  5. 5

    如何在<li>网格上调整图像和文本的大小并居中?

  6. 6

    如何在Excel中调整图表大小

  7. 7

    如何使用AppScript在Gmail上调整嵌入式图像的大小?

  8. 8

    在python上调整图像大小后如何读取二进制文件?

  9. 9

    如何在Windows上调整所选jQuery下拉列表的大小

  10. 10

    如何在导航弹出窗口上调整UIPopoverPresentationController的大小?

  11. 11

    如何在Matlab上调整图形轴的大小?

  12. 12

    如何在KendoUI / Angular Window上调整Highcharts图表的大小

  13. 13

    如何在 Xubuntu 上调整 Xfce 4 面板的大小?

  14. 14

    如何在ImageDataGenerator中调整图像大小

  15. 15

    如何在UIWebView中调整图像大小?

  16. 16

    如何在滚动时调整图像大小?

  17. 17

    如何在Skype上调整网络摄像头图像?

  18. 18

    如何在Skype上调整网络摄像头图像?

  19. 19

    如何使控件相对于WPF中的背景图像移动/调整大小

  20. 20

    调整窗口大小时如何调整ListView控件的大小

  21. 21

    调整窗口大小时如何调整ListView控件的大小

  22. 22

    如何在CWnd中调整WPF控件的大小?

  23. 23

    如何在 Swift 中的分段控件中调整 textLabel 的大小?

  24. 24

    如何在 DevExpress LayoutPanel 中调整 WPF 用户控件的大小

  25. 25

    UWP:如何调整图像大小

  26. 26

    如何调整按钮图像的大小?

  27. 27

    如何使Winforms控件随窗口调整大小?

  28. 28

    如何在运行时从左侧调整可调整大小的面板控件的大小?

  29. 29

    在TableView上调整图像大小

热门标签

归档