ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2633|回复: 5

■部分解决GetOpenFilename 方法+wordplayer

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-4-24 12:42 | 显示全部楼层 |阅读模式
excel中有个GetOpenFilename 方法,要是在word中能编1个类似功能的函数过程就好了,不知哪位高手,可以做到??期待中……
[此贴子已经被作者于2005-4-25 1:18:09编辑过]

TA的精华主题

TA的得分主题

发表于 2005-4-24 13:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

不知这样,能否满足楼主要求?

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-4-24 13:14:47 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Option Explicit Sub GetOpenFileName() '此代码功能为列出指定文件夹中所有选取的WORD文件全路径名 Dim MyDialog As FileDialog, GetStr As String, vrtSelectedItem As Variant On Error Resume Next '忽略错误 '定义一个文件夹选取对话框 Set MyDialog = Application.FileDialog(msoFileDialogFilePicker) With MyDialog .Filters.Clear '清除所有文件筛选器中的项目 .Filters.Add "所有 WORD 文件", "*.doc", 1 '增加筛选器的项目为所有WORD文件 .AllowMultiSelect = True '允许多项选择 If .Show = -1 Then '确定 For Each vrtSelectedItem In .SelectedItems '在所有选取项目中循环 GetStr = GetStr & vbCrLf & vrtSelectedItem Next vrtSelectedItem MsgBox GetStr End If End With End Sub '----------------------

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-24 14:34 | 显示全部楼层

十分感谢守柔版主,你提供的过程真是太好了![em17]不过要是能象EXCEL返回一个对象就更好了,

expression.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect),

在excel中非常高手jack。zhou是这样用的:

***************************************

Sub AddSong() '增加不重复曲目,如果只增加一曲,则立即播放 Dim x, i%, Str$ SetObject With Application.CommandBars("Excel Player").Controls("Song") If .ListCount > 0 Then For i = 1 To .ListCount Str = Str & .List(i)

Next i End If End With With Application x = .GetOpenFileName(filefilter:="All Files (*.*), *.*,Mp3 Files (*.mp3), *.Mp3", filterindex:=0, Title:="添加声音文件,按住Ctrl键可多选", MultiSelect:=True) If IsArray(x) = False Then Exit Sub For i = LBound(x) To UBound(x) If InStr(Str, x(i)) = 0 Then .CommandBars("Excel Player").Controls("Song").AddItem x(i) If UBound(x) = 1 Then .CommandBars("Excel Player").Controls("Song").ListIndex = .CommandBars("Excel Player").Controls("Song").ListCount Call EP0 End If Else ReadMe x(i) & vbCrLf & vbCrLf & "*此曲重复,播放列表中已经存在*" If UBound(x) = 1 Then Call AddSong End If Next i End With End Sub

'以上代码由jack.zhou,原创提供,本人在此为学习用途,如有侵权,请多包涵!

***************************

您提供的过程基本达到了目的,但使用时不是很方便,如果版主您有时间时,请帮助我!

[em06]正在研究中……

[此贴子已经被作者于2005-4-24 14:35:06编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-25 01:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

我找了个变通的办法,得到excel的函数功能,但不知word的插件如何象EXCEL的加载宏,那样使用!!

请版主研究一下,虽然这个例子不是最好的word样例,但对office整体编程,是很有好处的!

文件密码 jack.zhou !

92NRZFy6.rar (27.24 KB, 下载次数: 29) 该文件有待完善!
[此贴子已经被作者于2005-4-25 1:11:44编辑过]

TA的精华主题

TA的得分主题

发表于 2005-4-26 07:24 | 显示全部楼层

非常不错的一个想法。

粗步看了一下,总体印象是,如果仅仅是引用MSMEDIAPLAYER来播放MP3等功能的话,我觉得意义不大,但是,其中的添加曲目的工作,是必须的。

如果我在WORD中解决此问题(达到相同功效的话),播放工作我觉得直接使用SHELL也可以,代码上看上去更简洁明了。

当然,这是楼主的一次有益尝试,而且,如果进一步将此控件的其它功能加入并完善的话,是非常好的,受时间限制,我没有太多精力进行此项工作,希望楼主能够继续下去。

有关一些退出删除该工具栏的事宜,可以参考BUTTON兄在本论坛的主题贴,文件页快带选取(http://club.excelhome.net/viewthread.php?tid=81635)中有很多相似的代码,可供参考。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-26 12:36 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-14 14:55 , Processed in 0.030961 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表