零基础学Excel VBA-WE018「选项按钮,完美生成单选题试题」

一、简单演示

零基础学Excel VBA-WE018「选项按钮,完美生成单选题试题」

零基础学Excel VBA-WE018「选项按钮,完美生成单选题试题」

零基础学Excel VBA-WE018「选项按钮,完美生成单选题试题」

二、关键对象/方法的分析

本期延续上期的内容,介绍另一种控件——选项按钮。

OLEObject

包括 ActiveX 控件,一个链接式或内嵌 OLE 对象。

零基础学Excel VBA-WE018「选项按钮,完美生成单选题试题」

ActiveX 控件的属性非常多,包括 Shape 常见的一些属性,它都有,比如:

  • Left,左侧距离
  • Top,顶端距离
  • Width,宽度
  • Height,高度
  • TopLeftCell,左上角所在的单元格

Placement,与所在的单元格之间的附属关系

此外,它还有些比较少见的属性,比如:

  • MousePointer,鼠标指针的样式
  • TripleState,仅对复选框或切换按钮有效,增加第三种选择状态
  • SpecialEffect,改变样式
  • Caption,标题
  • GroupName,组别
  • LinkedCell,与控件关联的单元格

三、用法展示及说明

1. 通过宏自动生成选项按钮并定义属性

跟复选框一样,在 插入 菜单和 开发工具 菜单下面,分别有两种选项按钮,本期就不再测试它们的不同。

我们先试试这些选项按钮,是不是能起到单选题的效果——

我们试几次,确实每道题,只能有其中一个处于选中状态,而不同的题,选项按钮之间并不会有相互影响。那么,怎么确定选项按钮的分组的呢?答案就是——通过选项按钮的一个属性 GroupName 来确定的,后面我们再回过来看。

我们先从生成按钮慢慢往下走。

rmax,懒人必备的变量。

cmax,这里取的是每一行的最大列号,所以即使不同题目选项数量不同的时候,也能准确生成准确数量的选项。

Forms.OptionButton.1 这是选项按钮的程序设计标识符,在之前那个表可以查到。

Width,Height,Left 和 Top,定义选项按钮的宽度,高度以及位置。

接着的后面这些,就是对按钮其它的一些属性设置。

GroupName,就是刚才提到的,确定选项按钮如何进行配对的一个重要属性。如果 GroupName 一样的,那么这些选项按钮就是一组的,只能有一个按钮处于选中状态。我们这里,同组的按钮,都在同一行,所以,直接用所在单元格的 行号 作为 GroupName 就可以了。

Caption,选项按钮的标题内容,取对应单元格的内容就可以了,然后,把这个单元格的内容清空。

2. 结果输出为PDF

我们来到另外一个子过程OptionAnswer()。比较简单的一个子过程,跟上期一样,就是把 Excel 另存为 PDF 格式,基本是些格式化的语句了,不啰嗦。


分享到:


相關文章: