前景提要

之前我们学习了利用VBA来生成条形码的方法,在上节的学习中,我们也是接触了一些其他的非VBA的方法来实现条形码,条形码的出现,肯定已经很长时间了,所以用VBA能实现条形码,并不奇怪

今天我们要生成的是二维码,二维码应该是最近几年才兴起的,随着微信,支付宝等一系列新型的APP卡开始广为流传的,那么面对这样一个新兴的东西,VBA还能应对吗?VBA还能像二维码一样,轻松生成吗?

场景说明

这里我们还是利用昨天的数据场景,不同的是我们今天要讲这些数据转化成为二维码
今天我们着重介绍VBA的方法

代码区

Sub 生成二维码()

Dim rng As Range, a As Range

Notice = MsgBox("默认还在右侧生成二维码,请确认右侧单元格无数据", vbYesNo + vbInformation)

If Notice = vbYes Then

Set rng = Application.InputBox("请选择需要转码的区域", "区域的选择", , , , , , 8)

For Each a In rng

URL = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" & a

With a.Offset(0, 1)

mt = .Top

ml = .Left

mw = .Width

mh = .Height

ActiveSheet.Shapes.AddShape(msoShapeRectangle, ml, mt, mw, mh).Select

Selection.ShapeRange.Fill.UserPicture URL

End With '填充单元格的作用

Next a

Else

Exit Sub

End If

End Sub

直接来看看效果
从上面的动图中,可以看到代码也是成功的生成了我们场景的二维码

代码解析

今天我们并没有利用太多的方法,我们使用的是VBA和网络相结合的方法。
今天代码中生成二维码的原理就是调用了网络的API

VBA还可以和网络直接形成交互,这样的功能你一定没有想到,如果你学习的足够的深入的话,你甚至可以用VBA来做网络爬虫,爬取其他网站中的数据,这个利用API就算是小儿科了。

代码上面并没有太多要讲解的,属于即用型代码

大家从上面的动图中,也可以看到,代码在执行的过程中,会有一段时间的空白期
这段时间就是从网络中获取数据的过程
调用API的一个弊端就是,可能会到碰到访问超时,生成二维码的时间比较长,这点大家在使用的时候要留意。
举报/反馈

杨sir说科技

1430获赞 330粉丝
关注
0
0
收藏
分享