Option Strict Off Imports System.IO Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle Imports Microsoft.Office.Interop.Excel.Constants Imports Microsoft.Office.Interop.Excel.XlBordersIndex Imports Microsoft.Office.Interop.Excel.XlLineStyle Imports Microsoft.Office.Interop.Excel.XlBorderWeight Imports Microsoft.Office.Interop.Excel.XlThemeFont Imports Microsoft.Office.Interop.Excel.XlThemeColor Imports Microsoft.Office.Interop.Excel.XlWindowState Imports Microsoft.Office.Interop.Excel Public Class 財務_收支單一覽表_ICS ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : ReadOnly ds2 As New DataSet Dim DTP As String : Dim N1 As Integer : Dim N2 As Integer : Dim 匯率1 As Double Dim xlApp As Application Dim xlBook As Workbook Dim xlSheet As Worksheet Private Sub Set_清單1() 收支單_dgv.DataSource = Nothing : ds1.Clear() 收支單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 收支單_dgv.ColumnHeadersHeight = 25 收支單_dgv.AllowUserToAddRows = False ConnOpen() SQL1 = "SELECT 支付單號 AS 收支單號, 申請人, 申請日期, 審核人, 審核日期, 核准圖檔, 簽名編碼 FROM 財務控制表_ICS WHERE (審核人 NOT LIKE '') AND (審核人 NOT LIKE '作廢%') AND 審核日期 BETWEEN '" & Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd") & "' ORDER BY 審核日期 DESC" CmdSet_For_DGV() : da.Fill(ds1) : 收支單_dgv.DataSource = ds1.Tables(0) : conn.Close() 收支單_dgv.Columns(0).FillWeight = 160 : 收支單_dgv.Columns(1).Visible = False : 收支單_dgv.Columns(2).FillWeight = 100 : 收支單_dgv.Columns(3).Visible = False 收支單_dgv.Columns(4).FillWeight = 100 : 收支單_dgv.Columns(5).Visible = False : 收支單_dgv.Columns(6).Visible = False End Sub Private Sub Set_清單2() 彙總_dgv.DataSource = Nothing : ds2.Clear() 彙總_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 彙總_dgv.ColumnHeadersHeight = 25 彙總_dgv.AllowUserToAddRows = False ConnOpen() If 全部_ch.Checked = True And 含稅_ch.Checked = False And 非稅_ch.Checked = False Then SQL2 = "" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = True And 非稅_ch.Checked = False Then SQL2 = " AND (財務流水帳_ICS.含稅 = 1)" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then SQL2 = " AND (財務流水帳_ICS.含稅 = 0 OR 財務流水帳_ICS.含稅 IS NULL)" End If SQL1 = "SELECT LEFT(財務控制表_ICS.審核日期, 7) AS 日期, 會計科目.第一階 AS 主項, 會計科目.第二階 AS 子項, 會計科目.會計科目 AS 子細項, SUM(財務流水帳_ICS.零用金) AS 零用金, SUM(財務流水帳_ICS.支票數) AS 支票, SUM(Cast(財務流水帳_ICS.收入 AS money)) AS 收入, SUM(Cast(財務流水帳_ICS.支出 AS money)) AS 支出, 財務流水帳_ICS.銀行 AS 幣別, 財務流水帳_ICS.匯率 FROM 財務控制表_ICS RIGHT OUTER JOIN 財務流水帳_ICS ON 財務控制表_ICS.支付單號 = 財務流水帳_ICS.支付單號 RIGHT OUTER JOIN 會計科目 ON 財務流水帳_ICS.類別 = 會計科目.編號 WHERE (財務控制表_ICS.審核日期 BETWEEN '" & Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd") & "') " & SQL2 & " GROUP BY 會計科目.第一階, 會計科目.第二階, 會計科目.會計科目, LEFT(會計科目.編號, 7), LEFT(財務控制表_ICS.審核日期, 7), 財務流水帳_ICS.銀行, 財務流水帳_ICS.匯率 ORDER BY 幣別, LEFT(財務控制表_ICS.審核日期, 7), LEFT(會計科目.編號, 7)" CmdSet_For_DGV() : da.Fill(ds2) : 彙總_dgv.DataSource = ds2.Tables(0) : conn.Close() 彙總_dgv.Columns(0).FillWeight = 100 : 彙總_dgv.Columns(1).FillWeight = 140 : 彙總_dgv.Columns(2).FillWeight = 140 : 彙總_dgv.Columns(3).FillWeight = 140 彙總_dgv.Columns(4).FillWeight = 100 : 彙總_dgv.Columns(5).FillWeight = 100 : 彙總_dgv.Columns(6).FillWeight = 100 : 彙總_dgv.Columns(7).FillWeight = 100 彙總_dgv.Columns(8).FillWeight = 100 : 彙總_dgv.Columns(9).FillWeight = 100 彙總_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00" : 彙總_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00" : 彙總_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" 彙總_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00" 彙總_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 彙總_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 彙總_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 彙總_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 彙總_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 彙總_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 彙總_dgv.Columns(0).ReadOnly = True : 彙總_dgv.Columns(1).ReadOnly = True : 彙總_dgv.Columns(2).ReadOnly = True : 彙總_dgv.Columns(3).ReadOnly = True 彙總_dgv.Columns(4).ReadOnly = True : 彙總_dgv.Columns(5).ReadOnly = True : 彙總_dgv.Columns(6).ReadOnly = True : 彙總_dgv.Columns(7).ReadOnly = True End Sub Private Sub Set_費用清單() 明細_dgv.DataSource = Nothing : ds.Clear() 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細_dgv.ColumnHeadersHeight = 25 明細_dgv.AllowUserToAddRows = False 明細_dgv.RowTemplate.Height = 35 ConnOpen() If 全部_ch.Checked = True And 含稅_ch.Checked = False And 非稅_ch.Checked = False Then SQL2 = "" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = True And 非稅_ch.Checked = False Then SQL2 = " AND (財務流水帳_ICS.含稅 = 1)" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then SQL2 = " AND (財務流水帳_ICS.含稅 = 0 OR 財務流水帳_ICS.含稅 IS NULL)" End If SQL1 = "SELECT 財務流水帳_ICS.支付單號, 財務流水帳_ICS.項次, 會計科目.會計科目, 財務流水帳_ICS.明細 AS 用途, Cast(財務流水帳_ICS.零用金 AS money) AS 零用金, Cast(財務流水帳_ICS.支票數 AS money) AS 支票, Cast(財務流水帳_ICS.收入 AS money) AS 收入, Cast(財務流水帳_ICS.支出 AS money) AS 支出, 財務流水帳_ICS.備註 AS 票期, 財務流水帳_ICS.匯率, 財務流水帳_ICS.銀行 AS 幣別, 財務流水帳_ICS.類別, 財務流水帳_ICS.流水號, 財務流水帳_ICS.含稅 FROM 財務流水帳_ICS INNER JOIN 會計科目 ON 財務流水帳_ICS.類別 = 會計科目.編號 WHERE (財務流水帳_ICS.支付單號 LIKE '" & 收支單號_tb.Text & "') " & SQL2 & " ORDER BY 財務流水帳_ICS.項次" CmdSet_For_DGV() : da.Fill(ds) : 明細_dgv.DataSource = ds.Tables(0) : conn.Close() 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).FillWeight = 80 : 明細_dgv.Columns(2).FillWeight = 250 : 明細_dgv.Columns(3).FillWeight = 400 明細_dgv.Columns(4).Visible = False : 明細_dgv.Columns(5).FillWeight = 120 : 明細_dgv.Columns(6).FillWeight = 165 : 明細_dgv.Columns(7).FillWeight = 165 明細_dgv.Columns(8).FillWeight = 150 : 明細_dgv.Columns(9).FillWeight = 130 : 明細_dgv.Columns(10).FillWeight = 140 : 明細_dgv.Columns(11).Visible = False 明細_dgv.Columns(12).Visible = False : 明細_dgv.Columns(13).FillWeight = 80 明細_dgv.Columns(1).ReadOnly = True : 明細_dgv.Columns(2).ReadOnly = True : 明細_dgv.Columns(9).ReadOnly = True : 明細_dgv.Columns(10).ReadOnly = True 明細_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00" 明細_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00" 明細_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 現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" 零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" 零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" 零4_tb.Text = "0.00" : 支4_tb.Text = "0.00" : 現4_tb.Text = "0.00" : 出4_tb.Text = "0.00" : 合4_tb.Text = "0.00" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 If 明細_dgv.Rows(i).Cells("幣別").Value = "台幣現金" Then 現1_tb.Text = Val(現1_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value * 明細_dgv.Rows(i).Cells("匯率").Value 出1_tb.Text = Val(出1_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value * 明細_dgv.Rows(i).Cells("匯率").Value 零1_tb.Text = Val(零1_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value * 明細_dgv.Rows(i).Cells("匯率").Value 支1_tb.Text = Val(支1_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value * 明細_dgv.Rows(i).Cells("匯率").Value End If If 明細_dgv.Rows(i).Cells("幣別").Value = "人民幣現金" Then 現2_tb.Text = Val(現2_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value : 出2_tb.Text = Val(出2_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value 零2_tb.Text = Val(零2_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value : 支2_tb.Text = Val(支2_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value End If If 明細_dgv.Rows(i).Cells("幣別").Value = "美金" Then 現3_tb.Text = Val(現3_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value : 出3_tb.Text = Val(出3_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value 零3_tb.Text = Val(零3_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value : 支3_tb.Text = Val(支3_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value End If If 明細_dgv.Rows(i).Cells("幣別").Value = "印尼盾" Then 現4_tb.Text = Val(現4_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value : 出4_tb.Text = Val(出4_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value 零4_tb.Text = Val(零4_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value : 支4_tb.Text = Val(支4_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value End If Next i 合1_tb.Text = Val(零1_tb.Text) + Val(現1_tb.Text) - Val(出1_tb.Text) : 合2_tb.Text = Val(零2_tb.Text) + Val(現2_tb.Text) - Val(出2_tb.Text) 合3_tb.Text = Val(零3_tb.Text) + Val(現3_tb.Text) - Val(出3_tb.Text) : 合4_tb.Text = Val(零4_tb.Text) + Val(現4_tb.Text) - Val(出4_tb.Text) If CLng(合1_tb.Text) >= 0 Then : 合1_tb.ForeColor = Color.Black : Else : 合1_tb.ForeColor = Color.Red : End If If CLng(合2_tb.Text) >= 0 Then : 合2_tb.ForeColor = Color.Black : Else : 合2_tb.ForeColor = Color.Red : End If If CLng(合3_tb.Text) >= 0 Then : 合3_tb.ForeColor = Color.Black : Else : 合3_tb.ForeColor = Color.Red : End If If CLng(合4_tb.Text) >= 0 Then : 合4_tb.ForeColor = Color.Black : Else : 合4_tb.ForeColor = Color.Red : End If 現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") 零1_tb.Text = Strings.Format(Val(零1_tb.Text), "#,##0.00") : 支1_tb.Text = Strings.Format(Val(支1_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") : 現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") 零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") 出3_tb.Text = Strings.Format(Val(出3_tb.Text), "#,##0.00") : 合3_tb.Text = Strings.Format(Val(合3_tb.Text), "#,##0.00") 零4_tb.Text = Strings.Format(Val(零4_tb.Text), "#,##0.00") : 支4_tb.Text = Strings.Format(Val(支4_tb.Text), "#,##0.00") : 現4_tb.Text = Strings.Format(Val(現4_tb.Text), "#,##0.00") 出4_tb.Text = Strings.Format(Val(出4_tb.Text), "#,##0.00") : 合4_tb.Text = Strings.Format(Val(合4_tb.Text), "#,##0.00") End Sub Private Sub 日期格式() If 會計月_ch.Checked = True Then '-------------日期一---------------------------------------------------------------------------------------- DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1) DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "26" : 開始日期_dtp.Value = DTP '-------------日期二---------------------------------------------------------------------------------------- DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "25" : 結束日期_dtp.Value = DTP Else '-------------日期一---------------------------------------------------------------------------------------- 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(1) DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP '-------------日期二---------------------------------------------------------------------------------------- DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 結束日期_dtp.Value = DTP 結束日期_dtp.Value = 結束日期_dtp.Value.AddMonths(1) : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(-1) End If End Sub Private Sub 匯率() ConnOpen() SQL1 = "SELECT 中心匯率, 美金匯率, 印尼匯率 FROM 歷史匯率表 WHERE (年 LIKE '" & Strings.Left(Strings.Format(申請日期_dtp.Value, "yyyyMMdd"), 4) & "%') AND (月 LIKE '" & Strings.Mid(Strings.Format(申請日期_dtp.Value, "yyyyMMdd"), 5, 2) & "%')" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader If dr.Read() Then 人民幣匯率_tb.Text = dr("中心匯率").ToString : 美金匯率_tb.Text = dr("美金匯率").ToString : 印尼匯率_tb.Text = dr("印尼匯率").ToString : conn.Close() : dr.Close() Else conn.Close() : dr.Close() : 匯率修改.Close() : 匯率修改.Show() : 匯率修改.BringToFront() End If End Sub Private Sub 財務_收支單一覽表_ICS_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True DTP = Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 8) & "01" 匯率() : 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = Today() 日期格式() : 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1) : 彙總_dgv.Visible = False : 明細_rb.Checked = True End Sub Dim 已超出 As Boolean Private Sub 明細_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 明細_dgv.MouseUp 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If If 明細_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If If 明細_dgv.SelectedCells.Count > 0 Then If 明細_dgv.SelectedCells(0).ColumnIndex >= 4 And 明細_dgv.SelectedCells(0).ColumnIndex <= 7 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 明細_dgv.SelectedCells.Count - 1 x += Val(明細_dgv.Rows(明細_dgv.SelectedCells.Item(i).RowIndex).Cells(明細_dgv.SelectedCells.Item(i).ColumnIndex).Value) Next i : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0") Else : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") : End If Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") End If End If End Sub Private Sub 彙總_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 彙總_dgv.MouseUp 'If 彙總_dgv.SelectedCells.Count = 1 Then : MsgBox(彙總_dgv.SelectedCells(0).ColumnIndex & " " & 彙總_dgv.SelectedCells(0).RowIndex) : End If If 彙總_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If If 彙總_dgv.SelectedCells.Count > 0 Then If 彙總_dgv.SelectedCells(0).ColumnIndex >= 4 And 彙總_dgv.SelectedCells(0).ColumnIndex <= 7 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 彙總_dgv.SelectedCells.Count - 1 x += Val(彙總_dgv.Rows(彙總_dgv.SelectedCells.Item(i).RowIndex).Cells(彙總_dgv.SelectedCells.Item(i).ColumnIndex).Value) Next i : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0") Else : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") : End If Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") End If End If End Sub Private Sub DataGridView4_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 收支單_dgv.CellClick If e.RowIndex = -1 Then : Else 收支單號_tb.Text = 收支單_dgv(0, e.RowIndex).Value.ToString : TextBox13.Text = 收支單_dgv(6, e.RowIndex).Value.ToString 申請人_tb.Text = 收支單_dgv(1, e.RowIndex).Value.ToString : 申請日期_dtp.Value = 收支單_dgv(2, e.RowIndex).Value.ToString 審核人_tb.Text = 收支單_dgv(3, e.RowIndex).Value.ToString : 審核日期_dtp.Value = 收支單_dgv(4, e.RowIndex).Value.ToString TextBox14.Text = 收支單_dgv(5, e.RowIndex).Value.ToString Set_費用清單() End If End Sub Private Sub DataGridView2_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 彙總_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) : Dim linePen1 As New Pen(Color.Red, 2) : Dim linePen2 As New Pen(Color.Green, 2) If e.RowIndex = 彙總_dgv.Rows.Count - 1 Then Exit Sub Else If 彙總_dgv(0, e.RowIndex).Value.ToString <> 彙總_dgv(0, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If If 彙總_dgv(8, e.RowIndex).Value.ToString <> 彙總_dgv(8, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen2, startX, startY, endX, startY) Exit Sub End If If 彙總_dgv(1, e.RowIndex).Value.ToString <> 彙總_dgv(1, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen1, startX, startY, endX, startY) Exit Sub End If End If End Sub Private Sub 全部_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 全部_ch.Click 全部_ch.Checked = True : 含稅_ch.Checked = False : 非稅_ch.Checked = False : Set_費用清單() : Set_清單2() : 彙總計算() End Sub Private Sub 含稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 含稅_ch.Click 全部_ch.Checked = False : 含稅_ch.Checked = True : 非稅_ch.Checked = False : Set_費用清單() : Set_清單2() : 彙總計算() End Sub Private Sub 非稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 非稅_ch.Click 全部_ch.Checked = False : 含稅_ch.Checked = False : 非稅_ch.Checked = True : Set_費用清單() : Set_清單2() : 彙總計算() End Sub Private Sub 當日_tb_Click(sender As Object, e As EventArgs) Handles 當日_tb.Click DTP = Strings.Format(Today(), "yyyy/MM/dd") 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = DTP End Sub Private Sub B當月_tb_Click(sender As Object, e As EventArgs) Handles 當月_tb.Click DTP = Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 8) & "01" 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = Today() End Sub Private Sub 彙總計算() If 明細_rb.Checked = False And 彙總_rb.Checked = True Then 現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" 零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" 零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" 零4_tb.Text = "0.00" : 支4_tb.Text = "0.00" : 現4_tb.Text = "0.00" : 出4_tb.Text = "0.00" : 合4_tb.Text = "0.00" For i As Integer = 0 To 彙總_dgv.Rows.Count - 1 If 彙總_dgv.Rows(i).Cells("幣別").Value = "台幣現金" Then If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then 現1_tb.Text = Val(現1_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出1_tb.Text = Val(出1_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value 零1_tb.Text = Val(零1_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支1_tb.Text = Val(支1_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value End If End If If 彙總_dgv.Rows(i).Cells("幣別").Value = "人民幣現金" Then If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then 現2_tb.Text = Val(現2_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出2_tb.Text = Val(出2_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value 零2_tb.Text = Val(零2_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支2_tb.Text = Val(支2_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value End If End If If 彙總_dgv.Rows(i).Cells("幣別").Value = "美金" Then If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then 現3_tb.Text = Val(現3_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出3_tb.Text = Val(出3_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value 零3_tb.Text = Val(零3_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支3_tb.Text = Val(支3_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value End If End If If 彙總_dgv.Rows(i).Cells("幣別").Value = "印尼盾" Then If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then 現4_tb.Text = Val(現4_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出4_tb.Text = Val(出4_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value 零4_tb.Text = Val(零4_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支4_tb.Text = Val(支4_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value End If End If Next i 合1_tb.Text = Val(零1_tb.Text) + Val(現1_tb.Text) - Val(出1_tb.Text) : 合2_tb.Text = Val(零2_tb.Text) + Val(現2_tb.Text) - Val(出2_tb.Text) 合3_tb.Text = Val(零3_tb.Text) + Val(現3_tb.Text) - Val(出3_tb.Text) : 合4_tb.Text = Val(零4_tb.Text) + Val(現4_tb.Text) - Val(出4_tb.Text) If CLng(合1_tb.Text) >= 0 Then : 合1_tb.ForeColor = Color.Black : Else : 合1_tb.ForeColor = Color.Red : End If If CLng(合2_tb.Text) >= 0 Then : 合2_tb.ForeColor = Color.Black : Else : 合2_tb.ForeColor = Color.Red : End If If CLng(合3_tb.Text) >= 0 Then : 合3_tb.ForeColor = Color.Black : Else : 合3_tb.ForeColor = Color.Red : End If If CLng(合4_tb.Text) >= 0 Then : 合4_tb.ForeColor = Color.Black : Else : 合4_tb.ForeColor = Color.Red : End If 現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") 零1_tb.Text = Strings.Format(Val(零1_tb.Text), "#,##0.00") : 支1_tb.Text = Strings.Format(Val(支1_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") : 現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") 零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") 出3_tb.Text = Strings.Format(Val(出3_tb.Text), "#,##0.00") : 合3_tb.Text = Strings.Format(Val(合3_tb.Text), "#,##0.00") 零4_tb.Text = Strings.Format(Val(零4_tb.Text), "#,##0.00") : 支4_tb.Text = Strings.Format(Val(支4_tb.Text), "#,##0.00") : 現4_tb.Text = Strings.Format(Val(現4_tb.Text), "#,##0.00") 出4_tb.Text = Strings.Format(Val(出4_tb.Text), "#,##0.00") : 合4_tb.Text = Strings.Format(Val(合4_tb.Text), "#,##0.00") End If End Sub Private Sub 上個月_bt_Click(sender As Object, e As EventArgs) Handles 上個月_bt.Click If 會計月_ch.Checked = True Then 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 開始日期_dtp.Value = 中間日期_dtp.Value 結束日期_dtp.Value = 中間日期_dtp.Value Else 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 結束日期_dtp.Value = 中間日期_dtp.Value End If 日期格式() End Sub Private Sub 下個月_bt_Click(sender As Object, e As EventArgs) Handles 下個月_bt.Click If 會計月_ch.Checked = True Then 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1) 開始日期_dtp.Value = 中間日期_dtp.Value 結束日期_dtp.Value = 中間日期_dtp.Value Else 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1) 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1) 結束日期_dtp.Value = 中間日期_dtp.Value End If 日期格式() End Sub Private Sub 開始日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 開始日期_dtp.ValueChanged Set_清單1() : Set_清單2() : 彙總計算() End Sub Private Sub 結束日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 結束日期_dtp.ValueChanged Set_清單1() : Set_清單2() : 彙總計算() End Sub Private Sub 會計月_CheckedChanged(sender As Object, e As EventArgs) Handles 會計月_ch.Click 會計月_ch.Checked = True : 一般月_ch.Checked = False : 日期格式() End Sub Private Sub 一般月_CheckedChanged(sender As Object, e As EventArgs) Handles 一般月_ch.Click 會計月_ch.Checked = False : 一般月_ch.Checked = True : 日期格式() End Sub Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles 明細_rb.Click 明細_dgv.Visible = True : 彙總_dgv.Visible = False : 明細_rb.Checked = True : 彙總_rb.Checked = False 現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" : 收支單_dgv.Enabled = True End Sub Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles 彙總_rb.Click 明細_dgv.Visible = False : 彙總_dgv.Visible = True : 明細_rb.Checked = False : 彙總_rb.Checked = True 收支單號_tb.Text = "" : 申請人_tb.Text = "" : 審核人_tb.Text = "" : 明細_dgv.DataSource = Nothing : ds.Clear() : 收支單_dgv.Enabled = False 彙總計算() End Sub Private Sub TextBox14_TextChanged(sender As Object, e As EventArgs) Handles TextBox14.TextChanged ConnOpen() SQL1 = "SELECT 簽名檔圖片 FROM GCM主管簽名檔管理 WHERE 圖片流水號 LIKE '" & TextBox14.Text & "'" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader While dr.Read() = True Dim unused As Byte() = New Byte(-1) {} Dim bytes As Byte() = DirectCast(dr.Item("簽名檔圖片"), Byte()) Dim oStream As New MemoryStream(bytes) PictureBox1.Image = Bitmap.FromStream(oStream) End While conn.Close() PictureBox1.SizeMode = 4 End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click xlApp = CType(CreateObject("Excel.Application"), Application) xlBook = xlApp.Workbooks.Add xlApp.DisplayAlerts = True xlBook.Activate() xlSheet = NewMethod(xlBook) xlSheet.Activate() xlApp.Visible = True xlApp.Application.WindowState = xlMaximized xlSheet.Cells(1, 1) = "年度" : xlSheet.Cells(1, 2) = Year(Today) - 1911 If 明細_rb.Checked = True And 彙總_rb.Checked = False Then xlSheet.Cells(1, 3) = "工巧明智能企業有限公司-營運費用收支明細表" xlSheet.Cells(2, 1) = "收款日期" : xlSheet.Cells(2, 2) = "會計科目" : xlSheet.Cells(2, 3) = "客戶或用途" xlSheet.Cells(2, 4) = "零用金" : xlSheet.Cells(2, 5) = "支票" : xlSheet.Cells(2, 6) = "收入" : xlSheet.Cells(2, 7) = "支出" : xlSheet.Cells(2, 8) = "現金餘額" xlSheet.Cells(2, 9) = "票期" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 xlSheet.Cells(i + 3, 1) = 申請日期_dtp.Value : xlSheet.Cells(i + 3, 2) = 明細_dgv.Rows(i).Cells("會計科目").Value xlSheet.Cells(i + 3, 3) = 明細_dgv.Rows(i).Cells("用途").Value : xlSheet.Cells(i + 3, 4) = 明細_dgv.Rows(i).Cells("零用金").Value xlSheet.Cells(i + 3, 5) = 明細_dgv.Rows(i).Cells("支票").Value : xlSheet.Cells(i + 3, 6) = 明細_dgv.Rows(i).Cells("收入").Value xlSheet.Cells(i + 3, 7) = 明細_dgv.Rows(i).Cells("支出").Value : xlSheet.Cells(i + 3, 9) = 明細_dgv.Rows(i).Cells("票期").Value If i = 0 Then xlSheet.Cells(i + 3, 8) = "=D3+F3-G3" Else xlSheet.Cells(i + 3, 8) = "=H" & i + 2 & "+D" & i + 3 & "+F" & i + 3 & "-G" & i + 3 & "" End If With xlApp.Selection .Font.Bold = True End With N1 = i + 3 : N2 = i + 3 Next i xlSheet.Cells(N1 + 1, 3) = "以下空白" : xlSheet.Cells(N1 + 3, 1) = "簽核(點交)" : xlSheet.Cells(N1 + 3, 7) = "製表 : " & 申請人_tb.Text & " - " & 申請日期_dtp.Value 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 & ")" xlSheet.Cells(N1 + 2, 7) = "=SUM(G3:G" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 8) = "=H" & N1 : xlSheet.Cells(N1 + 2, 1) = "合計" AA(xlApp, xlSheet) : BB(xlApp, xlSheet) ElseIf 明細_rb.Checked = False And 彙總_rb.Checked = True Then xlSheet.Cells(1, 3) = "工巧明智能企業有限公司-營運費用收支彙總簡表" xlSheet.Cells(2, 1) = "日期" : xlSheet.Cells(2, 2) = "主項" : xlSheet.Cells(2, 3) = "子項" : xlSheet.Cells(2, 4) = "子細項" : xlSheet.Cells(2, 5) = "零用金" xlSheet.Cells(2, 6) = "支票" : xlSheet.Cells(2, 7) = "收入" : xlSheet.Cells(2, 8) = "支出" : xlSheet.Cells(2, 9) = "現金餘額" For i As Integer = 0 To 彙總_dgv.Rows.Count - 1 xlSheet.Cells(i + 3, 1) = 彙總_dgv.Rows(i).Cells("日期").Value xlSheet.Cells(i + 3, 2) = 彙總_dgv.Rows(i).Cells("主項").Value xlSheet.Cells(i + 3, 3) = 彙總_dgv.Rows(i).Cells("子項").Value xlSheet.Cells(i + 3, 4) = 彙總_dgv.Rows(i).Cells("子細項").Value xlSheet.Cells(i + 3, 5) = 彙總_dgv.Rows(i).Cells("零用金").Value xlSheet.Cells(i + 3, 6) = 彙總_dgv.Rows(i).Cells("支票").Value xlSheet.Cells(i + 3, 7) = 彙總_dgv.Rows(i).Cells("收入").Value xlSheet.Cells(i + 3, 8) = 彙總_dgv.Rows(i).Cells("支出").Value If i = 0 Then xlSheet.Cells(i + 3, 9) = "=E3+G3-H3" Else xlSheet.Cells(i + 3, 9) = "=I" & i + 2 & "+E" & i + 3 & "+G" & i + 3 & "-H" & i + 3 & "" End If With xlApp.Selection .Font.Bold = True End With N1 = i + 3 : N2 = i + 3 Next i xlSheet.Cells(N1 + 1, 2) = "以下空白" : xlSheet.Cells(N1 + 3, 1) = "簽核" : xlSheet.Cells(N1 + 3, 5) = "製表 : " & gUserName & " - " & Today() 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 & ")" xlSheet.Cells(N1 + 2, 8) = "=SUM(H3:H" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 9) = "=I" & N1 : xlSheet.Cells(N1 + 2, 1) = "合計" CC(xlApp, xlSheet) End If xlSheet.PageSetup.PrintArea = "" xlApp.Cells.Select() xlSheet.Range("B1").Select() xlApp.Application.WindowState = xlMinimized xlSheet.Cells.Select() xlApp.ActiveSheet.Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="0911274990") xlApp.ActiveSheet.EnableSelection = 1 MsgBox("列印完成。") End Sub Private Shared Function NewMethod(xlBook As Workbook) As Worksheet Return CType(xlBook.Worksheets.Add, Worksheet) End Function Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet) xlSheet.Cells.Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With xlSheet.Columns("A:A").Select : myExcel.Selection.NumberFormatLocal = "m/d;@" With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("B1").Select() With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 25 xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 30 xlSheet.Columns("D:H").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "#,##0;[紅色]-#,##0" xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "[$-zh-TW]e/m/d;@" xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 25 xlSheet.Range("A2:I2").Select() With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("A2:I" & N1 + 2).Select() : myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.ActiveWindow.DisplayGridlines = False xlSheet.Rows("3:" & N1 + 2).Select : myExcel.Selection.RowHeight = 20 xlSheet.Rows(N1 + 3 & ":" & N1 + 3).Select : myExcel.Selection.RowHeight = 40 xlSheet.Columns("I:I").Select With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("A" & N1 + 2 & ":C" & N1 + 2).Select() : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True End With xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 25 With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With End Sub Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet) Clipboard.SetDataObject(PictureBox1.Image) xlSheet.Range("B" & N2 + 3).Select() myExcel.ActiveSheet.Pictures.Paste.Select myExcel.Selection.ShapeRange.Height = 43 myExcel.Selection.ShapeRange.IncrementTop(3) End Sub Private Sub CC(ByVal myExcel As Application, ByVal xlSheet As Worksheet) xlSheet.Cells.Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 8 xlSheet.Columns("B:C").Select : myExcel.Selection.ColumnWidth = 15 xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 20 xlSheet.Columns("E:I").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 25 xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 25 xlSheet.Rows("3:" & N1 + 2).Select : myExcel.Selection.RowHeight = 20 xlSheet.Rows(N1 + 3 & ":" & N1 + 3).Select : myExcel.Selection.RowHeight = 40 xlSheet.Rows("2:2").Select With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("A1").Select() With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Range("B1").Select() With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False End With xlSheet.Rows("1:1").Select With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 16 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone End With xlSheet.Range("A2:I" & N1 + 2).Select() : myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With xlSheet.Range("A" & N1 + 2 & ":D" & N1 + 2).Select() : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True End With xlSheet.Columns("E:I").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00" myExcel.ActiveWindow.DisplayGridlines = False End Sub '----------------------滑鼠右鍵-------------------------------------------------------------------------------------------------------------------------------------------------------------------- Private Sub 重新讀取ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新讀取ToolStripMenuItem.Click Set_清單1() : Set_清單2() : 彙總計算() End Sub End Class