如何以编程方式从word文件中拾取列表项并生成其他几个?

时间:2013-04-17 13:13:17

标签: vba ms-office word-vba

我不太了解MS Office VBA。我在word文件中有很多(字面上的)测验问题。

任务是为学生创建试卷。 Word文件包含900个测验问题。这是word文件的结构:

H1: Chapter Name
H2: Level-1 questions
li: Questsions (numbered list)
H3: Answer key to Level-1 questions
li: Answers to level-1 questions (numbered list)
H2: Level-2 questions
H3: Answer key to level-2 questions
li: Answers to level-2 questions (numbered list)

H1: Another Chapter Name
...
...

我想从我的问题库中随机生成测试(其他单词文件)。几个条件是:

  1. 每章和每个级别必须至少挑选一个问题。
  2. 已经挑选的问题不得被选入任何其他测试。
  3. 还必须为生成的测试生成答案密钥。

    问题:

    1. Office VBA的期望是否过高?还是可以做到?
    2. 怎么做?我需要考虑的所有事情是什么?
    3. 我不知道该做什么或如何继续。

1 个答案:

答案 0 :(得分:0)

说实话......使用VBA进行MS Word会受到折磨......;(

有更高效的工具......你需要有一个数据库来存储问题,用户的答案和正确的答案。然后你需要编写提供伪随机抽奖系统的应用程序(参见第二个条件:已经选择的问题不得被选入任何其他测试。

示例代码:

当然,您可以将MS Word文档视为“数据库”,但代码实现将非常困难。我是这样看的:

  1. 逐一阅读段落
  2. 检测格式
    • 如果格式化为标题1,则将文本添加到章节
    • 的集合(或者数组或字典)中
    • 如果格式为标题2,则将文本添加到问题集合
    • 等等......答案和正确答案
  3. 循环收集章节并随机选择问题
  4. 将章节和问题保存到其他文件中,直到未达到问题数
  5. 返回点号。 3直到未达到评估/考试次数
  6. 结论:忘记VBA,选择.NET编程语言(C#,VB.NET)或使用免费的在线解决方案(例如:The internet quiz database)。