财务分析中动态图表模型的设计与应用Word格式.docx

上传人:b****5 文档编号:20502176 上传时间:2023-01-23 格式:DOCX 页数:6 大小:18.17KB
下载 相关 举报
财务分析中动态图表模型的设计与应用Word格式.docx_第1页
第1页 / 共6页
财务分析中动态图表模型的设计与应用Word格式.docx_第2页
第2页 / 共6页
财务分析中动态图表模型的设计与应用Word格式.docx_第3页
第3页 / 共6页
财务分析中动态图表模型的设计与应用Word格式.docx_第4页
第4页 / 共6页
财务分析中动态图表模型的设计与应用Word格式.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

财务分析中动态图表模型的设计与应用Word格式.docx

《财务分析中动态图表模型的设计与应用Word格式.docx》由会员分享,可在线阅读,更多相关《财务分析中动态图表模型的设计与应用Word格式.docx(6页珍藏版)》请在冰豆网上搜索。

财务分析中动态图表模型的设计与应用Word格式.docx

所谓动态图表是指在同一图表中生成从某一数据源不同角度分析获得的不同类型的图表,而无需用户掌握图表绘制工具的使用。

显然,这会给财务分析带来极大的便利。

本文旨在对动态图表模型的设计思想和应用实例作深入的探讨,供同行参考。

  二、动态图表模型的设计思想

  众所周知,构成Excel2000中图表的两个主要元素是“绘图区域”(即来自工作表的“数据源”,下同)和“图表类型”。

如果这两个主要元素能够在绘制一张单一的图表时动态地生成,那么,动态图表模型的设计问题就迎刃而解了。

  因此,动态图表模型设计思想的核心是:

充分利用Excel2000中的“宏技术”和VBA(VsiualBasicforApplication)编程技术,使得对单一图表的“绘图区域”和“图表类型”可根据用户的选择动态地生成。

  为此,应先在工作表中插入一张任意类型的基本图表,然后设计一个“确定图表选项”按钮,在此按钮弹出的“绘图选项”窗口中,可根据用户的选择动态地生成基本图表的“绘图区域”(即“数据源”)和“图表类型”。

如图1和图2所示。

图1表格中的阴影部分即“绘图区域”,是用户在图2中选择的绘图区域(“三季度”)。

其中“销售地区”是用户“选择数据列”时的必然选项,若用户“选择数据行”,则“销售季度”是其必然选项,二者均在程序中予以确定。

图1中的图表部分即动态图表。

由于在图2中选择的“图表类型”是“圆饼图”,放在“选择数据行”或“选择数据列”中的“销售地区”或“销售季度”均以单选钮的形式出现,因为“圆饼图”只能描绘一个数据系列。

若用户选择的“图表类型”是“折线图”或“柱型图”,则前述二者均以复选框的形式出现,同时,图表也将以用户复选确定的绘图区域被绘制。

这些均在程序中加以控制。

  三、动态图表模型的设计实例

  为实现上述设计思想、建立动态图表模型,应完成以下设计步骤。

  1.进入Excel2000后,命名一个工作表为“动态图表”,并在该工作表中建立一个模拟的“销售情况表”,如图1中的表格部分。

为增加程序的可读性和绘图区域的动态扩展,模型中将命名一些区域。

如表所示。

  2、在表格下面插入一张图表,如插入反映全部销售情况的“柱型图”,适当调整其大小并设置其格式为所需要的格式。

以后生成的动态图表均以此格式为标准格式。

  3、在图表右侧填加一以自选图形表示的“确定图表选项”的命令按钮,并为其指定宏代码如下:

  Sub确定绘图选项0

  绘图选项窗口.Show

  EndSub

  4、在VisualBasic编辑器中,插入一用户窗体并命名为“绘图选项窗口”。

  5、在“绘图选项窗口”中,从“视图”→“工具箱”填加所需控件,这些控件包括分组框、列表框、选项按钮、命令按钮等,并以汉字将它们分别标识(Caption)和命名(Name),以便识别和增强程序的可读性。

如图2所承。

  6、设置列表框“行选择”的Rowsource属性为A3:

A7,参照图1。

  7、设置列表框“列选择”的Rowsource属性为A9:

A13(其中存放的是利用数组公式{TRAMS-POSE(B2:

F2)}返回的转秩矩阵,即“一季度”,……,“地区合计”)。

  8、按ALT+F11键,在VisualBasic编辑器中,双击“窗体”的“绘图选项窗口”,为相应的控件建立以下8段程序代码。

  PrivateSubuserform_Initialize()’用户窗口初始化

  行选择.Enabled=False

  列选择.Enabled=True

  PrivateSub取消Click()’“取消”按钮的Click事件代码

  绘图选项窗口.Hide’隐藏绘图选项窗口

  PrivateSub确定_Click()’“确定”按钮的Click事件代码

  Activesheet.ChartObjects(“图表56”).Activate’图表56”是系统自动为插入的图表所作的命名,该图表即为动态图表区域。

  ActiveChart.ChartArea.SeectDim选择季度(4),选择地区(4)’定义两个存放区域名称的数组

  If选择数据列.Value=TrueThen条件语句用于判断用户点击的是“选择数据行”还是“选择数据列”,以便产生不同的绘图区域。

  选择季度(0)=“一季度”:

选择季度

(1)=“二季度”

  选择季度

(2)=“三季度”:

选择季度(3)=”四季度”

  选择季度(4)=”地区合计”

  绘图区域=“销售地区”

  ForI=0To4’循环语句用于动态产生“绘图区域”

  If列选择.Selected(I)=TrueThen’所应包含的区域名称字符串。

   绘图区域=绘图区域+“,”+选择季度(I)’

   Debug.Print绘图区域

  EndIf

  NextI

  绘图选项窗口.Hide

   ActiveChart.SetSourceDataSource:

=Sheets(“动态图表”).Range(绘图区域),_

   PlotBy:

=xlColumns’图表数据产生于列。

  ElseIf选择数据行.Value=TrueThen

   选择地区(0)=“东北”:

选择地区

(1)=“西北”

   选择地区

(2)=“华东”:

选择地区(3)=“西南”

   选择地区(4)=“季度合计”

   绘图区域=“销售季度”

   ForI=0To4’循环语句用于动态产生“绘图区域”

   If行选择.Selected(I)=TrueThen’所应包含的区域名称字符串。

    绘图区域=绘图区域+“,”+选择地区(I)

    ‘Debug.Print绘图区域

   EndIf

   NextI

   绘图选项窗口.Hide

   ActiveChart.SetSourceDataSource:

=Sheets(“动态图表”).Range(绘图区域),-

    PlotBy:

=xlRows’图表数据产生于行

   ActiveChart.LocaationWhere:

=xlLocationAsObject,Name:

=“动态图表”

   WithActiveChart

   If圆饼图.Value=TrueThen

   .HasTitle=True

   Else

   .HasTitle=False

   .Axes(xlCategory,xlPrimary).HasTitle=False

   .Axes(xlValue,xlPrimary).HasTitle=False

   EndWith

   Range(绘图区域).Select

  PrivateSub折线图_Click0

  行选择.MultiSelect=fmMultiSelectMulti

  列选择.MultiSelect=fmMultiSelectMulti

  ActiveSheet.ChartObjects(“图表56”).Activate

   ActiveChart.ChartArea.Select

    ActiveChart.ChartType=xlLineMarkers

     ActiveChart.ApplyDataLabelsType:

=xlDataLa-belsShowNone

  PrivateSub柱型图_Click()

  行选择.MultiSelect=fmMultiSelectMulti

  列选择.Multiselect=fmMultiSelectMulti

    ActiveChart.ChartTye=xlColumnClustered

=xlDatala-belsShowNone

  PrivateSub圆饼图_Click()

  行选择.MultiSelect=fmMultiSelectSingle

  列选择.MultiSelect=fmMultiSelectSingle

   ActiveChaft.ChartArea.Select

   ActiveChart.ChartType=xl3DPie

    ActiveChart.ApplyDataLabelsType:

=xlDataLa-belsShowPercent

  PrivateSub选择数据列_Click()

  If圆饼图.Value=TrueThen

  ’设置列选择的MultiSelect属性为单选。

  Else

  ’设置列选择的Multiselect属性为复选。

  行选择.Enabled=False

  列选择.Enabled=True

  PrivateSub选择数据行_Click()

  ’设置行选择的MultiSelect属性为单选。

  行选择.MultiSelect=fmMultiSelectMulti’设置行选择的MultiSelect属性为复选。

  行选择.Enabled=True

  列选择.Enabled=False

  注释:

上述代码段中,程序行末尾单引号后的内容为程序注释行。

  四、结束语

  上述模型的建立假定读者已掌握Excel2000的基本操作和宏代码、事件代码的建立方法。

实际上,若读者对VBA的编程不熟悉,则完全可以通过宏的定义和阅读来学习和掌握VBA的程序结构和命令语句。

甚至可以根据需要,通过复制定代码来建立和编辑上述代码段,从而减少代码的输入错误。

在模型建立完成后,删除不需要的宏即可。

需要说明的是,该模型的建立虽然以一个示例为背景,但动态图表模型的设计思想具有普遍意义。

读者可以按照本文的设计思想,根据财务分析中对动态图表的具体需求,扩展模型的设计结构,使其更具有一般性和通用性,更符合实际财务分析的需要。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1