Word文档可以包含的内容远远超过文本。您还可以包括图形和多媒体对象,例如声音片段。播放声音剪辑的通常方法是双击文档中的声音图标。如果您想在第一次打开文档时开始播放声音片段而无需双击怎么办?

解决此问题的最佳方法是使用宏。您可以轻松创建一个在打开文档时自动运行的宏,并且该宏可以播放声音文件。以下是一个非常简单的宏,它可以执行此操作:

Private Sub Document_Open()

ThisDocument.InlineShapes(1).Select     Selection.InlineShapes(1).OLEFormat.DoVerb VerbIndex:=wdOLEVerbPrimary End Sub

该宏假定声音剪辑是插入到文档中的第一个对象。如果不是,则需要在InlineShapes集合中找出剪辑的索引号,并在宏中使用该索引值。

宏的核心使用DoVerb方法,该方法是对OLE对象(在本例中为声音文件)执行不同操作的通用方法。 VerbIndex参数确定执行的操作。

在这种用法中,将VerbIndex设置为等于wdOLEVerbPrimary,这意味着“此类型OLE对象的主要操作”。由于这是一个声音文件,因此主要的操作是播放它。

也许更好的方法是利用Word的书签功能来发挥自己的优势。您可以使用书签来标识要播放的声音片段,然后在宏中使用该信息来确定要播放的内容。请考虑以下宏:

Private Sub Document_Open()

Selection.GoTo What:=wdGoToBookmark, Name:="WavSound"

Selection.InlineShapes(1).OLEFormat.DoVerb VerbIndex:=wdOLEVerbPrimary End Sub

此宏还假定声音片段内联放置在文档中。但是,应使用名称WavSound将剪辑添加书签。宏选择该书签(声音剪辑)并使用DoVerb方法播放。

如果您要播放属于文档一部分的声音片段,则这些方法效果很好。您可能想播放不是文档一部分的声音片段。这样,声音片段的图标就不会出现在文档中,并且会弄乱文档的外观。

完成此操作的方法是要求Windows API为您播放声音。只要您要访问计算机上已知的声音文件(只要系统还安装了Windows Media Player),此方法就可以使用。以下示例应在Windows XP系统上工作。 (取决于Vista的配置方式,该宏在Vista系统上可能有效,也可能不起作用。)

Private Declare Function PlaySound Lib "winmm.dll" _   Alias "PlaySoundA" (ByVal IpszName As String, _   ByVal hModule As Long, ByVal dsFlags As Long) As Long

Private Sub Document_Open()

PlaySound "c:\windows\media\tada.wav", ByVal0&, &H1 End Sub

Document_Open宏在打开文档时运行,但是会调用PlaySound函数。此函数在私有声明中定义为winmm.dll的PlaySoundA方法的别名。此方法不会启动媒体播放器本身,也不会在文档正文中插入任何内容。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(3902)适用于Microsoft Word 97、2000、2002和2003。