论文部分内容阅读
摘 要:对于小型企业来讲,往往面临大型定制化软件不灵活且费用较高, 而用简单的excel表格来记录却显得功能不足的情况。因此利用EXCEL VBA程序,量身定制一些小型的核算系统,具有一定的实用性。
关键词:EXCEL;核算系统;小型企业;VBA
由于小型企业具有规模小、个性化程度高等特点,因此在财务核算过程中,大型定制化的库存软件往往并不适用,且费用不菲。而利用EXCEL VBA编程功能,开发出适用小微企业,既灵活且高效的财务核算软件,具有一定的现实意义。本文用EXCEL VBA编程功能,设计了一套财务核算系统,该系统满足所有的基本财务核算功能,被很多财务人员借鉴使用。因此将该设计方案代码予以公开,给各位企业财务人员参考,并欢迎大家批评指正。
一、系统架构介绍
本系统的主要结构为五张张工作表构成,分别为:1.科目设置表,主要用于设置会计科目;2.凭证录入表,主要用于录入会计凭证;3.凭证数据库,主要用于保存会计凭证;4.科目汇总表,主要用于会计科目的自动汇总;5.会计报表,主要用于资产负债表和利润表的生成。
二、系统的具体设计
1.科目设置表的设计
本工作表的设计较为简单,直接把会计科目和会计编码等信息,按表格的形式录入即可,如下图所示。
2. 凭证录入表的设计
本工作表为系统的核心,首先需要根据本单位的凭证样式,设计出一个凭证表格;然后根据需要进行各种有效性设置,例如科目名称栏目的数据有效性,取自科目设置表的对应区域;接着是进行一些公式的设置,例如科目编码栏目的公式为:=IF(ISERROR(INDEX(科目设置!A:A,MATCH(F5,科目设置!B:B,0),1)),"",INDEX(科目设置!A:A,MATCH(F5,科目设置!B:B,0),1));最后是单元格的保护设置,最终完成的系统界面如下:
3. 凭证数据库
凭证数据库的核心为代码,通过代码,把数据从凭证录入表保存到凭证数据数据库,具体代码如下:
Sub 录入凭照()
'取分录行数
Dim X分录行数 As Integer
X分录行数 = Worksheets("凭证输入").Range("分录行数")
'.......................................................
'取数据库行数
Dim max As Integer
max = Worksheets("凭证数据库").Range("A65536").End(xlUp).Row
'.......................................................
'檢验是否输入
If Worksheets("凭证输入").Range("借贷平衡") <> "OK" Then
MsgBox Worksheets("凭证输入").Range("借贷平衡")
Exit Sub
End If
If Worksheets("凭证输入").Range("编码重复") <> "OK" Then
MsgBox Worksheets("凭证输入").Range("编码重复")
Exit Sub
End If
If Worksheets("凭证输入").Range("分录行数") < 2 Then
MsgBox "没有分录"
Exit Sub
End If
MsgBox "新增数据库行数" & max + 1
'.......................................................
'输入日期等
x日期 = Worksheets("凭证输入").Range("凭证日期")
Worksheets("凭证数据库").Cells(max + 1, 1) = Worksheets("凭证输入").Range("凭证类型")
Worksheets("凭证数据库").Cells(max + 1, 2) = Worksheets("凭证输入").Range("凭证号")
Worksheets("凭证数据库").Cells(max + 1, 3) = Year(x日期)
Worksheets("凭证数据库").Cells(max + 1, 4) = Month(x日期)
Worksheets("凭证数据库").Cells(max + 1, 5) = Day(x日期)
Worksheets("凭证数据库").Cells(max + 1, 6) = Worksheets("凭证输入").Range("凭证摘要")
Worksheets("凭证数据库").Cells(max + 1, 7) = Worksheets("凭证输入").Range("凭证制单人")
Worksheets("凭证数据库").Cells(max + 1, 8) = Worksheets("凭证输入").Range("凭证审核人")
For Z = 1 To 8
For y = max + 1 To max + X分录行数
Worksheets("凭证数据库").Cells(y, Z) = Worksheets("凭证数据库").Cells(max + 1, Z) Next y
Next Z
'.......................................................
'输入分录
For Z = 1 To 3
For y = 1 To X分录行数
Worksheets("凭证数据库").Cells(max + 1, 9).Cells(y, Z) _
= Worksheets("凭证输入").Range("凭证分录").Cells(y, Z)
Next y
Next Z
'.......................................................
'单独输入贷方金额,主要是凭证输入界面格式问题
For y = 1 To X分录行数
Worksheets("凭证数据库").Cells(max + y, 12) = Worksheets("憑证输入").Range("凭证分录").Cells(y, 5)
Next y
'.......................................................
'清除数据
Worksheets("凭证输入").Range("凭证类型") = ""
Worksheets("凭证输入").Range("凭证号") = ""
Worksheets("凭证输入").Range("凭证摘要") = ""
Worksheets("凭证输入").Range("凭证制单人") = ""
Worksheets("凭证输入").Range("凭证审核人") = ""
Worksheets("凭证输入").Range("凭证日期") = ""
For x = 1 To 9
For y = 2 To 5
Worksheets("凭证输入").Range("凭证分录").Cells(x, y) = ""
Next y
Next x
End Sub
4. 科目汇总表
主要用于会计科目的汇总,其取数公式主要为=SUMIFS(凭证数据库!$K:$K,凭证数据库!$C:$C,2015,凭证数据库!$D:$D,1,凭证数据库!$I:$I,$A2)。
5. 会计报表
主要用于资产负债表和利润表等会计报表的产生,其数据主要来自科目汇总表。
三、系统总结
本系统最大的特点是,不同于一般的EXCEL核算系统用表格来录入凭证,而是完成采用了信息系统的设计方式。数据的输入、数据的保存、数据的输入,分别用三个独立的模块来完成,其主要的功能用EXCEL VBA来实现。财务人员在掌握了本系统的设计原则以后,不但可以用于会计核算,还可以在稍加修改的基础上,用于其他的核算体系。
参考文献:
[1] 侯志才: 《基于EXCEL的进销存信息管理系统构建》,载于《财会月刊》2015年第25期,第71-72页.
[2] 苏术锋: 《基于Excel VBA进销存信息系统开发》,载于《中国管理信息化》2011年第15期,第3-4页.
关键词:EXCEL;核算系统;小型企业;VBA
由于小型企业具有规模小、个性化程度高等特点,因此在财务核算过程中,大型定制化的库存软件往往并不适用,且费用不菲。而利用EXCEL VBA编程功能,开发出适用小微企业,既灵活且高效的财务核算软件,具有一定的现实意义。本文用EXCEL VBA编程功能,设计了一套财务核算系统,该系统满足所有的基本财务核算功能,被很多财务人员借鉴使用。因此将该设计方案代码予以公开,给各位企业财务人员参考,并欢迎大家批评指正。
一、系统架构介绍
本系统的主要结构为五张张工作表构成,分别为:1.科目设置表,主要用于设置会计科目;2.凭证录入表,主要用于录入会计凭证;3.凭证数据库,主要用于保存会计凭证;4.科目汇总表,主要用于会计科目的自动汇总;5.会计报表,主要用于资产负债表和利润表的生成。
二、系统的具体设计
1.科目设置表的设计
本工作表的设计较为简单,直接把会计科目和会计编码等信息,按表格的形式录入即可,如下图所示。
2. 凭证录入表的设计
本工作表为系统的核心,首先需要根据本单位的凭证样式,设计出一个凭证表格;然后根据需要进行各种有效性设置,例如科目名称栏目的数据有效性,取自科目设置表的对应区域;接着是进行一些公式的设置,例如科目编码栏目的公式为:=IF(ISERROR(INDEX(科目设置!A:A,MATCH(F5,科目设置!B:B,0),1)),"",INDEX(科目设置!A:A,MATCH(F5,科目设置!B:B,0),1));最后是单元格的保护设置,最终完成的系统界面如下:
3. 凭证数据库
凭证数据库的核心为代码,通过代码,把数据从凭证录入表保存到凭证数据数据库,具体代码如下:
Sub 录入凭照()
'取分录行数
Dim X分录行数 As Integer
X分录行数 = Worksheets("凭证输入").Range("分录行数")
'.......................................................
'取数据库行数
Dim max As Integer
max = Worksheets("凭证数据库").Range("A65536").End(xlUp).Row
'.......................................................
'檢验是否输入
If Worksheets("凭证输入").Range("借贷平衡") <> "OK" Then
MsgBox Worksheets("凭证输入").Range("借贷平衡")
Exit Sub
End If
If Worksheets("凭证输入").Range("编码重复") <> "OK" Then
MsgBox Worksheets("凭证输入").Range("编码重复")
Exit Sub
End If
If Worksheets("凭证输入").Range("分录行数") < 2 Then
MsgBox "没有分录"
Exit Sub
End If
MsgBox "新增数据库行数" & max + 1
'.......................................................
'输入日期等
x日期 = Worksheets("凭证输入").Range("凭证日期")
Worksheets("凭证数据库").Cells(max + 1, 1) = Worksheets("凭证输入").Range("凭证类型")
Worksheets("凭证数据库").Cells(max + 1, 2) = Worksheets("凭证输入").Range("凭证号")
Worksheets("凭证数据库").Cells(max + 1, 3) = Year(x日期)
Worksheets("凭证数据库").Cells(max + 1, 4) = Month(x日期)
Worksheets("凭证数据库").Cells(max + 1, 5) = Day(x日期)
Worksheets("凭证数据库").Cells(max + 1, 6) = Worksheets("凭证输入").Range("凭证摘要")
Worksheets("凭证数据库").Cells(max + 1, 7) = Worksheets("凭证输入").Range("凭证制单人")
Worksheets("凭证数据库").Cells(max + 1, 8) = Worksheets("凭证输入").Range("凭证审核人")
For Z = 1 To 8
For y = max + 1 To max + X分录行数
Worksheets("凭证数据库").Cells(y, Z) = Worksheets("凭证数据库").Cells(max + 1, Z) Next y
Next Z
'.......................................................
'输入分录
For Z = 1 To 3
For y = 1 To X分录行数
Worksheets("凭证数据库").Cells(max + 1, 9).Cells(y, Z) _
= Worksheets("凭证输入").Range("凭证分录").Cells(y, Z)
Next y
Next Z
'.......................................................
'单独输入贷方金额,主要是凭证输入界面格式问题
For y = 1 To X分录行数
Worksheets("凭证数据库").Cells(max + y, 12) = Worksheets("憑证输入").Range("凭证分录").Cells(y, 5)
Next y
'.......................................................
'清除数据
Worksheets("凭证输入").Range("凭证类型") = ""
Worksheets("凭证输入").Range("凭证号") = ""
Worksheets("凭证输入").Range("凭证摘要") = ""
Worksheets("凭证输入").Range("凭证制单人") = ""
Worksheets("凭证输入").Range("凭证审核人") = ""
Worksheets("凭证输入").Range("凭证日期") = ""
For x = 1 To 9
For y = 2 To 5
Worksheets("凭证输入").Range("凭证分录").Cells(x, y) = ""
Next y
Next x
End Sub
4. 科目汇总表
主要用于会计科目的汇总,其取数公式主要为=SUMIFS(凭证数据库!$K:$K,凭证数据库!$C:$C,2015,凭证数据库!$D:$D,1,凭证数据库!$I:$I,$A2)。
5. 会计报表
主要用于资产负债表和利润表等会计报表的产生,其数据主要来自科目汇总表。
三、系统总结
本系统最大的特点是,不同于一般的EXCEL核算系统用表格来录入凭证,而是完成采用了信息系统的设计方式。数据的输入、数据的保存、数据的输入,分别用三个独立的模块来完成,其主要的功能用EXCEL VBA来实现。财务人员在掌握了本系统的设计原则以后,不但可以用于会计核算,还可以在稍加修改的基础上,用于其他的核算体系。
参考文献:
[1] 侯志才: 《基于EXCEL的进销存信息管理系统构建》,载于《财会月刊》2015年第25期,第71-72页.
[2] 苏术锋: 《基于Excel VBA进销存信息系统开发》,载于《中国管理信息化》2011年第15期,第3-4页.