Pages

Subscribe:

Ads 468x60px

Labels

2016年12月26日 星期一

James的資訊安全實驗室: WINDOWS命令提示字元下常用DOS命令

James的資訊安全實驗室: WINDOWS命令提示字元下常用DOS命令: net user 帳戶名 密碼 /add 建立帳戶。 net user guest /active:yes 啟用guest帳戶。 net user 查看電腦內有哪些帳戶。 net user 帳戶名,查看帳戶的屬性。 net localgroup administrat...

James的資訊安全實驗室: 運用 mimikatz 神器 獲取的Windows密碼

James的資訊安全實驗室: 運用 mimikatz 神器 獲取的Windows密碼: 這是一位法國駭客開發的工具,運用該工具可直接從Lsass.exe裡獲取 Windows的明文密碼 “mimikatz“下載地址: http://blog.gentilkiwi.com/mimikatz 相關文章: http://pentestmonkey.net/...

2016年12月23日 星期五

阿肥的DB學習之路: 使用DMV(Dynamic Management View)找出最消耗IO的查詢

阿肥的DB學習之路: 使用DMV(Dynamic Management View)找出最消耗IO的查詢: 通常 SQL 指令的效能不佳的原因有許多,其中的一個原因是因為大量的 IO 的緣故,所以增加 SQL 指令的效能方法之一就是減少 IO 的產生,為了要減少 IO 的產生第一件要務就是找處最花費 IO 的 SQL 指令,以下就是使用 DMV 找出最消耗 IO 的 SQL 指令...

阿肥的DB學習之路: SQL SERVER HA技術比較

阿肥的DB學習之路: SQL SERVER HA技術比較: 一、情境: 1.         A 機器 (SQL 2008R2) 單向 同步 B 機器 (SQL 2008R2),機器數目2台。 。 2.         在 特定時間大量的 DELETE 與 INSERT 資料。 3.         資料延遲要 小於 5 分鐘 。 4. ...

阿肥的DB學習之路: 如何在SQLSERVER EXPRESS設定排程?

阿肥的DB學習之路: 如何在SQLSERVER EXPRESS設定排程?: 如何在 SQLSERVER EXPRESS 設定排程? 問題: SQLSERVER EXPRESS 沒有 SQL AGENT 的服務,那要如何設定自動排程作業? 解答:要設定排程工作必需要使用 SQLCMD 加上 WINDOWS 排程,就可以達成自動排程作業。 ...

阿肥的DB學習之路: 如何刪除重複的值

阿肥的DB學習之路: 如何刪除重複的值: 問題: 如果我發現 Table 有重複的資料時,我該如何刪除重複的資料? 解決方法:使用 COUNT 加上 GROUP BY 找出重複的資料,在使用 TOP 或 SET ROWCOUNT 來刪除重複的資料。 步驟: 1. 使用 COUNT 加 GROUP BY 找出重複的資料...

2016年11月30日 星期三

VBA如何計算健保應負擔金額

資料來源

在會計師事務所待過、查過內控,應該都知道證期局有個《公開發行公司建立內部控制制度處理準則》,所有股票上市上櫃的公司,必須依照規定建立八大循環的控制作業。所以無論是會計人員配合外部查核、或者是公司稽核單位例行性內部稽查,都會針對八大循環開展工作。其中有個薪工循環,重點之一為「計算薪資稅及各項代扣款」,主要是代扣勞健保及所得稅。實務的標準作業,是到網站下載最新的級距金額表,核算代扣款是否合乎規定。這篇文章以健保為例,介紹如何以函數公式及VBA程式,自動依照級距計算金額,以下分享:
一、《全民健康保險保險費負擔金額表》,下載自「中央健康保險署」網站,依照不同月投保金額(薪資所得),分別列明員工及公司應負擔金額。
全民健康保險保險費負擔金額表
二、有讀過《會計人的Excel小教室》的讀者,應該都可以利用IF函數設計公式:「=IF(E2<20100,284,IF(E2<21000,296,IF(E2<21900,309,IF(E2<22800,323,336))))」為方便說明,這裡假設公司員工薪資只用到五個級距,而且員工皆無眷屬。
假設公司員工薪資只用到五個級距
三、游標移到下方工作表名稱,滑鼠右鍵,點選「檢視程式碼」,以最快、最直接的方式進入VBA。
檢視程式碼
四、「插入」、程序」,準備開始寫程式。
準備開始寫程式
五、在跳出來的「新增程序」視窗,名稱輸入「健保級距計算」,「型態」維持預設的「Sub(S)」,「有效範圍」維持預設的「Public(B)」。
新增程序
六、輸入如下程式碼:
Public Sub 健保級距計算()
For i = 2 To 6 If Cells(i, “D") < 20100 Then Cells(i, “G") = 284
If Cells(i, “D") >= 20100 And Cells(i, “D") < 21000 Then Cells(i, “G") = 296
If Cells(i, “D") >= 21000 And Cells(i, “D") < 21900 Then Cells(i, “G") = 309
If Cells(i, “D") >= 21900 And Cells(i, “D") < 22800 Then Cells(i, “G") = 323
If Cells(i, “D") >= 22800 And Cells(i, “D") < 24000 Then Cells(i, “G") = 336
Next
End Sub
Public Sub 健保級距計算
七、在上方功能區操作:「執行(R)」、「執行Sub或UserForm F5」意思執行VBA程式。Excel函數公式只要輸入完畢,便會開始計算,VBA程式輸入完畢會儲存,必須操作執行,程式才會運作,這是兩者不同的地方。
八、關閉Visual Basic編輯器,回到工作簿,可以看到G欄呈現和F欄相同的結果,正是依照級距個人應負擔的健保金額。
關閉Visual Basic編輯器

Visual Basic for Applications,聽起來艱澀,似乎專屬於資工系資管系的工程師領域,然而以這篇文章的VBA程式來看,即便不多作說明,應該也能看得懂這幾段程式在「講」什麼,這是BASIC語言自1960s年代延續下來的特色,接近自然語言,因此容易理解、也便於學習。套句周爺老電影台詞:「只要有心,人人都可以是食神,」在Excel世界裡,只要有心,人人都可以讓VBA飛!