加载中,请稍候…

资讯 英语
舍得茶室 方法
SuperMemo Rosetta
TellMeMore Aboboo
课程 视频
软件 电子书
学苑 博客
空间 微博

用Excel制作SuperMemo的词库(续)

2009-07-24 00:00:00   来源:舍得学习力博客  作者:admin

上文我们说到如何用Excel来制作SuperMemo的词库,虽然能够解决一些问题,但是,词库格式一复杂的话,还是让人有点望词兴叹。现在,就让舍得来晒一晒上文中所用到的Excel中的宏,顺便一起来研究一下如何在这个宏的基础上增加一些自己的小设计:

 

首先我们打开上文中的SuperMemo词库转换工具,如果你没有下载的话,可以点击这里下载:BrsBox下载

 

这回舍得换了台电脑,用的是Excel2003,大家莫见怪啊。点击菜单“工具->宏->宏”,或按快捷键“Alt+F8”,就可以看到原先建好的两个宏:Sheet1.生成QA1,Sheet2.生成QA2。

 

选择“Sheet1.生成QA1”,然后点击右边的“编辑”按钮,我们来看一下这个宏的内容:

Public Sub 生成QA1()
Dim i, n As Integer
Dim temp As String
i = [a65536].End(xlUp).Row ‘判断行数

‘生成文本文件
temp = ThisWorkbook.Path & “/QA词库1.txt”

Set fs =
CreateObject(“Scripting.FileSystemObject”)
Set a = fs.CreateTextFile(temp, True)

For n = 1 To i
a.WriteLine (“Q: ” & Cells(n, 1))
a.WriteLine (“A: ” & Cells(n, 2))
a.WriteLine
Next
a.Close

MsgBox
“词库成功生成!注意生成的文本文件还需转换成中欧ISO的字符集才可以使用!”


End Sub

熟悉编程语言的一看就能明白这个宏编写的思路,i是用来判断总行数的。问题的关键在于a.WriteLine,这是用来给行首加上“Q:”或“A:”的,假如你的词库格式是“英文、中文1、中文2”,象模板1那样排成3列,那你只要在“a.WriteLine
(“A: ” & Cells(n, 2))”下面加一行“a.WriteLine (“A: ”
& Cells(n, 3))”,就可以实现:

 

 

Q:(英文)

 

 

 

A:(中文1)

 

 

 

A:(中文2)

 

这样的效果。这里的“1、2、3”指的是列数。”a.WriteLine (“A: ” &
Cells(n, 2))”中的“Cells(n, 2)”就是第n行第2列的单元格的内容,依此类推。

 

再来看看Sheet2.生成QA2里的内容:

Public Sub
生成QA2()
Dim i, n As Integer
Dim temp As String
i = [a65536].End(xlUp).Row ‘判断行数

‘生成文本文件
temp = ThisWorkbook.Path & “/QA词库2.txt”

Set fs =
CreateObject(“Scripting.FileSystemObject”)
Set a = fs.CreateTextFile(temp, True)

For n = 1 To i
Step 2
a.WriteLine (“Q: ” & Cells(n, 1))
a.WriteLine (“A: ” & Cells(n + 1, 1))
a.WriteLine
Next
a.Close

MsgBox
“词库成功生成!注意生成的文本文件还需转换成中欧ISO的字符集才可以使用!”

End Sub

前面的基本上一样,不同之处在于定义n的时候多了个”step 2″,这里的”step
2″就表示执行完一个循环的指令后向下跳2行再执行下一遍指令。我们仍以上面那种格式的词库为例,不过由3列变成了3行,分别为第一行英文,第二行是中文1,第三行是中文2。首先我们要将“step
2”改为“step 3”,然后在“a.WriteLine (“A: ” & Cells(n + 1,
1))”下加上一句“a.WriteLine (“A: ” & Cells(n + 2,
1))”,生成的结果和上例相同。

了解了其中的原理后,那就可以增加一点点变化了,比如说象这样的词库:

money
n.货币, 钱, 金钱
5mQni
new
adj.新的, 初见的, 更新的
nju:
together
adv.共同, 一起, 合起来, 集拢地
tE5^eTE
work
n.工作, 劳动, 操作, 职业, [物]功, 手工, 作品, 机件
wE:k

我们要把第三行的音标放在第一行后面,并加上音标字体的定义和中括号,那你可以将模板二做这样的修改:

For n = 1 To i
Step 3
a.WriteLine (“Q: ”
& Cells(n, 1)
& ”
[<font face='Kingsoft Phonetic
Plain'>" & Cells(n + 2, 1)
&
"</FONT>]“)
a.WriteLine
(“A: ” & Cells(n + 1, 1))
a.WriteLine
Next
a.Close

注意本例中用到的是金山的音标字体,若词库用到的别的字体的,应将字体名称进行修改,切勿生搬硬套。

其实细分解一下,在a.WriteLine中,只不过是用“&”来把你要写入的内容拼凑起来而已,究竟怎么玩就看大家的自由发挥了。

至于ThisWorkbook则是用来定义两个宏的按钮的,可以带来一点点方便。如果你定义了其它的宏,倒是可以用来给每个宏增加一个按钮,具体的定义方式只要“依样画葫芦”即可。

 



【TAGS】
supermemo 使用 技巧 入门 教程 新手 指南 词库 制作
【相关文章】
  • 【十二月福利】《驾考宝典》之科目四(SuperMemo)
  • 如何打开SuperMemo课程中隐藏的练习?
  • SuperMemo新手指南之版本的选择
  • 16分钟!重新制作一季《六人行》只需16分钟!
  • SuperMemo UX新手指南:如何手动加入音频,并自动播放
  • SuperMemo UX问答篇:如何用SuperMemo来学好拼写?
  • SuperMemo问答篇:如何用SuperMemo来学习一门编程语言
  • SuperMemo UX问答篇:巩固练习中的评分并不影响学习进度
  • SuperMemo UX问答篇:随时修改课程内容
  • 如何利用SuperMemo词库转换精灵制作iphone版词库?
  • 来顶一下
    返回首页
    返回首页

     分享: 分享到QQ空间 转贴到开心网 分享到校内网 添加到百度搜藏 Sina ViVi 添加Google书签 Yahoo收藏 添加到鲜果 转发到新浪微博 我要评论】【进入论坛】【社区空间
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表
    关于我们 | 诚聘英才 | 友情链接 | 联系我们 | 意见反馈 | 网站地图 | 版权申明 |
    舍得学苑 备案号:冀ICP备11024081号-1
    Copyright © 2009-2015 eMagic.org.cn, All rights reserved.