第一篇:在WORD中用VBA制作作文稿纸
在WORD中用VBA制作作文稿纸
语文考试中,经常用到作文稿纸,Word中带有稿纸模板,但有诸多限制(如纸型、行列数等相对固定),在试卷排版时颇为不便。其实,我们可以利用Word的VBA编程,通过绘制表格制作作文稿纸。
一、编制程序
1.启动Word,连续点击“工具”,“宏”,“录制新宏...”,在弹出的对话框中填写宏名(此例为“作文稿纸”),选择宏要保存的位置(可以保存在模板中,也可以保存在当前文档中),如图1所示。
2.为了方便操作,可以将此宏以按钮的形式指定在工具栏中。单击“录制宏”对话框中的“工具栏”按钮,在弹出的“自定义”对话框的右侧,选中宏命令“Normal.NewMacros.作文稿纸”,用鼠标将其拖动复制到“常用”工具栏,在其上单击右键,选择相应的命令修改名称,为其编辑一个小图标,结果如图2所示。
3.单击“录制宏”对话框中的“关闭”按钮,屏幕上将出现一个“录制宏”工具栏,单击停止按钮停止录制。
4.依次选择“工具”、“宏”、“宏…”,在对话框中选择宏名“作文稿纸”,单击“编辑”按钮,打开vba编程窗口。录入如下代码:
Sub 作文稿纸()UserForm1.CommandButton1.Enabled = True UserForm1.Show End Sub
5.插入一个窗体UserForm1,在其中插入4个标签,4个文本框,一个按钮。分别设置它们的相关属性,其中,“行数”文本框的 “text”属性值设为50,“列数”文本框的“text”属性值设为20,“行距”文本框的“text”属性值设为0.2,“首尾空行高度”文本框的“text”属性值设为0.2,如图所示。
6.双击命令按钮CommandButton1,录入以下代码:
Private Sub CommandButton1_Click()Dim n As Integer '定义一个变量为整数型 n = 1 ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=Val(TextBox1.Text)* 2 + 1, NumColumns _ :=Val(TextBox2.Text), DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed Selection.EndKey Unit:=wdRow, Extend:=True Selection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNone Selection.Tables(1).Rows.HeightRule = wdRowHeightExactly '设定表格行高为固定值
Selection.Tables(1).Rows.Height = CentimetersToPoints(Val(TextBox3.Text))'设置表格行高为设置值,作为行间距 Selection.Tables(1).Rows(1).Height = CentimetersToPoints(Val(TextBox4.Text))'设置第一行行高为设置值 Do While n < Val(TextBox1.Text)+ 1 Selection.EndKey Unit:=wdLine Selection.MoveRight Unit:=wdCharacter, Count:=2 '将插入点移至下一行
Selection.Tables(1).Rows(2 * n).Height = Selection.Tables(1).Columns(1).PreferredWidth '设行高等于列宽
Selection.EndKey Unit:=wdRow, Extend:=True Selection.EndKey Unit:=wdLine Selection.MoveRight Unit:=wdCharacter, Count:=2 '将插入点移至下一行
Selection.EndKey Unit:=wdRow, Extend:=True Selection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNone '去除此行的内部框线,只余边框 n = n + 1 Loop Selection.Tables(1).Rows(Val(TextBox1.Text)* 2 + 1).Height = CentimetersToPoints(Val(TextBox4.Text))'设置末行高为设置值
Selection.EndKey Unit:=wdRow, Extend:=True Selection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNone Selection.Tables(1).Rows.Alignment = wdAlignRowCenter '表格居中
With Selection.Tables(1).Borders(wdBorderLeft).LineWidth = wdLineWidth150pt.Borders(wdBorderRight).LineWidth = wdLineWidth150pt.Borders(wdBorderTop).LineWidth = wdLineWidth150pt.Borders(wdBorderBottom).LineWidth = wdLineWidth150pt '设定表格边框为粗线 End With Selection.EndKey Unit:=wdLine Unload Me End Sub
二、使用
与Word的稿纸向导或稿纸加载项相比,此程序做出的稿纸显然不适于在文档中直接使用,但在制作作文试卷时优势明显。其一,不受纸型限制;其二,因为是表格,所以能根据需要自由地添加、删除行列,还能在适当位置标注作文所要求的字数。
应用前,应先设定好试卷模板,然后进行试验,以找出试卷最适的格子大小和行列数,需要制作稿纸时,可直接在“常用”工具栏上单击“作文稿纸”按钮,也可以连续点击“工具”,“宏”,“宏„”,打开“宏”对话框,在左侧组合框中选择名为“作文稿纸”的宏,然后单击“运行”,即可启动宏程序,在随后出现的“作文稿纸设置”窗口中,根据需要修改默认设置,最后,单击“确定”按钮,程序将自动绘制作文稿纸表格,如果稿纸超出一页(或一栏),选择稿纸中部的行删除即可。下面是20×20稿纸。
三、导出导入
在VBA编程窗口中,分别选择工程资源管理器中的UserForm1窗体和NewMacros模块,导出UserForm1.frm、UserForm1.frx和NewMacros.bas文件。
需要在其他电脑中使用这个程序时,把备份拷贝过来,启动VBA编程窗口,通过“文件”、“导入文件”将UserForm1.frm、和NewMacros.bas导入,在Word中就使用了。以上程序在Word 2003中调试通过。
第二篇:word vba常用语句100句
word vba常用语句100句
很好的材料,从google搜索得到。
301)Application.ActivePrinter ‘获取当前打印机
(302)Application.Height '当前应用程序文档的高度
(303)Application.Width ‘当前应用程序文档的宽度
(304)Application.Build ‘获取Word版本号和编译序号
(305)Application.Caption ‘当前应用程序名
(306)Application.DefaultSaveFormat '返回空字符串,表示Word文档(307)Application.DisplayRecentFiles '返回是否显示最近使用的文档的状态(308)Application.Documents.Count '返回当前打开的文档数
(309)Application.FontNames.Count ‘返回当前可用的字体数
(310)Application.Left ‘返回当前文档的水平位置
(311)Application.MacroContainer.FullName '返回当前文档名,包括所在路径
Application.MacroContainer.pach'返回当前文档路径
Application.ActiveDocument.Path‘获得文件的相对路径
(312)Application.NormalTemplate.FullName '返回文档标准模板名称及所在位置(313)Application.RecentFiles.Count '返回最近打开的文档数目
(314)Application.System.CountryRegion '返回应用程序所在的地区代码(315)Application.System.FreeDiskSpace ‘返回应用程序所在磁盘可用空间(316)Application.System.HorizontalResolution '返回显示器的水平分辨率(317)Application.System.VerticalResolution '返回显示器的垂直分辨率(318)Application.System.LanguageDesignation '返回系统所使用的语言
(319)Application.System.MathCoprocessorInstalled ‘返回系统是否安装了数学协处理器(320)Application.System.OperatingSystem ‘返回当前操作系统名
(321)Application.System.ProcessorType '返回计算机处理器名
(322)Application.System.Version ‘返回操作系统的版本号
(323)Application.Templates.Count '返回应用程序所使用的模板数
(324)Application.UserName'返回应用程序用户名
(325)Application.Version ‘返回应用程序的版本号
Documents/Document对象
-------
(326)ActiveDocument.AttachedTemplate.FullName '返回当前文档采用的模板名及模板所在位置
(327)ActiveDocument.Bookmarks.Count '返回当前文档中的书签数
(328)ActiveDocument.Characters.Count '返回当前文档的字符数
(329)ActiveDocument.CodeName ‘返回当前文档的代码名称
(330)ActiveDocument.Comments.Count ‘返回当前文档中的评论数
(331)ActiveDocument.Endnotes.Count '返回当前文档中的尾注数
(332)ActiveDocument.Fields.Count '返回当前文档中的域数目
(333)ActiveDocument.Footnotes.Count ‘返回当前文档中的脚注数
(334)ActiveDocument.FullName '返回当前文档的全名及所在位置
(335)ActiveDocument.HasPassword '当前文档是否有密码保护
(336)ActiveDocument.Hyperlinks.Count '返回当前文档中的链接数
(337)ActiveDocument.Indexes.Count '返回当前文档中的索引数
(338)ActiveDocument.ListParagraphs.Count '返回当前文档中项目编号或项目符号数(339)ActiveDocument.ListTemplates.Count '返回当前文档中使用的列表模板数
(340)ActiveDocument.Paragraphs.Count '返回当前文档中的段落数
(341)ActiveDocument.Password=XXX '设置打开文件使用的密码
(342)ActiveDocument.ReadOnly '获取当前文档是否为只读属性
(343)ActiveDocument.Saved '当前文档是否被保存
(344)ActiveDocument.Sections.Count '当前文档中的节数
(345)ActiveDocument.Sentences.Count ‘当前文档中的语句数
(346)ActiveDocument.Shapes.Count'当前文档中的形状数
(347)ActiveDocument.Styles.Count '当前文档中的样式数
(348)ActiveDocument.Tables.Count ‘当前文档中的表格数
(349)ActiveDocument.TablesOfAuthorities.Count ‘返回当前文档中的引文目录数
(350)ActiveDocument.TablesOfAuthoritiesCategories.Count ‘返回当前文档中引文目录类别数(351)ActiveDocument.TablesOfContents.Count ‘返回当前文档中的目录数
(352)ActiveDocument.TablesOfFigures.Count '返回当前文档中的图表目录数
Paragraphs/Paragraph对象
-------
(353)Selection.Paragraphs.Count '返回所选区域的段落数
(354)Selection.Paragraphs.First '返回所选区域中的第一段
(355)ActiveDocument.Paragraphs(1).LeftIndent '返回当前文档中第一段的左缩进值(356)ActiveDocument.Paragraphs(1).LineSpacing '返回当前文档中第一段的行距
(357)ActiveDocument.Paragraphs(1).OutlineLevel‘返回或设置当前文档中第一段的大纲级别
(358)ActiveDocument.Paragraphs(1).RightIndent ‘返回当前文档中第一段的右缩进量(359)ActiveDocument.Paragraphs(1).SpaceBefore '返回当前文档中第一段的段前间距(360)ActiveDocument.Paragraphs(1).SpaceAfter ‘返回当前文档中第一段的段后间距(361)ActiveDocument.Paragraphs(1).Range.Text '返回当前文档中第一段的内容
(362)ActiveDocument.Paragraphs(1).Range.Style.NameLocal '返回当前文档中第一段应用的样式名
(363)ActiveDocument.Paragraphs(1).Range.Style.Description '返回当前文档中第一段所应用样
式的详细描述
(364)ActiveDocument.Paragraphs(1).Range.Style.Font.Name '返回当前文档中第一段所应用样式的字体名
(365)ActiveDocument.Paragraphs(1).Range.Style.Font.NameFarEast'返回或设置一种东亚字体名
(366)ActiveDocument.Paragraphs(1).Range.Style.Font.Size '返回或设置当前文档中第一段所应用样式的字体大小
(367)ActiveDocument.Paragraphs(1).Range.Style.Font.Spacing '返回或设置字符间距(368)Selection.Words.Count '所选区域的字数
Sentences对象
----
(369)Selection.Sentences.Item(1)'所选区域中的第一句的内容
----
Words对象
----
(371)ActiveDocument.Words(1).Select '选择当前文档中的第一个词
(372)ActiveDocument.Range.Words(1).InsertAfter “我爱你!” '在当前文档中的第一个词后插入“我爱你”
----
Characters对象
----
(373)Selection.Characters.Count '当前文档中所选区域的字符数
(374)ActiveDocument.Paragraphs(1).Range.InsertParagraphAfter'在当前文档的第一段之后插入一个新段落
------
Sections/Section对象
------
(375)ActiveDocument.Sections.First '当前文档的第一节
(376)ActiveDocument.Sections.First.PageSetup.BottomMargin '当前文档第一节所在页的底边距
(377)ActiveDocument.Sections.First.PageSetup.LeftMargin '当前文档第一节所在页的左边距(378)ActiveDocument.Sections.First.PageSetup.RightMargin '当前文档第一节所在页的右边距(379)ActiveDocument.Sections.First.PageSetup.TopMargin '当前文档第一节所在页的顶边距
(380)ActiveDocument.Sections.First.PageSetup.PaperSize '返回或设置当前文档第一节所在页的大小
(381)ActiveDocument.Sections.First.PageSetup.PageHeight '返回或设置当前文档第一节所在页的高度
(382)ActiveDocument.Sections.First.PageSetup.PageWidth '返回或设置当前文档第一节所在页的宽度
(383)ActiveDocument.Sections.Add Range:=myRange '在当前文档中添加新节
(384)ActiveDocument.Sections.Item(2)'当前文档中的第二节
(385)ActiveDocument.Sections.Last.Range.InsertAfter “文档结束!” '在当前文档中最后一节的结尾添加文字“文档结束!”
----
Range对象
----
(386)ActiveDocument.Range(Start:=0, End:=10)'表示当前文档前10个字符所组成的一个Range对象
(387)Set myRange = ActiveDocument.Range(_
Start:=ActiveDocument.Paragraphs(2).Range.Start, _
End:=ActiveDocument.Paragraphs(4).Range.End)'将当前文档第2段至第4段设置为一个Range对象
(388)ActiveDocument.Paragraphs(1).Range.Copy '复制当前文档中的第一段
(389)Selection.Copy
Documents.Add.Content.Paste '复制所选内容到新文档中
(390)ActiveDocument.Bookmarks(“Book1”).Copy Name:=“Book2” '将Book2书签复制Book1书签标记的位置
(391)Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4 '将所选内容移至文档中的第4行
(392)Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext '将所选内容移至下一个表格的第1个单元格
(393)Selection.Range.AutoFormat '为所选内容套用格式
(394)ActiveDocument.Content.Font.Name = “Arial” '将当前文档的字体设置为斜体(395)ActiveDocument.Content.Select
Selection.Delete '将当前文档中的内容删除
--
其它
--
(396)Documents.Add '添加一个新文档
(397)Set myTable = ActiveDocument.Tables.Add(Selection.Range, 2, 2)'在当前文档所选区域添加一个2行2列的表格
(398)Open “C:my.txt” For Input As #1 '打开一个用于输入的文件并令其编号为1
(399)Line Input #1, TextLine'读取被打开用于输入且编号为1的文件
(400)Close #1 '关闭编号为1的文件
第三篇:语文作文稿纸
爷
爷
清带前爷的快湖游而片湖轻他着景我怪惟那
晨我脚爷行步里来高片边快们的线又石肖牡
夏,到刚奶列走的游翔涟的的伫精。跑堆啊丹
日微离跨奶。去野去,漪柳步立美的风家进们我。鸭。时。树伐在图
早轻不公,和
晨轻远园爷爷
吹的,爷爷
过人映看约,民入得定
白公眼起好
云园帘劲在慢去的儿公
慢晨是,园的练一也门
飘。些加口
在入集
晨了合走,练他后的们,戏膀起,时一
妈又而
妈一低
带群回
着野,孩鸭时
子掠而
在过落
湖湖在里面水
玩伸面
耍展上,着,嬉翅荡
迈桥上的着墩刻风
在走湖案
微向边,风大上让的桥稳这
吹,稳座
动桥的桥
下下支成向有撑为
我几着了
招个桥一
手粗面道,壮,亮
我的桥丽
许惟
多妙
向砌!园
假而
山成,的这,姿看
态起
各还
异真的是
假栩
山栩,如
是生
有,的景色在阳光的照射下显得更加x 20 = 400
迷丹不
人,知
。还名一荡公夏
说有的阵起园日
是月花微了的的叫季。风一景早
牡花
丹,园芍,药
但花
那,里串的红
花花
却,不还
只有
有许
牡多
湖人笑面民,吹道色晨
过道真是,波美多
柳纹,么
树。我美
轻这心好
轻里中啊的是充!摆凉满
动爽了
着又快
腰舒乐
肢适与,欢
第四篇:在word 2003 中用快捷键转换英文字母大小写
在word 2003 中用快捷键转换英文字母大小写
把光标定位到word文档句首或单词的字母中→按【shift+f3】,就可以把句首字母或单词的第一个字母转换为大写→再次按【shift+f3】,即可把整个句首的字母或单词的字母转换为大写→再次按【shift+f3】,即可把整个句首的字母转换为小写。
每按一次快捷键,字母大小写的变化依此类推进行转换。
第五篇:在VB中用颜色渐变技术制作幻影字
在VB中用颜色渐变技术制作幻影字
马致明
新疆师范大学数理信息学院
制作出别具一格的特效字来为软件增色,是许多软件开发者的追逐目标。但是,一般软件界面中的特效字都是用其它专门工具制作成图片后添加进来的,既降低了控制的灵活性,又增加了资源开销。能否在程序中直接实现文字特效呢?为此,笔者经过反复实践,探索出一种与众不同的特效字制作方法,现将其奉献给各位编程爱好者。
一. 编程思路
用颜色渐变技术来控制文字的颜色、用错位叠加法控制文字输出的位置是本文的基本思路。具体作法是:用循环方式在不同位置上用不同颜色显示同一字串,循环时颜色由背景色渐变到字幕色,沿同一方向错位叠加后便形成亦真亦虚、缥缈虚幻的效果(见效果图)。其关键又在于渐变色的计算和控制。1.从基色中获取三元色分量值
获取渐变色要借助RGB(red,green,blue)函数。调色板及系统颜色用的是长整数表示法,其中低字节描述的是红色,次字节描述的是绿色,第三个字节描述的是蓝色,高字节未用;若颜色值为C,则各色分量值依次为:
red=C Mod 256
green=C 256 Mod 256 blue=C 256^2
2.渐变色三元色分量值的计算方法
假定基色A和基色B的三元色分量值依次为Ar、Ag、Ab和Br、Bg、Bb,若想从A色经过N种颜色渐变到B色,则第i种渐变色的三元色分量值可采用以下计算方法:
red=Ar+(Br-Ar)* i / N green=Ag+(Bg-Ag)* i /N blue=Ab+(Bb-Ab)* i / N 其中,i的取值范围为:0,1,2,3,„„,N。3.阴影的控制方法
错位叠加输出时,依需要控制好阴影的深度和角度。深度可用N来控制,角度可用输出位置的X、Y坐标的增减来控制;如X增Y减,则阴影在左下,如X减Y增,则阴影在右上等。
二.程序介绍
1.功能
本文介绍的这则程序,用户介面中提供了“背景色”和“字幕色”两个命令按钮,用以选择相应颜色,一个滚动条用于调整阴影的深度,一个标签用于呈现深度值。选择不同颜色和深度,可以制作出各种似虚似实的幻影字,效果非常理想。滚动条调整后,要稍等片刻(1至2秒)才能出现新的效果,因为计算和输出工作量较大。2.窗体设计
窗体上安置一对命令钮控件数组,取名为“颜色”,标题分别为“背景色”和“字幕色”;一个水平滚动条,取名为阴影,Min和Max值依次为100和500;此外还有一个用于显示阴影深度值的标签“深度”。其它属性均在代码中设置。3.程序代码(用VB6.0中文版开发)Dim Colors(1)As Long, N As Integer Private Sub Form_Load()
Form1.Top = 0
Form1.Left = 0
Form1.Height = Screen.Height
Form1.Width = Screen.Width
Form1.FontSize = 180
Form1.AutoRedraw = True
Form1.Font = “华文行楷” '默认字体
Colors(0)= vbBlue
Colors(1)= vbWhite
N = 400
'控制阴影的深度
幻影字
'显示效果 End Sub Private Sub 幻影字()Dim i As Integer, R(1)As Integer, G(1)As Integer, B(1)As Integer Dim Red As Integer, Grn As Integer, Blu As Integer Form1.BackColor = Colors(0)深度.ForeColor = Colors(1)Form1.Cls For i = 0 To 1 '获取背景色、前景色的分量值
R(i)= Colors(i)Mod 256
G(i)= Colors(i)256 Mod 256
B(i)= Colors(i)256 ^ 2 Next i For i = 0 To N Step 2 '用渐变色输出
Red = R(0)+(R(1)G(0))/ N * i
Blu = B(0)+(B(1)i * 4
Form1.CurrentY = 4000-i * 4
Form1.ForeColor = RGB(Red, Grn, Blu)
Print “幻影字”
'要显示的内容
Next i End Sub Private Sub 颜色_Click(Index As Integer)
CommonDialog1.ShowColor '显示颜色对话框
Colors(Index)= CommonDialog1.Color '确定颜色
幻影字 End Sub Private Sub 阴影_Change()
N = 阴影
'改变阴影的深度
深度.Caption = “阴影深度为” & N
幻影字
'显示效果 End Sub 附:作者简介:
马致明、男、回族、63年10月生、硕士,毕业于四川师范大学,新疆师范大学物理系微机教研室副教授,主要从事计算机及计算机辅助教学方面的教学和研究。参加过2项CAI方面的课题,并在《电脑爱好者》、《中国电脑教育报》、《多媒体世界》、《电脑知识与技术》、《实验教学与仪器》、《新疆师范大学学报》等九种刊物上发表了近20篇文章;文章主要涉及计算机编程方面的经验和技巧。联系方法:
通讯地址:新疆师范大学物理系
830054 电
话:0991-4841601-2582(最好是在早晨9:30之前)E-MAIL :mzm@mail.wl.xj.cn 或ibrahim@tonghua.com.cn