语言Excel中的图形事件

  • 为同一Worksheet中的保有Chart对象上加内嵌事件,在Worksheet对象所于的code中添加下两独事件:
    Option Explicit
     
    Private Sub
    Worksheet_Activate()
        Set_All_Charts
    End Sub
     
    Private Sub
    Worksheet_Deactivate()
        Reset_All_Charts
    End Sub

  • 否同一Chart标签中之具备Chart对象上加内嵌事件,在Chart标签所于的目标的code中添加下两单事件:
    Option Explicit
     
    Private Sub
    Chart_Activate()
        Set_All_Charts
    End Sub
     
    Private Sub
    Chart_Deactivate()
        Reset_All_Charts
    End Sub

  • 否同样工作簿中的装有Chart对象上加内嵌事件,在当前工作簿的thisWorkbook对象的code中添加下两单事件。
    Option Explicit
     
    Private Sub
    Workbook_SheetActivate (ByVal Sh As Object)
        Set_All_Charts
    End Sub
     
    Private Sub
    Workbook_SheetDeactivate (ByVal Sh As Object)
        Reset_All_Charts
    End Sub

  • 否当前外存中所有的Workbook中之所有Chart对象上加内嵌事件。这个略带有几麻烦,可循下面的步子添加代码:

1 脚论初稿

每当与客户关系前,我们想客户会将自己活作一些简单介绍,客户发放我们一个2500配之文档,五老效力,洋洋洒洒——这分明是匪能够就此的;

Excel中的内嵌图表事件

2 甲方要求

些微地方,必须用语准确,如:公司称,合作单位,产品功能,特定的地名人称文件称以及网址等等,以及敏感的地方等(政府项目更是如此),必须反复对,若是制作好后还修改,就难办以费钱——尤其以时刻紧、预算少的景况下,脚本确定环节要慎之又慎。

    一个演示程序用于展示用户点击Chart对象被的series的现实信息。

飞碟说之视频可谓业界标杆:专题视频带来巨大曝光量,并透过广告植入等方式以流量转化为低收入。太多人都想复制飞碟说,但是能够生存下来的倒屈指可数。

     接下来开始编制内嵌事件处理程序。

1 如果您是规划/技术的兴趣爱好者

有国外的课程,国内为发社区,MG动画的读书是内需时日的;

   
与其它的VBA控件类似,要想为图对象上加波,必须首先登及Excel的Visual
Basic
编辑器。在达标图被,右键点击Chart4精选项卡(在Excel窗体的下端),选择“View
Code”,即可打开 Visual
Basic编辑器。或者以“开发工具”选项卡中直接点击Visual
Basic按钮。如果是自眼前图所当的标签上的Visual Basic编辑器,则Visual
Basic编辑器窗口被默认打开的是现阶段图的Code窗体,在Code窗体的顶部有些许只下拉列表,在左边的下拉列表中选取Chart,右边的下拉列表中不怕展示了Chart对象支持的保有事件名称,默认是Active事件,即Chart被激活时所点的波。

3 如果你是企图做这么视频的甲方

预算充足直接沟通飞碟说壹读或者其背后的供应商;预算有限,可以设想到视频网站搜作品,联系视频发表之单位,一般这样的team或者个人,性价比非常高,水平为得以通过之往期作进行勘验。

尽不要百度,极度不推荐找当地广告企业(基本上除了北上广生的富有地方),为MG二维动画不可比拍摄宣传片,是平种植了可以当线众包就的活(尽管用分工协作),所以理论及您能于另地方,让全国现有的极其有信价比之team来增援您打视频动画。

广大当地广告企业股本高要价高,尚且可熬;最重点是局部作品low到爆炸,也还是声称自己是“类飞碟说视频”,并冠以“病毒营销”等重大词,简直让人无语。

   
使用图表事件可以更加惠及用户用我们编辑的VBA应用程序。例如,我们可让图表添加一个select事件,当用户点击图片数据透视图中的数据点时,为用户做这样有事务:

2 确定要角色

只要齐,主要绘制三单角色(出镜频繁,其他角色直接调用素材库),其形象逐一与客户敲定。

Option Explicit

然小弟可以打制作方的角度,讲出口飞碟说马上仿佛买卖二维扁平化动画,是什么落地之。

   
当新的工作簿被辟或外接程序于加载时,CAppEvent类被实例化并以相应的事件附加到有的Chart对象被;当工作簿被关或者他接程序别卸载时,应用程序被停止,图表事件就是不再让硌。

老三、制作分镜

而今用到手的事物是来点儿码:

1 带有简单画面描述的剧本;

2 配音。

管及时二者交付受制作者/设计师,就好开打了。但是以有利于为客户一个约的卡通节奏的觉得,让剧本初步“可视化”,可以:

     如果程序中使了add-in(Excel外接程序),还需添加脚两独事件:

一样、脚本确定

剧本就是视频的框架。就好比同样所建筑的设计稿,把控着创作之作风、节奏、流畅程度。

规定脚本实际上是询问甲方需求的经过。

     ii. 在模块1遭到上加下面的代码

因而“飞碟说这么的视频是什么做出来的”,恐怕是题目大麻烦对。

Private Sub
Chart_MouseUp(ByVal Button As Long, ByVal
Shift As Long, _
        ByVal x As Long, ByVal y
As Long)
 
    Dim ElementID As Long, Arg1
As Long, Arg2
As Long
    Dim myX As Variant
 
    With ActiveChart
        ‘ Pass x & y, return ElementID and
Args
        .GetChartElement x, y,
ElementID, Arg1, Arg2
 
        ‘ Did we click over a point or data
label?
        If ElementID
= xlSeries Or ElementID
= xlDataLabel Then
            If Arg2 > 0 Then
                ‘ Extract x value from array of x
values
                myX =
WorksheetFunction.Index _
                  ; ;   (.SeriesCollection(Arg1).XValues, Arg2)
 
                ‘ Don’t crash if chart doesn’t exist
                On Error Resume Next
                ‘ Activate the appropriate chart
               
ThisWorkbook.Charts(“Chart ” &
myX).Select
                On Error GoTo 0
            End If
        End If
    End With
End Sub

甲方提供的素材:

语言 1


  1. Deactivate事件

甲方的要求是:

拿自身产品之成效讲述清楚

视频时增长控制在1min30s横

得之预算

胡要采用图表事件

总结

总来讲,飞碟说视频制作是发生资金的,坊间传言飞碟说每期预算30W(道听途说,我真不知晓多少)。能够规定的凡,飞碟说做得一个team通力合作,不止发生文案策划客服市场等首,后期制作过程分工也颇密切,即使在打造过程中,可能会见发出专门写分镜的,有特意写人如果的,有特别召开AE的等等——相信就不仅在飞碟说凡是这样,在相似规模之广告企业吗是如此——所以配合起来是大有难度、有内耗的——这部分资金为得转嫁到了客户身上。

于是,从旁一个角度来讲,MG动画制作的基金是足以经过合作方式优化而让缩减的。

当要客户预算大,以上问题且不是题材。

最终还啰嗦一句子

 

3 加入笑点

视频最终要想有趣,让人口拘禁在无会见认为索然无味,就必有“点”——你可试试着数数飞碟说,平均10s会生出几乎单点。

自深信就是文功底不行好的人数,也会叫卡于及时等同步——我反而觉着加笑点改脚本这种从是段子手的拿手戏。我之经验是,找一个b站二差元或微博控的95后错过支援,手机发过去,过会就改成好了。

顷报恩寺那个属于类型简介,按照客户要求,需要冷静克制一些,所以并未最明显的点。这是竞标一个政府类之线稿方案,以这为例:

瞧厅 竞标线稿

做于粗,手边没有电脑,直接用surface直接画简笔画,插到pr里面导出的,只是为看动画节奏,花了片只钟头赶出来的,甚至“路人小白”都是一直调用原来的。

配音稿如下:

1990年,北大外院面基俞敏洪先森。

“俞先生,恭喜您再也为未用在凌晨少碰偷摸贴传单了,从今天起,您摆脱了北大的羁绊,可以回家去创业啦!”

不怕如此,因私办学违反校规的俞先生被迫离开学校,来到一中城郊农民房,
开始了辛酸苦逼的创业的同。“别为我!”

然而当2015年,江苏底草根创客,人品比俞敏洪好!人说没选恐惧症的极客不是好创客,当手握高精尖科技路之海龟小王遭遇“南京321计划”,无锡“东方硅谷计划”,常州“龙城群芳才计划”,苏州“姑苏英才计划”,南通“江海英才计划”,镇江“331计划”,以及“省对创计划”,当月光族遭遇最高而直达上百万最先的专项补助,没有一点点戒备啊!

今日,就被咱来讲述一个,如何当众创空间中,勤恳耕耘、发家致富之酷(tong)炫(hua)故事。房租减免,税收减免,技术劳务一步到位,融资对接分分钟搞定,一般人儿我无愿意告诉他!

即全省40几近贱众多创空间,为创客提供工作空间、网络空间、社交空间与资源共享空间。维权难?我们出专业的法务咨询顾问。管账难?金融咨询上门服务。

不仅如此,江苏首先以举国上下设省级中小企业创业投资引导基金,省科技厅还设置3亿初次人民币的看看天使投资引导基金,用于专项补助——砸钱被补贴,是的确好啊!。未来,企业发展壮大,不用顾虑,全省各项科技企业孵化器553寒,未来还有20差不多下省级、200差不多家市级众创空间正好在建设中。你的创业路上,江苏,提供一切的支持。

宜居江苏,快乐创业。想如果了解又多优惠政策,赶快登陆创业江苏-江苏科技创业公共服务平台,来江苏赶上你的企盼吧!

深麻烦想象,这个方案的素材是几乎论枯燥的朝文件以及办事报告。

常用图表事件之动

二、配音

确定好下论后,就足以将去配音了。

以配音工作无欲极多协作,文件也不行轻当网上流通,基本还是在网上联系好的,门槛非常没有,时长已经坏成熟。基本上你可知设想到之满配音都能够在网上找到,非常有利。

新手可以选中华配音网(或者直接百度搜配音也有为数不少),服务流程比较成熟,在网上可以选取样音,或者关联客服mm推荐,选择配音老师后,客服会发作来几乎单十几秒的小样,如果满意,支付宝转账即可将到整体配音。若不顺心貌似可以发简单的改动。

差配音老师价格差别十分可怜,价高之上千元/分钟,便宜的或不至100块(但是意义好琢磨);不同渠道找到的或是会见再也便宜。

报恩寺的这个事例,配音费我记忆是200块。

要补给的一些是:

1
有的要一定的时长,如果下论太长需要加紧语速,强调并非为此软件直接牵涉短时长,否则听起怪怪的。

2
如果分别发音需要修改,或者用几个配音老师合作的,或者出各种音效的,最好能用到原始音频,自行编排或者交给后期编辑,会较便宜调整素材,可以不待客服mm帮编辑。

  1. MouseUp和MouseDown事件

2 如果您是有计划自立门户的自媒体

就是内需资本的,而且无算是策划用少的辰本,单外管动画制作成本是准秒算的;但是呢是生机会的,优酷搜“屌丝心理学”,这样看似飞碟说自媒体遍地开花——但是因视频网站的广告分为肯定无法回本;

  • 著一个提示信息
  • 取图表中的音信并放置到办事表中。
  • 激活另外一个图纸或工作表。
  • 辨认一个数据点进行数量解析。

1 方便后期制作

(1)字数

论时长,缩减字数,一般250~350配;如果字数最好多,配音时太长显得拖沓;压缩配音时长语速过不久,容易为观众感到不凑巧,更要之是好吃后期骂娘:语速过快导致的是单位时长内动画制作量的倍增增加——而动画片是本时长计费的。

(2)合理的光景想象

剧本写作,不是单独的亲笔描述,本质上再次如是:脑海中大约构思出动画的水流,然后据此文字以脑海中的镜头按照一定逻辑用文字表述出来的长河。

自己看,有经历的台本制作者,要理解一点点底AE或者Flash,至少明白如何状况是来无比高之做难度的,哪些状况是在打造高达得以“划水”的。

客户之求和想象往往是歪曲的天马行空而还要模糊不到底的,脚本确定者的待在:体现客户需求(如产品性状)、满足客户偏好、控制动画节奏、平衡制作难度之间权衡。最好之剧本,是在存活预算、交付期下,上诉因素的抵,既会稳住客户,又能够叫动画片节奏张弛有过,而打难点控制在至少。

(3)方便调用原来素材

发更的本子制作者,还需要了解怎样材料是足以调用的,能够大大地节约后期制作成本——这统统是更了,尤其在交付期非常差的动静下。

这就是说,这是其一项目的终极脚本,(括号内是卡通片描述):

景区游览本该轻松愉快,可当景区上网难、寻路难、如厕难,小伙伴等走散相见难,我了hold不住啊老湿!

(能见游览的画面,小白轻松愉快;遇到的难题一个个突现,小白hold不停止了)

别着急~~惠通推出隽导视系统,特有的5老大意义,让这些难题神马的全再见!

(惠通博士出现,带在,罗列5可怜功效,上述几个难题为破解)

首先,景区wifi覆盖功能

身临其境景区场馆导视牌,游客即可连接免费wifi。关注景区微信账号,更能接收专属景区地图,获得智能导引服务。

(出现功能1。小白或手机近小智,wifi效果反响后连连;)

(小白手机屏幕放大,关注微信公众账号后,跳出报恩寺全景图,图备受表明不同职务的导视牌,数字顺序依次跳出)

次,智能感应功能

根据地图导引往各个场馆,导视牌即可提前感知游客行踪,推送该馆区文字和语音介绍,轻松预告景区亮点和拒绝错过的动信息;

(出现功能2。小白移动及任意场馆,A先生手机地图中彼此呼应的导视牌序号就亮起)

(手机界面弹出一致段子文字,写起:您好,您现在所处的职放在……,该场馆主要用以……)

老三,智能导航功能

当游客偶遇三心急或要休养,点击地图导视图标,明白导视系统就是自行寻找最近的厕所还是休息区,规划合理路线,并提醒等时,真是贴心为有没发生。

(出现功能3。小白着急地左右搜,地图寻导视牌发出信号,显示地图中之门路,并提醒文字:距离你xx米,等候人数x人,预计到时刻x秒)

季,精准定位功能

假定跟亲属、朋友走散,别担心~
联系距离你最近的工作人员,手机登录后台系统,关联配套装备,智能搜索、精准定位与导航一键搞定,从此寻人省时省力又便利;

(出现功能4。小白还左右摸(若画面不够博士出现转手),手机屏幕放大,出现一个界面,“智能搜索、精准定位、智能导航”一键就,出现爱心小人牵手)

第五,精准推送功能

摆导视牌感应到游客离开景区,将自动生成专属游览报告,并发送带有游览时间、游览距离的电子明信片。分享至对象围快来赞助自己碰赞吧~~~

另外,智能体系还将陆续推送报恩寺近期倒消息。啊,一上的游览真是充实呢亲!!

(出现功能5。出口大门,小智表示由此离开。出现手机屏幕,地图中因故荧光色串联起的路,并像跑步app一样,标识游览时3h、游览1公里;后切换微信,大字“点赞吧”)

(切回手机屏幕,提示“我寺将为下周举办素斋活动,欢迎您的还降临”,小白作好轻松状~)

     i. 新建类模块CAppEvent,添加下的代码

五、修改

得后,势必要修改。

当即是非常容易互相撕逼的地方,也是决定服务品质的重要一环。动画制作不比较其余文字方案,动画的往往大量之改意味着资金的倍增增加。事先脚本、配音、分镜、人设都反复与客户敲定,就是为减小最后修改的任务量。

便是修改,也只要讲述清晰、划定清楚。

立刻是报恩寺动画的修改意见,任务量不到底十分,除了“序号8”,基本没动画的大修改;后决定,没有继承修改,但即便如此的任务量,可能吃了继望半上的辰。

修改意见

   
这样,该Excel中之持有Chart对象都见面活动关联上Select事件,并且当事件触发时显示相应的提示信息。

剧本确定:

每当以到客户资料后,就要开始确定脚本了,特别要留意三点,分别吗:方便后期制作,重视甲方要求,加入笑点。

   
VBA是千篇一律种脚本语言,与另众多底脚本语言类似(如广大的javascript语言),它是相同种解释性的语言,在履行前未待展开编译,而且变量或对象在应用前不要严格开展类型定义,这是同一种弱类型的语言。然而一栽好之编程习惯是要求变量或对象在行使前是经过类型确认之,这样以之后的代码维护被为会见方便一些,其他人在翻阅你的代码时为会见显思路清楚。VBA默认不求严格定义变量或对象,但是我们得以经Option
Explicit语句来转这或多或少,在模块或近似模块代码的率先行写及即行语词,则以后的代码必须依照变量或对象先定义后动的平整。可以经以VBE中摘“工具-选项”,勾选“要求变量声明”来让Excel自动为您长这行代码。

飞碟说类视频包含的因素

立马类视频统称MG动画,而飞碟说风格偏于二维扁平化风格。

Motion Graphic
简写MG或者Mograph。通常翻译啊动态图表或者运动图形,通常指的凡图文视频设计、多媒体CG设计、电视包装、商业广告等等。

广义上来讲,Motion
Graphics是一律种融合了动画电影与图片设计的语言,基于时间流动而计划之视觉表现形式。

图文动画微像是平面设计与动画里的如出一辙栽结果,图文动画在视觉呈现及运用的凡依据平面设计的平整,在技术上使用的是卡通制作手段。

(百度百科对MG的概念)

广告是一样派别根据甲方商业目标处理图文关系的手艺,飞碟说类的视频也如此。在得情境(某个专题or某个客户需求)下,它一般包含了3独元素:脚本、配音、动画。

推这个极端简易的例证:

惠通 智能导系统MG

斯视频,竞标南京大报恩寺之导视系统,要求做的一个介绍动画。

下说说这个视频是哪些出炉的

   
其实不就只有因图表对象的内嵌事件,与才的VB语言一样,Excel中之VBA也是支持事件内嵌应用的,它支持有VBA对象的内嵌事件编程。

1 制作一个概括的分镜。

惠通智能导系统MG分镜

相似是故flash直接画,如果没有,简单的材料拼贴也堪。

  1. 以工程被补充加新的近乎模块,取名为CEventChart,编写如下代码。

季、动画制作

规划软件上基本用ps、ai作图,用ae和flash做动画。

补某些:

1
 AE拥有丰富的预设和插件,更善于做一些底动态效果,如画面的切换等,效率特别高都节奏多样。

2
 Flash擅长做有角色动画,手绘能力比较好、经验丰富的设计师,若构成往积攒之资料,能够挺强效率地做到MG动画的制作。

语言 2

2 产品材料,及希望获得的感到和法力图

材料如:场地地图,报恩寺效果图,竞标用的活介绍ppt等。

甲方素材

盖甲方是统筹企业,
特地挑了有些盼望获取的效力,比如:动画中,导视系统中之地形图,期望是扁平化的风格,而非是故之宏图草图:

客户要求的“感觉”如下图:

报恩寺草图

客户选择扁平化风格地图**

终极动画中作用,如下图:

卡通截屏

干货来了!!!

     iii. 在thisWorkbook中补充加下面代码

    
Excel中之浩大靶都可响应事件,这个中包括了Excel程序自身之事件,也包括了我们于Excel中支出VBA应用程序时于目标上所附加的事件处理程序,如按钮的应事件、单元格给入选的事件、工作表被激活的风波等。大多数之事件处理程序我们且如数家珍,本文在斯关键介绍一下Excel遭到之图纸事件。

语言 3

    下面我第一介绍几只常因此事件的利用办法。

Private Sub
Chart_Select(ByVal ElementID As Long, ByVal
Arg1 As Long, ByVal
Arg2 As Long)
    MsgBox “Element:
” & ElementID
& vbCrLf & ”  Arg 1:
” & Arg1 _
        & vbCrLf & ”  Arg 2:
” & Arg2
End Sub

语言 4 

Private Sub
Workbook_AddinInstall()
    InitializeAppEvents
End Sub
 
Private Sub
Workbook_AddinUninstall()
    TerminateAppEvents
End Sub

Sub Set_All_Charts()
    ‘ Enable events for active sheet if sheet is a&n
bsp;chart sheet
    If TypeName(ActiveSheet) = “Chart” Then
        Set clsEventChart.EvtChart =
ActiveSheet
    End If

   
先来看望MouseUp事件之参数(MouseDown事件的参数和的相同)。Button参数为用来报鼠标的哪个按键导致了风波的接触,xlNoButton-无按键,xlPrimaryButton-主按键,xlSecondaryButton-次按键,
xlMiddleButton-中间的按键;Shift参数为用来报当事件被触发时使用了哪键盘组合键,它发出4单基础值,0-没有采取组合键,1-Shift键,2-Ctrl键,4-Alt键,1、2、4叔独价值任意相加的结果虽意味着了多种不同的组合键,如
Shift的价值吗5虽然表示Shift+Alt的组合键;最后两只参数x和y用于表示当事件触发时鼠标所处之坐标值。

  1. 每当模块1受上加下面的代码,或者新建一个模块加入下面的代码。

   
Excel的图样事件在其实行使中要么蛮实用之,它可扩大用户对Excel图表的行使,从而使操作更加便利。另一方面,我们得以借助于Excel图表对象的事件,通过编制少量底代码来如果我们的应用程序完成逾强大的效能。例如当图片中冲鼠标所点的蝇头单点来十分成一个曲线,将该曲线作为图表中series的相同有;或者经鼠标的轮转车轮来推广或缩小图表的现实区域等。读者如果谢兴趣,可以试着温馨定义不同之图样事件处理程序来落实更助长的意义。

 

语言 5

   
Deactivate事件于Chart对象吃放激活状态时触发。为Chart对象的Deactivate事件编写如下代码,然后释放Chart4增选项卡给激活的状态(如选择任何的Sheet选项卡),事件就是被点。

   
虽然Excel可以接受其他类型和格式的数据,但是为了便于创建图表,我们普通还见面创造一个相对连续的数区域,并让一定有发生含义之值,好之数据组织将有利于转变更加全面的图片。这里产生一个例,分别对A、B、C、D、E五独栏目按Alpha和Beta两种植档次进行统计。

Private Sub
Chart_Select(ByVal ElementID As Long, ByVal
Arg1 As Long, ByVal
Arg2 As Long)
    Dim sElement As String
    Dim sArg As String
 
    Select Case
ElementID
        Case xlChartArea
            sElement = “Chart
Area”
        Case xlChartTitle
            sElement = “Chart
Title”
        Case xlPlotArea
            sElement = “Plot
Area”
        Case xlLegend
            sElement = “Legend”
        Case xlFloor
            sElement = “Floor”
        Case xlWalls
            sElement = “Walls”
        Case xlCorners
            sElement = “Corners”
        Case xlDataTable
            sElement = “Data
Table”
        Case xlSeries
            sElement = “Series
” & Arg1
            If Arg2 > 0 Then sArg
= “Point
” & Arg2
        Case xlDataLabel
            sElement = “Data
Label”
            sArg = “Series
” & Arg1
            If Arg2 > 0 Then sArg
= sArg & “, Point
” & Arg2
        Case xlTrendline
            sElement = “Trendline”
            sArg = “Series
” & Arg1
& “, Trendline
” & Arg2
        Case xlErrorBars
            sElement = “Error
Bars”
            sArg = “Series
” & Arg1
        Case xlXErrorBars
            sElement = “X Error
Bars”
            sArg = “Series
” & Arg1
        Case xlYErrorBars
            sElement = “Y Error
Bars”
            sArg = “Series
” & Arg1
        Case xlLegendEntry
            sElement = “Legend
Entry”
            sArg = “Series
” & Arg1
        Case xlLegendKey
            sElement = “Legend
Key”
            sArg = “Series
” & Arg1
        Case xlAxis
            sElement = IIf(Arg1 = 1,
“Primary “,
“Secondary “)
            sElement = sElement & IIf(Arg2
= 1,
“Category “,
“Value “)
            sElement = sElement & “Axis”
        Case xlMajorGridlines
            sElement = IIf(Arg1 = 1,
“Primary “,
“Secondary “)
            sElement = sElement & IIf(Arg2
= 1,
“Category “,
“Value “)
            sElement = sElement & “Major
Gridlines”
        Case xlMinorGridlines
            sElement = IIf(Arg1 = 1,
“Primary “,
“Secondary “)
            sElement = sElement & IIf(Arg2
= 1,
“Category “,
“Value “)
            sElement = sElement & “Minor
Gridlines”
        Case xlAxisTitle
            sElement = IIf(Arg1 = 1,
“Primary “,
“Secondary “)
            sElement = sElement & IIf(Arg2
= 1,
“Category “,
“Value “)
            sElement = sElement & “Axis
Title”
        Case xlDisplayUnitLabel
            sElement = IIf(Arg1 = 1,
“Primary “,
“Secondary “)
            sElement = sElement & IIf(Arg2
= 1,
“Category “,
“Value “)
            sElement = sElement & “Axis Display
Unit Label”
        Case xlUpBars
            sElement = “Up
Bars”
            sArg = “Group Index
” & Arg1
        Case xlDownBars
            sElement = “Down
Bars”
            sArg = “Group Index
” & Arg1
        Case xlSeriesLines
            sElement = “Series
Lines”
            sArg = “Group Index
” & Arg1
        Case xlHiLoLines
            sElement = “High-Low
Lines”
            sArg = “Group Index
” & Arg1
        Case xlDropLines
            sElement = “Drop
Lines”
            sArg = “Group Index
” & Arg1
        Case xlRadarAxisLabels
            sElement = “Radar Axis
Labels”
            sArg = “Group Index
” & Arg1
        Case xlShape
            sElement = “Shape”
            sArg = “Shape Number
” & Arg1
        Case xlNothing
            sElement = “Nothing”
    End Select
 
    MsgBox sElement & IIf
(Len(sArg) > 0, vbCrLf
& sArg, “”)
End Sub

 

1. 图表显示区域。

2. 数据透视图区域。

3. 数据透视图中用于显示数据图表的数据点。

4. 数据透视图中的坐标值。

5. 图例区域。

6. 图表的标题。

7. 用于作为tooltip的数据标签,对数据的解释。

Private Sub
Chart_Deactivate()
    msg = “Thanks for
viewing the chart.”
    MsgBox msg, , ActiveWorkbook.Name
End Sub

        chtnum = 1
        For Each chtObj
In ActiveSheet.ChartObjects
            ‘ Debug.Print chtObj.Name,
chtObj.Parent.Name
            Set
clsEventCharts (chtnum).EvtChart =
chtObj.Chart
            chtnum = chtnum + 1
        Next ‘
chtObj
    End If
End Sub

   
按照上述方式创建的图纸默认是嵌套在Excel工作表中的,我们呢得以创造一个单独的图样在Excel中指定的地方显得。在Design选项卡中找到Location部分,选择Move
Chart,弹出的对话框而下图所著,选择New
sheet,并定义一个发义之号,点击OK,此时Excel会在一个初的sheet中创造图表。这里来一个火速创建图表的措施,选中要开创图表的才元格区域,直接按F11,Excel会按照默认的选项在新的sheet中生成图表。在新
sheet中变化的图纸可以在VBA中作靶子来进展走访,同时为堪编制事件处理程序,稍后会介绍。

   
在联网下的内容被,我会朝大家介绍Excel中图纸对象的有些常用事件之使用方式,并会叫来相应的言传身教。

ElementID

Arg1

Arg2

xlChartArea

None

None

xlChartTitle

None

None

xlPlotArea

None

None

xlLegend

None

None

xlFloor

None

None

xlWalls

None

None

xlCorners

None

None

xlDataTable

None

None

xlSeries

SeriesIndex

PointIndex

xlDataLabel

SeriesIndex

PointIndex

xlTrendline

SeriesIndex

TrendLineIndex

xlErrorBars

SeriesIndex

None

xlXErrorBars

SeriesIndex

None

xlYErrorBars

SeriesIndex

None

xlLegendEntry

SeriesIndex

None

xlLegendKey

SeriesIndex

None

xlAxis

AxisIndex

AxisType

xlMajorGridlines

AxisIndex

AxisType

xlMinorGridlines

AxisIndex

AxisType

xlAxisTitle

AxisIndex

AxisType

xlDisplayUnitLabel

AxisIndex

AxisType

xlUpBars

GroupIndex

None

xlDownBars

GroupIndex

None

xlSeriesLines

GroupIndex

None

xlHiLoLines

GroupIndex

None

xlDropLines

GroupIndex

None

xlRadarAxisLabels

GroupIndex

None

xlShape

ShapeIndex

None

xlPivotChartDropZone

DropZoneType

None

xlPivotChartFieldButton

DropZoneType

PivotFieldIndex

xlNothing

None

None

     
选择Chart对象被之异部分,弹出的对话框中见面给闹相应的音。注意,当你选
series时,第一破当选的凡一切series对象,此时Arg2的价值吗-1,再次点击series,选中的凡实际的series,此时
Arg2的价值吗series被选中的point值。下面是经过修改后底风波代码,显示了当Chart对象为入选时之圆信息,
Excel定义了诸多常量来表示ElementID参数的价值。

  1. 于thisWorkbook中进入下面事件归因于碰发内嵌事件。

   
什么是事件的内嵌?举个大概的例证来说明这一点。在VBA应用被,我们为工程里拥有需要之靶子一一编写事件处理程序,例如按钮的单击事件、下拉列表的选择事件,以及图片控件的激活、选择、鼠标单击事件等,但是当众多状态下,这些目标的事件处理程序完成的还是平等桩工作,特别是在图表控件的MouseUp事件备受,当事件触发时我们惟有想被用户一个蕴含详细内容之提示信息,这样的话如果叫工程里富有的图形对象还抬高相同的事件处理程序就算展示略微过度繁琐了,而且创新和维护代码不便宜。有无发出一个概括的方法来兑现这同样效应为?内嵌事件可以实现即时一点。

  • Active:当Chart对象被激活时点。
  • BeforeDoubleClick:鼠标双击前点。
  • BeforeRightClick:鼠标右键单击前点。
  • Calculate:使用公式运算时接触。
  • Deactivate:当Chart对象释放激活状态时触发。
  • DragOver:当Chart对象被拖动时接触。
  • DragPlot:当Chart对象中之多少透视图被拖动时点。
  • MouseDown:鼠标按下时接触。
  • MouseMove:鼠标移动时点。
  • MouseUp:鼠标按下,然后下按键时接触。
  • Resize:调整Chart的深时触发。
  • Select:Chart中之目标吃挑时点。
  • SeriesChange:改变Chart中之图标系列时点。

   
实际用被有重重意想不到的景况导致我们所装的内嵌事件处理程序不克不负众望地将相应的轩然大波附加到Chart对象上,甚至还会见引发Excel的特别,这十分宽泛!此时而该考虑InitializeAppEvents过程执行之机,从而以该过程的实施代码移到其他的地方,这如果来看具体情况来定。

当Excel中哪些迅速地创造图表

   
另外还有雷同种怪有因此底施用,我们可由此MouseUp事件来实现图表的事无巨细内容查看功能。即Excel中留存多摆主-次提到的图片,当点击主图表中之某项内容时,自动转到相应的次表,在次表中点击Return
区域还要赶回主表,让用户体验通过选择主表中之例外区域可以翻图表中详细内容的职能。下面是一个演示程序。

Private Sub
Chart_MouseUp(ByVal Button As Long, ByVal
Shift As Long, ByVal x
As Long, ByVal y
As Long)
    Dim ElementID As Long, Arg1
As Long, Arg2
As Long
    Dim myX As Variant,
myY As Double
 
    With ActiveChart
        ‘ Pass x & y, return ElementID and
Args
        .GetChartElement x, y,
ElementID, Arg1, Arg2
 
        ‘ Did we click over a point or data
label?
        If ElementID
= xlSeries Or ElementID
= xlDataLabel Then
            If Arg2 > 0 Then
                ‘ Extract x value from array of x
values
                myX =
WorksheetFunction.Index _
                  ; ;   (.SeriesCollection(Arg1).XValues, Arg2)
                ‘ Extract y value from array of y
values
                myY =
WorksheetFunction.Index _
                  ; ;   (.SeriesCollection(Arg1).Values, Arg2)
 
                ‘ Display message box with point
information
                MsgBox “Series
” & Arg1
& vbCrLf _
                  ; ;   & “””” &
.SeriesCollection(Arg1).Name & “””” & vbCrLf _
                  ; ;   & “Point
” & Arg2
& vbCrLf _
                  ; ;   & “X =
” & myX
& vbCrLf _
                  ; ;   & “Y =
” & myY
            End If
        End If
    End With
End Sub

 

      另外还为有一个Select事件的施用,读者可自己作证一下。

语言 6  
在Excel中生成图表非常简单,选着上述单元格区域,选择Insert选项卡中Charts部分的图片类型,Excel会自动按你所选取的图类型也公生成图表,如下图。

Dim clsEventChart As New
CEventChart
Dim clsEventCharts()  As New
CEventChart

  1. Activate事件

   
Select事件于利用的时节发一个缺点,那就是是当您再次选择以及一个目标时,只有首先糟的
Select事件会于点,而MouseUp事件则是当鼠标按键按下下以弹起的经过遭到被响应,它和MouseDown事件之绝无仅有区别就在事件触发的光阴各异,MouseDwon事件是以鼠标按键按下时立即就点。在局部时候以MouseUp(或
MouseDown)事件比Select事件再奏效。

   
Excel的VB编辑器中列有了已部分对象目录,包括Chart对象、Sheet对象、ThisWorkbook等,如果含有Moudle,则会包含Moudle对象,这些目标在VBE(Visual
Basic
Editor)的工资源管理器窗体中吃排出来,该窗体在VBE的右侧,如果没出示,可以通过“视图-工程资源管理器”菜单来展示其。在靶的性质窗口被得修改对象的称呼,属性窗体默认在工程资源管理器窗体的江湖,可以由此“视图-属性窗口
”菜单来显示她。双击对象名称可以打开代码窗体并于该目标编排相应的代码。这些操作以及VB
6的IDE编辑器类似,如果读者对VB很熟悉的话,这同一有些对您的话应该无见面生。除此之外,我们还好透过“插入
”菜单以工程被参加用户窗体、模块和相近模块。使用类模块来定义全局对象,从而实现内嵌事件。

    先介绍一下Option Explicit语句。

Private Sub
Chart_Select(ByVal ElementID As Long, ByVal
Arg1 As Long, _
                  ; ;        ByVal Arg2 As Long)
    If ElementID = 3 And Arg2
> 0 Then
        With
ActiveChart.SeriesCollection(Arg1).Points(Arg2)
            .ApplyDataLabels Type:=xlShowValue
        End With
     End If
End Sub

Option Explicit
 
Public WithEvents EventApp As
Excel.Application
 
Private Sub
EventApp_SheetActivate (ByVal Sh As Object)
    Set_All_Charts
End Sub
 
Private Sub
EventApp_SheetDeactivate (ByVal Sh As Object)
    Reset_All_Charts
End Sub
 
Private Sub
EventApp_WorkbookActivate (ByVal Wb As
Workbook)
    Set_All_Charts
End Sub
 
Private Sub
EventApp_WorkbookDeactivate (ByVal Wb As
Workbook)
    Reset_All_Charts
End Sub

    ‘ Enable events for all charts embedded on a she
et
    ‘ Works for
embedded charts on a worksheet or ch art sheet
    If
ActiveSheet.ChartObjects.Count > 0 Then
        ReDim clsEventCharts(1 To
ActiveSheet.ChartObjects.Count)
        Dim chtObj As
ChartObject
        Dim chtnum As Integer

Private Sub
Workbook_Open()
    InitializeAppEvents
End Sub
 
Private Sub
Workbook_BeforeClose (Cancel As Boolean)
    TerminateAppEvents
End Sub

什么补充加图事件

    Chart对象支持以下这些事件:

     选择Design选项卡,在Chart
Layouts部分选择不同的布局,可以增长图表的情节,如添加图的名号、设置图例的展示位置等。通过Excel提供的图纸功能,我们可以给图表添加许多要素,按照
Excel自带的辨证文档上的牵线,一个对立比较完整的图纸应该包含7只单元。

语言 7

    为Chart对象上加内嵌事件频仍是四栽不同之情状:

     我们要求的内嵌事件程序都以Option
Explicit语句后编写代码,这样好避对象了多时混淆概念,减少编程时未必要之荒唐。

  1. Select事件

   
Activate事件于Chart对象为激活时点。如果为Chart对象的Activate事件编写了如下代码,则在前所举的以身作则中,当我们选取Chart4选择项卡时,该事件会为点。

   
其它图表事件读者可以好去尝尝,它们以实际用被使得不是很多,而且相对来说使用都比较简单,这里自己就是不再一一被起例子了。下面要说一下于Excel中哪使用内嵌的图样事件。

语言 8

   
使用Select事件可以领略Chart对象的哪一部分深受选了。该事件有三独参数,ElementID
被用来报Chart对象的呐部分为挑选了,后少只参数Arg1和Arg2虽然会依据ElementID的不等值传递一些额外的信息,如当Chart对象被的series被入选,则Arg1深受用来报告哪一个series被入选了,而Arg2叫用来报被入选的
series中被入选的具体位置。当整个series被入选时,Arg1的价为-1,如果Chart的另外对象吃选中,Arg1和Arg2的值为0,此时没其它附加的音讯。下表列出了该事件中三个参数可能的持有值。

Private Sub
Chart_Activate()
    MsgBox “Welcome to
my Chart!”
End Sub

Option Explicit
 
‘ Declare object of type “Chart” with
events
Public WithEvents EvtChart As Chart
 
Private Sub
EvtChart_Select (ByVal ElementID As Long, _
        ByVal Arg1 As Long, ByVal
Arg2 As Long)
 
    MsgBox “Element:
” & ElementID
& vbCrLf & ”  Arg 1:
” & Arg1 _
        & vbCrLf & ”  Arg 2:
” & Arg2
 
End Sub

Option Explicit
 
Private Sub
Workbook_SheetActivate (ByVal Sh As Object)
    Set_All_Charts
End Sub
 
Private Sub
Workbook_SheetDeactivate (ByVal Sh As Object)
    Reset_All_Charts
End Sub

Dim
clsAppEvent As New
CAppEvent

Sub InitializeAppEvents ()
  Set clsAppEvent.EventApp =
Application
  Set_All_Charts
End Sub
 
Sub TerminateAppEvents ()
  Set clsAppEvent.EventApp = Nothing
  Reset_All_Charts
End Sub

   
修改是程序可以兑现广大以Excel图表中以及用户的彼此作用,如弹来提示框要求用户反复尝试某种操作,或结成MouseMove事件为有图的自定义提示信息等。

语言 9

   
其中myX变量保存了脚下主表中吃入选的series的值,然后经ThisWorkbook.Charts
(“Chart ” &
myX).Select方法在所有Excel工作簿中找名称以及之相呼应的Chart对象,并入选它。你完全可以好编写名称匹配的算法,然后自动选择着设翻看的图纸,或者采用ThisWorkbook,Sheets().Select方法选中要查看的工作表等等。

Sub Reset_All_Charts()
    ‘ Disable events for all charts previously enabled
to gether
    Dim chtnum
As Integer
    On Error Resume Next
    Set clsEventChart.EvtChart = Nothing
    For chtnum = 1 To UBound
(clsEventCharts)
        Set clsEventCharts(chtnum).EvtChart = Nothing
    Next ‘
chtnum
End Sub

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图