案例应用场景
电商,数据库里能拉取对应的商品图片url,业务测想查看商品图片,这里记录下简短代码块;可以在插件功能区设置两个简易的按钮,用户可以点击单个url转化,或者批量转化。
代码demo
1. 添加图片
Sub url_to_picture(control As IRibbonControl)
' 下载单个图片,该样例为excel功能区回调程序案例
' 样例url
' https://pics4.baidu.com/feed/314e251f95cad1c8dd6c162f5b8c5b07c83d5127.jpeg
Dim rng As Range
If Selection.Cells.Count = 1 And InStr(Selection.Value, "http") > 0 Then
Set rng = Selection
rng.EntireRow.RowHeight = 200
rng.Offset(0, 1).EntireColumn.ColumnWidth = 25
url_string = rng.Value
With ActiveSheet
On Error GoTo line1
Set pic = .Pictures.Insert(url_string) ' 添加图片到工作表
On Error GoTo 0 ' 恢复报错
' 如果成功插入图片
If Not pic Is Nothing Then
' 设置图片位置
With pic
.Top = rng.Top
.Left = rng.Offset(0, 1).Left
.height = rng.Offset(0, 1).height
' .width = rng.Offset(0, 1).width
End With
End If
End With
End If
End ' 程序无异常,此处结束
line1:
MsgBox "请先点击url所在单元格(一个)再点击该按钮加载图片" & Chr(10) & "加载前请确认url是否有效", vbInformation, "温馨提示"
End Sub
如果批量转化,可以在url单元格所在列的右侧插入一列(比如在第三列插入一列:columns(3).insert
),然后把图片放在右侧这一列,设置对齐;
2. 清空工作表所有图片
Sub DeleteAllPictures(control As IRibbonControl)
Dim pic As Shape
' 遍历工作表中的所有形状
For Each pic In ActiveSheet.Shapes
' 检查形状是否为图片
If pic.Type = msoPicture Or pic.Type = msoLinkedPicture Or pic.Type = msoEmbeddedOLEObject Then
' 删除图片
pic.Delete
End If
Next pic
End Sub