哈喽,大家好!各位粉丝在办公过程中,有没有遇到这种情况呢:如何在excel工作表的制定单元格区域以指定大小且紧贴单元格的方式插入外部的图片文件呢?甚至是以批量的形式插入这些外部文件图片呢?我想啊,估计很少有人去在excel单元格中以紧贴的方式插入图片文件,也可能觉得没有多大意义吧。但是呢,碰巧有一个我们学院的一个外分院的同事好友,在上周请教,让我指点下如何在excel表格中批量插入学生照片(他说学生照片文件名字已按照学号后两位数字命名的文件)信息的,以便打印。他说一个个手动插入太慢,且效率低下。问我该怎么办?
为此,我仔细琢磨了一阵子,终于通过VBA高级办公技术给他解决这个问题。
如何实现呢?下面,我们还是以干货的形式给大家分享一下我的设计及运行测试过程吧!在这里,事先说明下,为了学生的隐私,我随便从网上找了一些寸照照片作为案例吧。希望大家不要介意!
一、设计前的素材准备
从网上下载8张寸照照片作为本案例的设计素材。如下窗口截图所示
图1 所用的寸照素材
二、excel工作表中简单的界面设计
(一)前端界面—插入两个表单按钮
按钮上的显示文字分别为“批量插入素材图片”和“删除所插入的图片”,以及它们的名称命名也和按钮上显示的文字内容一致。高度和宽度均设为:高0.85厘米,宽3.84厘米(对应在VBA后台代码中的高是24,宽是108.75)。如下截图所示
图2 前端插入两个表单按钮的界面设计
(二)VBA后台界面—插入一个用于选择待插图片尺寸参数选择的窗体
插入一个用于选择待插图片尺寸选择的窗体,以体现交互界面更加友好。具体属性设置如下
(1)窗体的名称“Select_Size_Of_Inserted_Pic”,Caption“待批量插入的图片尺寸选择”。
(2)插入一个框架,名称“Frame1”,Caption“待插入图片的尺寸选择”
(3)在“Frame1”框架里插入两个组合框(复合框),名称分别为“ComboBox_Height”、“Label_width”
(4) 在“Frame1”框架里插入三个标签,名称分别为“Label1”、“Label_height”、“Label_width”,Caption分别为“高 宽”、“--请选择--” 、“--请选择--” 。后两个标签以起到组合框里选择的友好提示作用
(5) 在“Frame1”框架里插入一个命令按钮,名称“ConfirmBtn”,Caption“确定(O)”
最终窗体的整体布局如下图所示
图3 后台窗体界面设计
三、批量插入Excel单元格的功能代码设计
(一)窗体设计代码
Private Sub UserForm_Initialize() '窗体初始化操作
Label_height.Visible = True '将在高度选择的提示标签显示出来,以此作为友好提示
Label_width.Visible = True '将在宽度选择的提示标签显示出来,以此作为友好提示
CommandButton1.SetFocus '将焦点选中添加的CommandButton1按钮以实现屏蔽光标在组合框ComboBox_Height中闪动效果
ComboBox_Height.Style = fmStyleDropDownList '将高度选择组合框设定只能选取
'ComboBox_Height.
ComboBox_Width.Style = fmStyleDropDownList '将宽度选择组合框设定只能选取
For i = 10 To 100 '初始化拟定高度、宽度组合框选择值的范围(10--100)
ComboBox_Height.AddItem i
ComboBox_Width.AddItem i
Next
End Sub
Private Sub Frame1_Click()
CommandButton1.SetFocus '将焦点选中添加的CommandButton1按钮以实现屏蔽光标在组合框中闪动效果
End Sub
'窗体关闭卸载的事件
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = False '取消关闭卸载窗体为假(即允许关闭卸载窗体)
Close_Form_State = True '一旦做了关闭卸载窗体操作,将关闭窗体状态设置为真
End Sub
Private Sub ComboBox_Height_Change() '一旦选择高度组合框内容,立即隐藏选择提示标签
Label_height.Visible = False
CommandButton1.SetFocus '将焦点选中添加的CommandButton1按钮以实现屏蔽光标在组合框ComboBox_Height中闪动效果
End Sub
Private Sub ComboBox_Width_Change() '一旦选择宽度组合框内容,立即隐藏选择提示标签
Label_width.Visible = False
CommandButton2.SetFocus '将焦点选中添加的CommandButton2按钮以实现屏蔽光标在组合框ComboBox_Width中闪动效果
End Sub
Private Sub ConfirmBtn_Click()
'以下是分类判定选择尺寸参数情况
If ComboBox_Height.SelLength = 0 And ComboBox_Width.SelLength = 0 Then
MsgBox "高、宽尺寸参数均未选择,请选择高、宽尺寸!