| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 297 人关注过本帖
标题:求助:vfp控制PPT按键链接跳转指定页无反应是何原因?
取消只看楼主 加入收藏
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
求助:vfp控制PPT按键链接跳转指定页无反应是何原因?
*以下VFP9.0编程控制PPT代码,从第2页跳转到第30页测试,.Action的值从1-10都试过,Hyperlink.SubAddresse值用cID值、cTitle值,或者2者结合都试过,均未成功,不知问题出在哪里?但如果用.Hyperlink.Address ="D:\XwJ.pptx"测试(需屏蔽Hyperlink.SubAddress,二都不能同时有),可以打开新的文件链接.
 
oPPT = CREATEOBJECT("PowerPoint.Application") && 适用微软OFFice
 * oPPT = CREATEOBJECT("KWPP.Application")     && 适用WPS office版
oPres = oPPT.Presentations.Add()
LOCAL cID, cTitle

* 创建幻灯片并设置标题
FOR i = 1 TO 50
    oSlide = oPres.Slides.Add(i, 1)  && 使用标题布局
    oSlide.Shapes(1).TextFrame.TextRange.Text = "第" + ALLTRIM(STR(i)) + "页"

    IF i = 30
        cID = ALLTRIM(STR(oSlide.SlideID))
        cTitle = oSlide.Shapes(1).TextFrame.TextRange.Text
    ENDIF

ENDFOR

* 在第2页添加跳转按钮
oSlide2 = oPres.Slides(2)
oShape = oSlide2.Shapes.AddShape(1, 100, 100, 200, 50)
oShape.TextFrame.TextRange.Text = "跳转到第30页"

WITH oShape.ActionSettings(1)
    .Action = 7
     .Hyperlink.SubAddress = cID  &&  或cID,cTitle
*    .Hyperlink.Address ="D:\cs.pptx"  &&  不与上句一起单独用可以

ENDWITH
oPres.SaveAs("D:\cs.pptx")

With oPres.SlideShowSettings
.ShowType =1   && 放映类型 1-演讲者放映 2-观众自行浏览 3-在展台浏览(全屏)
.LoopUntilStopped=0  && 循环显示各幻灯片 0-不循环 1-循环放映
.RangeType = 1  && 放映范围 1-全部 2\3-从XX开始到XX结束
.AdvanceMode=2  && 换片方式 1-手动 2-如果排练时间存在,则使用它
.Run   && 运行
ENDWiTH
INKEY(0)
oPres.Close()
oPPT.Quit()
RELEASE ALL
搜索更多相关主题的帖子: 控制 循环 链接 Hyperlink 跳转 
2025-02-15 08:58
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
收藏
得分:0 
Hyperlink.SubAddress
有哪个大神知道这句该怎么赋值才行
7 天前 09:42
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
收藏
得分:0 

查看了一下VBA示例文档,是这样说明的.如果转换成VFP语言,应该怎样写

Hyperlink.SubAddress
返回或设置与指定超链接相关联的文档中的位置,例如 WPS 文档中的书签、ET 工作表中的区域或WPP 演示文稿中的幻灯片。可读/写 String 类型。
语法
express.SubAddress
express   一个代表 Hyperlink 对象的变量。
示例
示例代码复制
/*本示例设置在幻灯片放映过程中,单击当前演示文稿第一张幻灯片第一个形状时,跳转到 Latest Figures.ppt 中名为“Last Quarter”的幻灯片。*/
function test(){    
Application.ActivePresentation.Slides.Item(1).Shapes.Item(1).ActionSettings.Item(ppMouseClick).Action = ppActionHyperlink    
let h = Application.ActivePresentation.Slides.Item(1).Shapes.Item(1).ActionSettings.Item(ppMouseClick).Hyperlink
    h.Address = "c:\\sales\\latest figures.ppt"
    h.SubAddress = "last quarter"
}

示例代码复制
/*本示例设置在幻灯片放映过程中,单击当前演示文稿第一张幻灯片第一个形状时,跳转到 Latest.xls 中 A1:B10 单元格区域。*/
function test(){    
ActivePresentation.Slides.Item(1).Shapes.Item(1).ActionSettings.Item(ppMouseClick).Action = ppActionHyperlink    
let h = ActivePresentation.Slides.Item(1).Shapes.Item(1).ActionSettings.Item(ppMouseClick).Hyperlink
    h.Address = "c:\\sales\\latest.xls"
    h.SubAddress = "A1:B10"
}


6 天前 10:51
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
收藏
得分:0 
回复 5楼 schtg
我是用的WPS版本,测试了一下,只是跳到下一页,还是没成功。不知微软PPT测试能否成功
5 天前 11:10
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
收藏
得分:0 
回复 7楼 csyx
测试了,交换位置还是不行。
5 天前 13:15
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
收藏
得分:0 
以下是网上查到的ActionSettings(1).Action  在VBA中常量对应的VFP值,
经测试,1-6这几个数值测试成功(需屏蔽Address和SubAddress语句),1-下一页 2-上一页 3-第一页 4-最后一页 5-最近观看那一页 6-结束放映 .其余数值没测试成功

ppActionMixed    -2    执行混合动作。
ppActionNone    0    不执行任何动作。
ppActionNextSlide    1    转到下一张幻灯片。
ppActionPreviousSlide    2    转到上一张幻灯片。
ppActionFirstSlide    3    返回第一张幻灯片。
ppActionLastSlide    4    移动到最后一张幻灯片。
ppActionLastSlideViewed    5    移动到最近观看的幻灯片。
ppActionEndShow    6    幻灯片放映结束。
ppActionHyperlink    7    超链接。
ppActionRunMacro    8    运行一个宏。
ppActionRunProgram    9    运行一个程序。
ppActionNamedSlideShow    10    运行幻灯片。
ppActionOLEVerb    11    OLE 动作。
ppActionPlay    12    从幻灯片开始。

5 天前 14:58
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
收藏
得分:0 
回复 10楼 schtg
我的电脑是用WPS生成的PPT文件,经测试,还是不能跳转到第30页.

5 天前 15:50
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
收藏
得分:0 
回复 11楼 cqycyhb
这个是生成的PPT文件
cs.zip (36.99 KB)
5 天前 15:52
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
收藏
得分:0 
回复 14楼 csyx
非常感谢,在WPS测试成功了.
5 天前 20:26
cqycyhb
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-29
收藏
得分:0 
回复 14楼 csyx
老师,经测试,如果要跳转到第5页,用那串数字则不行。
另外,.Hyperlink.SubAddress = "150995229,30,第30页",后面的两个参数只需1个即可,但没有又不行.还可以省略为
Hyperlink.SubAddress = "150995229,,"
或 Hyperlink.SubAddress = "150995229,0"
Hyperlink.SubAddress = "150995229,A"
甚至Hyperlink.SubAddress = "150995229,"
都可以转到30页,说明150995229是第30页转换成的代码

问题是,如果转到其他页,那代码又是多少呢,转换规则是怎样的呢?
5 天前 21:17
快速回复:求助:vfp控制PPT按键链接跳转指定页无反应是何原因?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024995 second(s), 12 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved