Nessuna descrizione
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

財務_收支單一覽表.vb 44KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  1. Option Strict Off
  2. Imports System.Data.SqlClient
  3. Imports System.IO
  4. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  5. Imports Microsoft.Office.Interop.Excel.Constants
  6. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  7. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  8. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  9. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  10. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  11. Imports Microsoft.Office.Interop.Excel.XlWindowState
  12. Imports Microsoft.Office.Interop.Excel
  13. Public Class 財務_收支單一覽表
  14. ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : ReadOnly ds2 As New DataSet
  15. Dim DTP As String : Dim N1 As Integer : Dim N2 As Integer
  16. Dim xlApp As Application
  17. Dim xlBook As Workbook
  18. Dim xlSheet As Worksheet
  19. Private Sub Set_清單1()
  20. DataGridView4.DataSource = Nothing : ds1.Clear()
  21. DataGridView4.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  22. DataGridView4.ColumnHeadersHeight = 25
  23. DataGridView4.AllowUserToAddRows = False
  24. ConnOpen()
  25. SQL1 = "SELECT 支付單號 AS 收支單號, 申請人, 申請日期, 審核人, 審核日期, 核准圖檔, 簽名編碼 FROM 財務控制表
  26. WHERE (審核人 NOT LIKE '') AND (審核人 NOT LIKE '作廢%') AND
  27. 審核日期 BETWEEN '" & Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd") & "'
  28. ORDER BY 審核日期 DESC"
  29. CmdSet_For_DGV() : da.Fill(ds1) : DataGridView4.DataSource = ds1.Tables(0) : conn.Close()
  30. DataGridView4.Columns(0).FillWeight = 160 : DataGridView4.Columns(1).Visible = False : DataGridView4.Columns(2).FillWeight = 100 : DataGridView4.Columns(3).Visible = False
  31. DataGridView4.Columns(4).FillWeight = 100 : DataGridView4.Columns(5).Visible = False : DataGridView4.Columns(6).Visible = False
  32. End Sub
  33. Private Sub Set_清單2()
  34. 彙總_dgv.DataSource = Nothing : ds2.Clear()
  35. 彙總_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  36. 彙總_dgv.ColumnHeadersHeight = 25
  37. 彙總_dgv.AllowUserToAddRows = False
  38. ConnOpen()
  39. If 全部_ch.Checked = True And 含稅_ch.Checked = False And 非稅_ch.Checked = False Then
  40. SQL2 = ""
  41. ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = True And 非稅_ch.Checked = False Then
  42. SQL2 = " AND (財務流水帳.含稅 = 1)"
  43. ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then
  44. SQL2 = " AND (財務流水帳.含稅 = 0 OR 財務流水帳.含稅 IS NULL)"
  45. End If
  46. SQL1 = "SELECT LEFT(財務控制表.審核日期, 7) AS 日期, 會計科目.第一階 AS 主項, 會計科目.第二階 AS 子項,
  47. 會計科目.會計科目 AS 子細項, SUM(財務流水帳.零用金) AS 零用金, SUM(財務流水帳.支票數)
  48. AS 支票, SUM(Cast(財務流水帳.收入 AS money)) AS 現金, SUM(Cast(財務流水帳.支出 AS money)) AS 支出, 財務流水帳.銀行 AS 幣別, 財務流水帳.匯率
  49. FROM 財務控制表 RIGHT OUTER JOIN
  50. 財務流水帳 ON 財務控制表.支付單號 = 財務流水帳.支付單號 RIGHT OUTER JOIN
  51. 會計科目 ON 財務流水帳.類別 = 會計科目.編號
  52. WHERE (財務控制表.審核日期 BETWEEN '" & Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd") & "') " & SQL2 & "
  53. GROUP BY 會計科目.第一階, 會計科目.第二階, 會計科目.會計科目, LEFT(會計科目.編號, 7),
  54. LEFT(財務控制表.審核日期, 7), 財務流水帳.銀行, 財務流水帳.匯率
  55. ORDER BY 幣別, LEFT(財務控制表.審核日期, 7), LEFT(會計科目.編號, 7)"
  56. CmdSet_For_DGV() : da.Fill(ds2) : 彙總_dgv.DataSource = ds2.Tables(0) : conn.Close()
  57. 彙總_dgv.Columns(0).FillWeight = 100 : 彙總_dgv.Columns(1).FillWeight = 140 : 彙總_dgv.Columns(2).FillWeight = 140 : 彙總_dgv.Columns(3).FillWeight = 140
  58. 彙總_dgv.Columns(4).FillWeight = 100 : 彙總_dgv.Columns(5).FillWeight = 100 : 彙總_dgv.Columns(6).FillWeight = 100 : 彙總_dgv.Columns(7).FillWeight = 100
  59. 彙總_dgv.Columns(8).FillWeight = 100 : 彙總_dgv.Columns(9).FillWeight = 100
  60. 彙總_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00" : 彙總_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00" : 彙總_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00"
  61. 彙總_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00"
  62. 彙總_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  63. 彙總_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  64. 彙總_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  65. 彙總_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  66. 彙總_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  67. 彙總_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  68. 彙總_dgv.Columns(0).ReadOnly = True : 彙總_dgv.Columns(1).ReadOnly = True : 彙總_dgv.Columns(2).ReadOnly = True : 彙總_dgv.Columns(3).ReadOnly = True
  69. 彙總_dgv.Columns(4).ReadOnly = True : 彙總_dgv.Columns(5).ReadOnly = True : 彙總_dgv.Columns(6).ReadOnly = True : 彙總_dgv.Columns(7).ReadOnly = True
  70. End Sub
  71. Private Sub Set_費用清單()
  72. 明細_dgv.DataSource = Nothing : ds.Clear()
  73. 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  74. 明細_dgv.ColumnHeadersHeight = 25
  75. 明細_dgv.AllowUserToAddRows = False
  76. 明細_dgv.RowTemplate.Height = 35
  77. ConnOpen()
  78. If 全部_ch.Checked = True And 含稅_ch.Checked = False And 非稅_ch.Checked = False Then
  79. SQL2 = ""
  80. ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = True And 非稅_ch.Checked = False Then
  81. SQL2 = " AND (財務流水帳.含稅 = 1)"
  82. ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then
  83. SQL2 = " AND (財務流水帳.含稅 = 0 OR 財務流水帳.含稅 IS NULL)"
  84. End If
  85. SQL1 = "SELECT 財務流水帳.支付單號, 財務流水帳.項次, 會計科目.會計科目, 財務流水帳.明細 AS 用途,
  86. Cast(財務流水帳.零用金 AS money) AS 零用金, Cast(財務流水帳.支票數 AS money) AS 支票, Cast(財務流水帳.收入 AS money) AS 現金,
  87. Cast(財務流水帳.支出 AS money) AS 支出, 財務流水帳.備註 AS 票期, 財務流水帳.匯率, 財務流水帳.銀行 AS 幣別, 財務流水帳.類別,
  88. 財務流水帳.流水號, 財務流水帳.含稅
  89. FROM 財務流水帳 INNER JOIN
  90. 會計科目 ON 財務流水帳.類別 = 會計科目.編號
  91. WHERE (財務流水帳.支付單號 LIKE '" & TextBox1.Text & "') " & SQL2 & "
  92. ORDER BY 財務流水帳.項次"
  93. CmdSet_For_DGV() : da.Fill(ds) : 明細_dgv.DataSource = ds.Tables(0) : conn.Close()
  94. 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).FillWeight = 80 : 明細_dgv.Columns(2).FillWeight = 300 : 明細_dgv.Columns(3).FillWeight = 350
  95. 明細_dgv.Columns(4).FillWeight = 160 : 明細_dgv.Columns(5).FillWeight = 160 : 明細_dgv.Columns(6).FillWeight = 160 : 明細_dgv.Columns(7).FillWeight = 160
  96. 明細_dgv.Columns(8).FillWeight = 140 : 明細_dgv.Columns(9).FillWeight = 140 : 明細_dgv.Columns(10).FillWeight = 140 : 明細_dgv.Columns(11).Visible = False
  97. 明細_dgv.Columns(12).Visible = False : 明細_dgv.Columns(13).FillWeight = 80
  98. 明細_dgv.Columns(1).ReadOnly = True : 明細_dgv.Columns(2).ReadOnly = True : 明細_dgv.Columns(9).ReadOnly = True : 明細_dgv.Columns(10).ReadOnly = True
  99. 明細_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00"
  100. 明細_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00"
  101. 明細_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  102. 明細_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  103. 明細_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  104. 明細_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  105. 明細_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  106. 明細_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  107. 明細_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  108. 現1_tb.Text = "0.00" : 出1_tb.Text = "0.00" : 合1_tb.Text = "0.00" : 零1_tb.Text = "0.00" : 支1_tb.Text = "0.00"
  109. 零2_tb.Text = "0.00" : 支2_tb.Text = "0.00" : 現2_tb.Text = "0.00" : 出2_tb.Text = "0.00" : 合2_tb.Text = "0.00"
  110. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  111. If 明細_dgv.Rows(i).Cells("幣別").Value = "台幣現金" Then
  112. 現1_tb.Text = Val(現1_tb.Text) + 明細_dgv.Rows(i).Cells("現金").Value
  113. 出1_tb.Text = Val(出1_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value
  114. 零1_tb.Text = Val(零1_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value
  115. 支1_tb.Text = Val(支1_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value
  116. End If
  117. If 明細_dgv.Rows(i).Cells("幣別").Value = "人民幣現金" Then
  118. 現2_tb.Text = Val(現2_tb.Text) + 明細_dgv.Rows(i).Cells("現金").Value
  119. 出2_tb.Text = Val(出2_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value
  120. 零2_tb.Text = Val(零2_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value
  121. 支2_tb.Text = Val(支2_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value
  122. End If
  123. If 明細_dgv.Rows(i).Cells("幣別").Value = "美金" Then
  124. 現3_tb.Text = Val(現3_tb.Text) + 明細_dgv.Rows(i).Cells("現金").Value
  125. 出3_tb.Text = Val(出3_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value
  126. 零3_tb.Text = Val(零3_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value
  127. 支3_tb.Text = Val(支3_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value
  128. End If
  129. Next i
  130. 合1_tb.Text = Val(零1_tb.Text) + Val(現1_tb.Text) - Val(出1_tb.Text)
  131. 合2_tb.Text = Val(零2_tb.Text) + Val(現2_tb.Text) - Val(出2_tb.Text)
  132. 合3_tb.Text = Val(零3_tb.Text) + Val(現3_tb.Text) - Val(出3_tb.Text)
  133. If Val(合1_tb.Text) > 0 Then : 合1_tb.ForeColor = Color.Blue : Else : 合1_tb.ForeColor = Color.Red : End If
  134. If Val(合2_tb.Text) > 0 Then : 合2_tb.ForeColor = Color.Blue : Else : 合2_tb.ForeColor = Color.Red : End If
  135. If Val(合3_tb.Text) > 0 Then : 合3_tb.ForeColor = Color.Blue : Else : 合3_tb.ForeColor = Color.Red : End If
  136. 現1_tb.Text = Strings.Format(Val(現1_tb.Text), "#,##0.00") : 出1_tb.Text = Strings.Format(Val(出1_tb.Text), "#,##0.00") : 合1_tb.Text = Strings.Format(Val(合1_tb.Text), "#,##0.00")
  137. 零1_tb.Text = Strings.Format(Val(零1_tb.Text), "#,##0.00") : 支1_tb.Text = Strings.Format(Val(支1_tb.Text), "#,##0.00")
  138. 零2_tb.Text = Strings.Format(Val(零2_tb.Text), "#,##0.00") : 支2_tb.Text = Strings.Format(Val(支2_tb.Text), "#,##0.00") : 現2_tb.Text = Strings.Format(Val(現2_tb.Text), "#,##0.00")
  139. 出2_tb.Text = Strings.Format(Val(出2_tb.Text), "#,##0.00") : 合2_tb.Text = Strings.Format(Val(合2_tb.Text), "#,##0.00")
  140. 零3_tb.Text = Strings.Format(Val(零3_tb.Text), "#,##0.00") : 支3_tb.Text = Strings.Format(Val(支3_tb.Text), "#,##0.00") : 現3_tb.Text = Strings.Format(Val(現3_tb.Text), "#,##0.00")
  141. 出3_tb.Text = Strings.Format(Val(出3_tb.Text), "#,##0.00") : 合3_tb.Text = Strings.Format(Val(合3_tb.Text), "#,##0.00")
  142. End Sub
  143. Private Sub 日期格式()
  144. If 會計月_ch.Checked = True Then
  145. '-------------日期一----------------------------------------------------------------------------------------
  146. DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP
  147. 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1)
  148. DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "26" : 開始日期_dtp.Value = DTP
  149. '-------------日期二----------------------------------------------------------------------------------------
  150. DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "25" : 結束日期_dtp.Value = DTP
  151. Else
  152. '-------------日期一----------------------------------------------------------------------------------------
  153. 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(1)
  154. DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP
  155. '-------------日期二----------------------------------------------------------------------------------------
  156. DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 結束日期_dtp.Value = DTP
  157. 結束日期_dtp.Value = 結束日期_dtp.Value.AddMonths(1) : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(-1)
  158. End If
  159. End Sub
  160. Private Sub 營運費用支付單一覽表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  161. Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  162. DTP = Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 8) & "01"
  163. 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = Today()
  164. 日期格式() : 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1) : 彙總_dgv.Visible = False : RadioButton1.Checked = True
  165. End Sub
  166. Dim 已超出 As Boolean
  167. Private Sub 明細_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 明細_dgv.MouseUp
  168. 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If
  169. If 明細_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  170. If 明細_dgv.SelectedCells.Count > 0 Then
  171. If 明細_dgv.SelectedCells(0).ColumnIndex >= 4 And 明細_dgv.SelectedCells(0).ColumnIndex <= 7 Then
  172. If 已超出 = False Then
  173. Dim x As Double = 0
  174. For i As Integer = 0 To 明細_dgv.SelectedCells.Count - 1
  175. x += Val(明細_dgv.Rows(明細_dgv.SelectedCells.Item(i).RowIndex).Cells(明細_dgv.SelectedCells.Item(i).ColumnIndex).Value)
  176. Next i : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0")
  177. Else : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") : End If
  178. Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  179. End If
  180. End If
  181. End Sub
  182. Private Sub 彙總_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 彙總_dgv.MouseUp
  183. 'If 彙總_dgv.SelectedCells.Count = 1 Then : MsgBox(彙總_dgv.SelectedCells(0).ColumnIndex & " " & 彙總_dgv.SelectedCells(0).RowIndex) : End If
  184. If 彙總_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  185. If 彙總_dgv.SelectedCells.Count > 0 Then
  186. If 彙總_dgv.SelectedCells(0).ColumnIndex >= 4 And 彙總_dgv.SelectedCells(0).ColumnIndex <= 7 Then
  187. If 已超出 = False Then
  188. Dim x As Double = 0
  189. For i As Integer = 0 To 彙總_dgv.SelectedCells.Count - 1
  190. x += Val(彙總_dgv.Rows(彙總_dgv.SelectedCells.Item(i).RowIndex).Cells(彙總_dgv.SelectedCells.Item(i).ColumnIndex).Value)
  191. Next i : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0")
  192. Else : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") : End If
  193. Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  194. End If
  195. End If
  196. End Sub
  197. Private Sub DataGridView4_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView4.CellClick
  198. If e.RowIndex = -1 Then : Else
  199. TextBox1.Text = DataGridView4(0, e.RowIndex).Value.ToString : TextBox13.Text = DataGridView4(6, e.RowIndex).Value.ToString
  200. TextBox3.Text = DataGridView4(1, e.RowIndex).Value.ToString : DateTimePicker1.Value = DataGridView4(2, e.RowIndex).Value.ToString
  201. TextBox4.Text = DataGridView4(3, e.RowIndex).Value.ToString : DateTimePicker2.Value = DataGridView4(4, e.RowIndex).Value.ToString
  202. TextBox14.Text = DataGridView4(5, e.RowIndex).Value.ToString
  203. Set_費用清單()
  204. End If
  205. End Sub
  206. Private Sub DataGridView2_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 彙總_dgv.RowPostPaint
  207. Dim linePen As New Pen(Color.Blue, 2) : Dim linePen1 As New Pen(Color.Red, 2) : Dim linePen2 As New Pen(Color.Green, 2)
  208. If e.RowIndex = 彙總_dgv.Rows.Count - 1 Then
  209. Exit Sub
  210. Else
  211. If 彙總_dgv(0, e.RowIndex).Value.ToString <> 彙總_dgv(0, e.RowIndex + 1).Value.ToString Then
  212. Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0)
  213. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  214. Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset
  215. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  216. Exit Sub
  217. End If
  218. If 彙總_dgv(8, e.RowIndex).Value.ToString <> 彙總_dgv(8, e.RowIndex + 1).Value.ToString Then
  219. Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0)
  220. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  221. Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset
  222. e.Graphics.DrawLine(linePen2, startX, startY, endX, startY)
  223. Exit Sub
  224. End If
  225. If 彙總_dgv(1, e.RowIndex).Value.ToString <> 彙總_dgv(1, e.RowIndex + 1).Value.ToString Then
  226. Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0)
  227. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  228. Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset
  229. e.Graphics.DrawLine(linePen1, startX, startY, endX, startY)
  230. Exit Sub
  231. End If
  232. End If
  233. End Sub
  234. Private Sub 全部_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 全部_ch.Click
  235. 全部_ch.Checked = True : 含稅_ch.Checked = False : 非稅_ch.Checked = False : Set_費用清單() : Set_清單2() : 彙總計算()
  236. End Sub
  237. Private Sub 含稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 含稅_ch.Click
  238. 全部_ch.Checked = False : 含稅_ch.Checked = True : 非稅_ch.Checked = False : Set_費用清單() : Set_清單2() : 彙總計算()
  239. End Sub
  240. Private Sub 非稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 非稅_ch.Click
  241. 全部_ch.Checked = False : 含稅_ch.Checked = False : 非稅_ch.Checked = True : Set_費用清單() : Set_清單2() : 彙總計算()
  242. End Sub
  243. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  244. DTP = Strings.Format(Today(), "yyyy/MM/dd")
  245. 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = DTP
  246. End Sub
  247. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  248. DTP = Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 8) & "01"
  249. 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = Today()
  250. End Sub
  251. Private Sub 彙總計算()
  252. If RadioButton1.Checked = False And RadioButton2.Checked = True Then
  253. 現1_tb.Text = "0.00" : 出1_tb.Text = "0.00" : 合1_tb.Text = "0.00" : 零1_tb.Text = "0.00" : 支1_tb.Text = "0.00"
  254. 零2_tb.Text = "0.00" : 支2_tb.Text = "0.00" : 現2_tb.Text = "0.00" : 出2_tb.Text = "0.00" : 合2_tb.Text = "0.00"
  255. 零3_tb.Text = "0.00" : 支3_tb.Text = "0.00" : 現3_tb.Text = "0.00" : 出3_tb.Text = "0.00" : 合3_tb.Text = "0.00"
  256. For i As Integer = 0 To 彙總_dgv.Rows.Count - 1
  257. If 彙總_dgv.Rows(i).Cells("幣別").Value = "台幣現金" Then
  258. If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then
  259. 現1_tb.Text = Val(現1_tb.Text) + 彙總_dgv.Rows(i).Cells("現金").Value
  260. 出1_tb.Text = Val(出1_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value
  261. 零1_tb.Text = Val(零1_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value
  262. 支1_tb.Text = Val(支1_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value
  263. End If
  264. End If
  265. If 彙總_dgv.Rows(i).Cells("幣別").Value = "人民幣現金" Then
  266. If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then
  267. 現2_tb.Text = Val(現2_tb.Text) + 彙總_dgv.Rows(i).Cells("現金").Value
  268. 出2_tb.Text = Val(出2_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value
  269. 零2_tb.Text = Val(零2_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value
  270. 支2_tb.Text = Val(支2_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value
  271. End If
  272. End If
  273. If 彙總_dgv.Rows(i).Cells("幣別").Value = "美金" Then
  274. If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then
  275. 現3_tb.Text = Val(現3_tb.Text) + 彙總_dgv.Rows(i).Cells("現金").Value
  276. 出3_tb.Text = Val(出3_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value
  277. 零3_tb.Text = Val(零3_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value
  278. 支3_tb.Text = Val(支3_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value
  279. End If
  280. End If
  281. Next i
  282. 合1_tb.Text = Val(零1_tb.Text) + Val(現1_tb.Text) - Val(出1_tb.Text)
  283. 合2_tb.Text = Val(零2_tb.Text) + Val(現2_tb.Text) - Val(出2_tb.Text)
  284. 合3_tb.Text = Val(零3_tb.Text) + Val(現3_tb.Text) - Val(出3_tb.Text)
  285. If Val(合1_tb.Text) > 0 Then : 合1_tb.ForeColor = Color.Blue : Else : 合1_tb.ForeColor = Color.Red : End If
  286. If Val(合2_tb.Text) > 0 Then : 合2_tb.ForeColor = Color.Blue : Else : 合2_tb.ForeColor = Color.Red : End If
  287. If Val(合3_tb.Text) > 0 Then : 合3_tb.ForeColor = Color.Blue : Else : 合3_tb.ForeColor = Color.Red : End If
  288. 現1_tb.Text = Strings.Format(Val(現1_tb.Text), "#,##0.00") : 出1_tb.Text = Strings.Format(Val(出1_tb.Text), "#,##0.00") : 合1_tb.Text = Strings.Format(Val(合1_tb.Text), "#,##0.00")
  289. 零1_tb.Text = Strings.Format(Val(零1_tb.Text), "#,##0.00") : 支1_tb.Text = Strings.Format(Val(支1_tb.Text), "#,##0.00")
  290. 零2_tb.Text = Strings.Format(Val(零2_tb.Text), "#,##0.00") : 支2_tb.Text = Strings.Format(Val(支2_tb.Text), "#,##0.00") : 現2_tb.Text = Strings.Format(Val(現2_tb.Text), "#,##0.00")
  291. 出2_tb.Text = Strings.Format(Val(出2_tb.Text), "#,##0.00") : 合2_tb.Text = Strings.Format(Val(合2_tb.Text), "#,##0.00")
  292. 零3_tb.Text = Strings.Format(Val(零3_tb.Text), "#,##0.00") : 支3_tb.Text = Strings.Format(Val(支3_tb.Text), "#,##0.00") : 現3_tb.Text = Strings.Format(Val(現3_tb.Text), "#,##0.00")
  293. 出3_tb.Text = Strings.Format(Val(出3_tb.Text), "#,##0.00") : 合3_tb.Text = Strings.Format(Val(合3_tb.Text), "#,##0.00")
  294. End If
  295. End Sub
  296. Private Sub 上個月_bt_Click(sender As Object, e As EventArgs) Handles 上個月_bt.Click
  297. If 會計月_ch.Checked = True Then
  298. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  299. 開始日期_dtp.Value = 中間日期_dtp.Value
  300. 結束日期_dtp.Value = 中間日期_dtp.Value
  301. Else
  302. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  303. 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  304. 結束日期_dtp.Value = 中間日期_dtp.Value
  305. End If
  306. 日期格式()
  307. End Sub
  308. Private Sub 下個月_bt_Click(sender As Object, e As EventArgs) Handles 下個月_bt.Click
  309. If 會計月_ch.Checked = True Then
  310. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1)
  311. 開始日期_dtp.Value = 中間日期_dtp.Value
  312. 結束日期_dtp.Value = 中間日期_dtp.Value
  313. Else
  314. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1)
  315. 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  316. 結束日期_dtp.Value = 中間日期_dtp.Value
  317. End If
  318. 日期格式()
  319. End Sub
  320. Private Sub DateTimePicker4_ValueChanged(sender As Object, e As EventArgs) Handles 開始日期_dtp.ValueChanged
  321. Set_清單1() : Set_清單2() : 彙總計算()
  322. End Sub
  323. Private Sub DateTimePicker3_ValueChanged(sender As Object, e As EventArgs) Handles 結束日期_dtp.ValueChanged
  324. Set_清單1() : Set_清單2() : 彙總計算()
  325. End Sub
  326. Private Sub 會計月_CheckedChanged(sender As Object, e As EventArgs) Handles 會計月_ch.Click
  327. 會計月_ch.Checked = True : 一般月_ch.Checked = False : 日期格式()
  328. End Sub
  329. Private Sub 一般月_CheckedChanged(sender As Object, e As EventArgs) Handles 一般月_ch.Click
  330. 會計月_ch.Checked = False : 一般月_ch.Checked = True : 日期格式()
  331. End Sub
  332. Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.Click
  333. 明細_dgv.Visible = True : 彙總_dgv.Visible = False : RadioButton1.Checked = True : RadioButton2.Checked = False
  334. 現1_tb.Text = "0.00" : 出1_tb.Text = "0.00" : 合1_tb.Text = "0.00" : 零1_tb.Text = "0.00" : 支1_tb.Text = "0.00" : DataGridView4.Enabled = True
  335. End Sub
  336. Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton2.Click
  337. 明細_dgv.Visible = False : 彙總_dgv.Visible = True : RadioButton1.Checked = False : RadioButton2.Checked = True
  338. TextBox1.Text = "" : TextBox3.Text = "" : TextBox4.Text = "" : 明細_dgv.DataSource = Nothing : ds.Clear() : DataGridView4.Enabled = False
  339. 彙總計算()
  340. End Sub
  341. Private Sub TextBox14_TextChanged(sender As Object, e As EventArgs) Handles TextBox14.TextChanged
  342. ConnOpen()
  343. SQL1 = "SELECT 簽名檔圖片 FROM GCM主管簽名檔管理 WHERE 圖片流水號 LIKE '" & TextBox14.Text & "'"
  344. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  345. While dr.Read() = True
  346. Dim unused As Byte() = New Byte(-1) {}
  347. Dim bytes As Byte() = DirectCast(dr.Item("簽名檔圖片"), Byte())
  348. Dim oStream As New MemoryStream(bytes)
  349. PictureBox1.Image = Bitmap.FromStream(oStream)
  350. End While
  351. conn.Close()
  352. PictureBox1.SizeMode = 4
  353. End Sub
  354. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  355. xlApp = CType(CreateObject("Excel.Application"), Application)
  356. xlBook = xlApp.Workbooks.Add
  357. xlApp.DisplayAlerts = True
  358. xlBook.Activate()
  359. xlSheet = NewMethod(xlBook)
  360. xlSheet.Activate()
  361. xlApp.Visible = True
  362. xlApp.Application.WindowState = xlMaximized
  363. xlSheet.Cells(1, 1) = "年度" : xlSheet.Cells(1, 2) = Year(Today) - 1911
  364. If RadioButton1.Checked = True And RadioButton2.Checked = False Then
  365. xlSheet.Cells(1, 3) = "工巧明智能企業有限公司-營運費用收支明細表"
  366. xlSheet.Cells(2, 1) = "收款日期" : xlSheet.Cells(2, 2) = "會計科目" : xlSheet.Cells(2, 3) = "客戶或用途"
  367. xlSheet.Cells(2, 4) = "零用金" : xlSheet.Cells(2, 5) = "支票" : xlSheet.Cells(2, 6) = "現金" : xlSheet.Cells(2, 7) = "支出" : xlSheet.Cells(2, 8) = "現金餘額" : xlSheet.Cells(2, 9) = "票期"
  368. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  369. xlSheet.Cells(i + 3, 1) = DateTimePicker1.Value : xlSheet.Cells(i + 3, 2) = 明細_dgv.Rows(i).Cells("會計科目").Value
  370. xlSheet.Cells(i + 3, 3) = 明細_dgv.Rows(i).Cells("用途").Value : xlSheet.Cells(i + 3, 4) = 明細_dgv.Rows(i).Cells("零用金").Value
  371. xlSheet.Cells(i + 3, 5) = 明細_dgv.Rows(i).Cells("支票").Value : xlSheet.Cells(i + 3, 6) = 明細_dgv.Rows(i).Cells("現金").Value
  372. xlSheet.Cells(i + 3, 7) = 明細_dgv.Rows(i).Cells("支出").Value : xlSheet.Cells(i + 3, 9) = 明細_dgv.Rows(i).Cells("票期").Value
  373. If i = 0 Then
  374. xlSheet.Cells(i + 3, 8) = "=D3+F3-G3"
  375. Else
  376. xlSheet.Cells(i + 3, 8) = "=H" & i + 2 & "+D" & i + 3 & "+F" & i + 3 & "-G" & i + 3 & ""
  377. End If
  378. With xlApp.Selection
  379. .Font.Bold = True
  380. End With
  381. N1 = i + 3 : N2 = i + 3
  382. Next i
  383. xlSheet.Cells(N1 + 1, 3) = "以下空白" : xlSheet.Cells(N1 + 3, 1) = "簽核(點交)" : xlSheet.Cells(N1 + 3, 7) = "製表 : " & TextBox3.Text & " - " & DateTimePicker1.Value
  384. xlSheet.Cells(N1 + 2, 4) = "=SUM(D3:D" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 5) = "=SUM(E3:E" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 6) = "=SUM(F3:F" & N1 + 1 & ")"
  385. xlSheet.Cells(N1 + 2, 7) = "=SUM(G3:G" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 8) = "=H" & N1 : xlSheet.Cells(N1 + 2, 1) = "合計"
  386. AA(xlApp, xlSheet) : BB(xlApp, xlSheet)
  387. ElseIf RadioButton1.Checked = False And RadioButton2.Checked = True Then
  388. xlSheet.Cells(1, 3) = "工巧明智能企業有限公司-營運費用收支彙總簡表"
  389. xlSheet.Cells(2, 1) = "日期" : xlSheet.Cells(2, 2) = "主項" : xlSheet.Cells(2, 3) = "子項" : xlSheet.Cells(2, 4) = "子細項" : xlSheet.Cells(2, 5) = "零用金"
  390. xlSheet.Cells(2, 6) = "支票" : xlSheet.Cells(2, 7) = "現金" : xlSheet.Cells(2, 8) = "支出" : xlSheet.Cells(2, 9) = "現金餘額"
  391. For i As Integer = 0 To 彙總_dgv.Rows.Count - 1
  392. xlSheet.Cells(i + 3, 1) = 彙總_dgv.Rows(i).Cells("日期").Value
  393. xlSheet.Cells(i + 3, 2) = 彙總_dgv.Rows(i).Cells("主項").Value
  394. xlSheet.Cells(i + 3, 3) = 彙總_dgv.Rows(i).Cells("子項").Value
  395. xlSheet.Cells(i + 3, 4) = 彙總_dgv.Rows(i).Cells("子細項").Value
  396. xlSheet.Cells(i + 3, 5) = 彙總_dgv.Rows(i).Cells("零用金").Value
  397. xlSheet.Cells(i + 3, 6) = 彙總_dgv.Rows(i).Cells("支票").Value
  398. xlSheet.Cells(i + 3, 7) = 彙總_dgv.Rows(i).Cells("現金").Value
  399. xlSheet.Cells(i + 3, 8) = 彙總_dgv.Rows(i).Cells("支出").Value
  400. If i = 0 Then
  401. xlSheet.Cells(i + 3, 9) = "=E3+G3-H3"
  402. Else
  403. xlSheet.Cells(i + 3, 9) = "=I" & i + 2 & "+E" & i + 3 & "+G" & i + 3 & "-H" & i + 3 & ""
  404. End If
  405. With xlApp.Selection
  406. .Font.Bold = True
  407. End With
  408. N1 = i + 3 : N2 = i + 3
  409. Next i
  410. xlSheet.Cells(N1 + 1, 2) = "以下空白" : xlSheet.Cells(N1 + 3, 1) = "簽核" : xlSheet.Cells(N1 + 3, 5) = "製表 : " & gUserName & " - " & Today()
  411. xlSheet.Cells(N1 + 2, 5) = "=SUM(E3:E" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 6) = "=SUM(F3:F" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 7) = "=SUM(G3:G" & N1 + 1 & ")"
  412. xlSheet.Cells(N1 + 2, 8) = "=SUM(H3:H" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 9) = "=I" & N1 : xlSheet.Cells(N1 + 2, 1) = "合計"
  413. CC(xlApp, xlSheet)
  414. End If
  415. xlSheet.PageSetup.PrintArea = ""
  416. xlApp.Cells.Select()
  417. xlSheet.Range("B1").Select()
  418. xlApp.Application.WindowState = xlMinimized
  419. xlSheet.Cells.Select()
  420. xlApp.ActiveSheet.Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="0911274990")
  421. xlApp.ActiveSheet.EnableSelection = 1
  422. MsgBox("列印完成。")
  423. End Sub
  424. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  425. Return CType(xlBook.Worksheets.Add, Worksheet)
  426. End Function
  427. Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  428. xlSheet.Cells.Select()
  429. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  430. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  431. End With
  432. xlSheet.Columns("A:A").Select : myExcel.Selection.NumberFormatLocal = "m/d;@"
  433. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  434. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  435. End With
  436. xlSheet.Range("B1").Select()
  437. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  438. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  439. End With
  440. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 25
  441. xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 30
  442. xlSheet.Columns("D:H").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "#,##0;[紅色]-#,##0"
  443. xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "[$-zh-TW]e/m/d;@"
  444. xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 25
  445. xlSheet.Range("A2:I2").Select()
  446. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  447. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  448. End With
  449. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  450. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  451. End With
  452. xlSheet.Range("A2:I" & N1 + 2).Select() : myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  453. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  454. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  455. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  456. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  457. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  458. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  459. myExcel.ActiveWindow.DisplayGridlines = False
  460. xlSheet.Rows("3:" & N1 + 2).Select : myExcel.Selection.RowHeight = 20
  461. xlSheet.Rows(N1 + 3 & ":" & N1 + 3).Select : myExcel.Selection.RowHeight = 40
  462. xlSheet.Columns("I:I").Select
  463. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  464. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  465. End With
  466. xlSheet.Range("A" & N1 + 2 & ":C" & N1 + 2).Select() : myExcel.Selection.Merge
  467. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  468. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True
  469. End With
  470. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 25
  471. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  472. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  473. End With
  474. End Sub
  475. Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  476. Clipboard.SetDataObject(PictureBox1.Image)
  477. xlSheet.Range("B" & N2 + 3).Select()
  478. myExcel.ActiveSheet.Pictures.Paste.Select
  479. myExcel.Selection.ShapeRange.Height = 43
  480. myExcel.Selection.ShapeRange.IncrementTop(3)
  481. End Sub
  482. Private Sub CC(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  483. xlSheet.Cells.Select()
  484. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  485. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  486. End With
  487. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 8
  488. xlSheet.Columns("B:C").Select : myExcel.Selection.ColumnWidth = 15
  489. xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 20
  490. xlSheet.Columns("E:I").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00"
  491. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 25
  492. xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 25
  493. xlSheet.Rows("3:" & N1 + 2).Select : myExcel.Selection.RowHeight = 20
  494. xlSheet.Rows(N1 + 3 & ":" & N1 + 3).Select : myExcel.Selection.RowHeight = 40
  495. xlSheet.Rows("2:2").Select
  496. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  497. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  498. End With
  499. xlSheet.Range("A1").Select()
  500. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  501. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  502. End With
  503. xlSheet.Range("B1").Select()
  504. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  505. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  506. End With
  507. xlSheet.Rows("1:1").Select
  508. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 16 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  509. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  510. End With
  511. xlSheet.Range("A2:I" & N1 + 2).Select() : myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  512. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  513. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  514. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  515. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  516. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  517. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  518. xlSheet.Range("A" & N1 + 2 & ":D" & N1 + 2).Select() : myExcel.Selection.Merge
  519. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  520. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True
  521. End With
  522. xlSheet.Columns("E:I").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00"
  523. myExcel.ActiveWindow.DisplayGridlines = False
  524. End Sub
  525. '----------------------滑鼠右鍵--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  526. Private Sub 重新讀取ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新讀取ToolStripMenuItem.Click
  527. Set_清單1() : Set_清單2() : 彙總計算()
  528. End Sub
  529. End Class