发信人: aaaaaaaaa()
整理人: cobe(2000-03-12 14:41:30), 站内信件
|
编者的话
==============================================
大家好!
欢迎大家回答问题和提出问题,同时也欢迎大家
提供有关VB、VBA和ASP的好作品。
版主 冯德平
[email protected]
=============================================
目 录
a Excel中简化上标和下标设置
b 在VB中使用Word的“艺术字”工具
c 防止用户编辑文本框控件中的内容
=============================================
VB邮件(7.26)
a Excel中简化上标和下标设置
如果您从事编辑统计或计算文本,每当需要上标或下标时都得打开Excel 97的 "单元格格式"对话框,这可能会使您觉得乏味。遗憾的是,在工具条上没有这个按 钮,并且还不能为某些选定的做上标或下标的字符编写宏,因为在一个单元格被编 辑时宏是不能执行的。
有一个为Excel 97开发的加载宏的工具,也许会对您有帮助。这个加载宏是J walk SuperSub,它显示一个对话框,使单元格中的字符很容易设置成上标、下标、 黑体、斜体和字体大小格式。您可以从http ://www.j-walk.com/ss或是http:// www.pcworld.com上免费下载,这是一个自释放文件supersub.exe。
当您下载完并解压之后,在Excel中选择"工具"*"加载宏",单击" 浏览"来放置 加载宏文件supersub.xla(这是放置安装程序的桌面),然后单击"确定"。
要使用这个新的工具,只需加亮单元格,选择"工具"*"Jwalk Supe rSub",对话 框就每次显示出单元格中的7个字符。单击箭头按钮在字符间移动,选择一个字符 ,然后就用对话框控制进行设置。您也可以检查In-cell预览框来看一下效果。
《微电脑世界》98年第12期
tuisly 推荐
b 在VB中使用Word的“艺术字”工具
Word 97中的“艺术字”工具(WordArt)能创建出各种各样的文字,令人赏心 悦目。如果能在VB中使用“艺术字”该有多好啊!由于有了面向对象技术中的代 码重用思想,现在就可以轻松地实现这个愿望了。
代码重用主要有两种形式,即二进制代码重用与源代码重用。前者是通过创 建和使用对象来实现的;后者,顾名思义,是通过继承实现的,后者在C++语言中 被广泛使用。由于Visual Basic不支持继承,所以在VB中的代码重用主要是指二 进制代码重用,并且VB算得上是二进制代码重用的先驱。它的基本思路是:首先 将待重用的代码和数据编译为二进制文件,称为ActiveX服务器部件,然后在客户 应用程序里创建部件中类的对象来调用该部件。在VB中最为人们所熟悉的控件就 是典型的二进制代码重用的例子,每个控件都是一个ActiveX部件,在向窗体中添 加一个控件的同时就创建了该控件类的一个新实例,然后通过调用该控件的属性 、方法和事件就重用了该控件中的代码。
Word 97本身就是一个庞大的代码部件,也就是说,Word 97中的整个对象库 是对外开放的,它允许其他应用程序对其进行编程。换句话说,Word 97中的对象 能被其他应用程序所调用。而“艺术字”正是Word 97中的一种对象,因此可以方 便地在VB中调用它。
要使用“艺术字”,必须先把Word 97的对象库加入到程序中,然后创建一个 对象变量来保持对Word应用程序对象的引用,可以用两种方法创建对Word应用程 序对象的引用,一种方法是直接声明一个Word应用程序的对象变量,例如:
Dim w As New Word.Application
这种方法称为前期绑定,它速度较快;另一种方法是声明一个对象变量w,然 后把用CreateObject函数创建出的Word应用程序对象赋给w,例如:
Dim w As Object
Set w=CreateObject("Word.Application")
这种方法称为后期绑定,它速度较慢。在创建了Word应用程序对象后,就可 以以代码的方式像在Word中进行具体操作那样创建新文档,并在文档中加入“艺 术字”。在创建好“艺术字”之后,用剪贴板将其传给窗体。在创建Word应用程 序对象时,VB会在后台自动打开Word,因此,在程序结束时,应该先关闭Word, 其代码如下:
w.Quit wdDoNotSaveChanges
下面用一个具体的项目实例帮你轻松学习如何在VB中使用Word对象。
(1)启动Microsoft Visual Basic 5.0,选择“标准EXE”,创建一个新项目 ;
(2)选择“项目”菜单中的“引用”选项,显示“引用”对话框,选中"Micr osoft Word 8.0 Object Library"和"Microsoft Office 8.0 Object Library"两 项,单击“确定”按钮(见图1);
添加对Word对象库的引用
(3)将下列代码加入到Form1的“通用”|“声明”选项中:
Dim w As New Word.Application
(4)将下列代码加入到Form1的Load事件中:
Private Sub Form_Load()
w.Documents.Add.Select
w.ActiveDocument.Shapes.AddTextEffect(0,"艺术字","隶书",48#,-1,0, 183.75,70.5).Select
End Sub
这里显示的字样是隶书的“艺术字”三个字,你可以根据自己的喜好来改变 字体(如宋体、楷体等)以及改变字样;
(5)将下列代码加入到Form1的Click事件中:
Private Sub Form_Click()
w.Selection.ShapeRange.TextEffect.PresetTextEffect = Int(Rnd(1) * 30)
w.Selection.ShapeRange.TextEffect.FontName = "隶书"
w.Selection.Copy
Picture = Clipboard.GetData()
End Sub
(6)将下列代码加入到Form1的Unload事件中:
Private Sub Form_Unload(Cancel As Integer)
w.Quit wdDoNotSaveChanges
Set w = Nothing
End Sub
(7)在窗体上放置一个按钮,其Caption属性为"Exit",并在它的Click事件中 处理退出:
Private Sub Command1_Click()
End
End Sub
(8)运行程序后,当鼠标在窗体上单击时,会随机地显示出一种“艺术字”字 型(Word中共有30种内建“艺术字”字型),下图分别给出了隶书与宋体两种不 同字体的字样为“艺术字”的几种情形。
在VB窗体中显示的Word中的“艺术字”,左面是隶书,右面是相应的宋体
同样,由这个实例可以举一反三,即我们也可以在VB中使用Excel的图表、P owerPoint的幻灯片,因为Office 97中的产品都是代码部件,这些产品中的对象 库都是可以被其他应用程序调用的,所以只要了解这些对象的外部接口(属性、 方法和事件),就可以方便地调用这些对象了。PCC
.郭虹
(作者地址:河南省郑州市1001信箱306号 450002 收稿日期:1998.12.29)
《电子与电脑》99年第3期
lixianlin 推荐
c 防止用户编辑文本框控件中的内容
-Visual Basic 中 的 文 本 框 控 件 允 许 用 户 在 其 中 键 入 文 本, 以 便 在 程 序 中 使 用。 相 反, 程 序 员 可 能 会 希 望 显 示 一 些 文 本 但 不 希 望 用 户 编 辑 该 文 本。 本 文 介 绍 了 如 何 创 建 只 读 的 文 本 框 控 件 的 内 容。
使 一 个 文 本 框 控 件 只 读
---- 在Visual Basic 中, 如 果 文 本 框 控 件 的MultiLine 属 性 设 置 为True, 文 本 将 会 自 动 地 换 行 到 下 一 行。 另 外, 如 果 文 本 框 控 件 的ScrollBars 属 性 设 置 为3-Both( 或 者1-Vertical, 或 者2- Horizontal), 用 户 还 能 够 滚 动 控 件 中 的 内 容。
---- 程 序 员 要 想 实 现 文 本 框 控 件 中 的 文 本 不 可 编 辑, 可 将 文 本 框 控 件 中 的 内 容 设 置 为 只 读 状 态, 这 可 以 通 过 使 用Microsoft Windows 应 用 程 序 编 程 接 口(API) 的SendMessage 函 数 来 实 现。 SendMessage 函 数 可 以 用 来 发 送 一 个EM_SETREADONLY 消 息 到 文 本 框 控 件 中, 这 将 使 文 本 框 控 件 变 为 只 读。
---- 要 在 程 序 中 使 用 该SendMessage 函 数, 需 要 将 如 下 的 声 明 语 句 包 含 在 项 目 的 通 用 声 明 部 分 中( 注 意 该 声 明 语 句 需 要 书 写 在 一 行 内):
---- Private Declare Function SendMessage Lib "user32" Alias "SendMess ageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer , ByVal lParam As Long) As Long
---- 该SendMessage 函 数 需 要4 个 参 数, 如 下 所 示:
---- .hwnd 一 个 长 整 数 值, 它 包 含 文 本 框 控 件 的 句 柄。
---- .wMsg 一 个 长 整 数 值, 它 包 含 被 发 送 的 消 息, 在 这 个 例 子 里, 是EM_SETREADONLY。
---- .wParam 一 个 整 数 值, 如 果 它 为True, 则 控 件 被 设 置 只 读 标 记, 如 果 它 为False, 则 删 除 控 件 的 只 读 标 记。
---- .lParam 一 个 长 整 数 值, 它 应 该 被 设 置 为0(EM_SETREADONLY 不 使 用 它)。
---- 在 程 序 运 行 了 此SendMessage 函 数 之 后, 将 返 回 一 个 长 整 数 值, 指 明 调 用 成 功( 返 回 值 非0) 或 是 失 败( 返 回 值 为0 )。
样 例 程 序
---- 该 程 序 显 示 了 如 何 防 止 用 户 编 辑 一 个 文 本 框 控 件 中 的 内 容。
---- 1. 在Visual Basic 中 开 始 一 个 新 的 工 程, 采 用 缺 省 的 方 法 建 立Form1。
---- 2. 将 如 下 的 常 量 和 声 明 语 句 添 加 到Form1 的 通 用 声 明 部 分 中( 注 意 该 声 明 语 句 需 要 书 写 在 一 行 内):
---- Private Declare Function SendMessage Lib "user32" Alias "SendMess ageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer , ByVal lParam As Long) As Long
---- Const WM_USER = &H400
---- Const EM_SETREADONLY = (WM_USER + 31)
---- 4. 在Form1 上 添 加 一 个 文 本 框 控 件, 采 用 缺 省 的 方 法 建 立Text1。 将 其MultiLine 属 性 设 置 为True, 并 且 将 它 的ScrollBar s 属 性 设 置 为3-Both。
---- 5. 在Form1 上 添 加 一 个 命 令 按 钮 控 件, 采 用 缺 省 的 方 法 建 立Command1。
---- 6. 将 如 下 的 代 码 添 加 到Command1 的 单 击 事 件 中:
Private Sub Command1_Click()
Dim RetVal As Long
RetVal = SendMessage(Text1.hwnd, EM_SETREADONLY, True, ByVal 0&)
End Sub
---- 通 过 按 下F5 键 来 执 行 样 例 程 序。 在 文 本 框 控 件 中 键 入 一 些 文 本, 可 以 使 用 水 平 和 垂 直 滚 动 条 来 滚 动 文 本, 还 可 以 改 变 文 本 的 内 容。 单 击 命 令 按 钮, 用 户 仍 然 可 以 使 用 滚 动 条 或 是 光 标 键 来 查 看 文 本 框 控 件 的 内 容, 但 是 不 能 编 辑 它。
刘一斯 推荐
=============================================
VB问答
问题部分:
回答部分:
=============================================
说 明
凡未署名的文章是网友推荐的作品,如果原作者
看到自己的文章未署自己的名字,请与版主联系。
如要转载本VB邮件请与原作者联系,不是版主的
文章请不要署版主的名字,但请注明:
摘自: goodvbhome.yeah.net
谢谢大家的合作。
====================================================================
欢迎订阅VB免费邮件:
订阅地址 http://server.com/WebApps/mail-list-subscribe.cgi?id=16852
====================================================================
如果您觉得这个邮件列表好的话,请告诉您的朋友。
====================================================================
欢迎投稿 [email protected]
====================================================================
网易上的主页地址:http://www4.netease.com/~aaaaaaaaa
本网站主页镜像地址:goodvbhome.yeah.net
广东视灵通:http://personal.gz168.gnet.gd.cn/vbok/
====================================================================
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.46.47]
|
|