|
こんにちは。かみちゃん です。
>今後の勉強のためにも、”短く”できるコードがあるなら
たとえば、以下のような感じのコードになります。
Option Explicit
Dim TBL(1 To 149) As Control
Dim データ範囲 As Range
Public myID As Range
Public 年調給与額 As Currency
Public 控除後給与額 As Currency
Public 課税所得額 As Currency
Public kiso(1 To 2) As Currency
'kiso(1)…基礎控除額
'kiso(2)…老人控除対象配偶者控除加算額
Public kasan(1 To 9) As Currency
'kasan(1)…同居特別障害者
'kasan(2)…特別障害者
'kasan(3)…一般障害者
'kasan(4)…特別寡婦
'kasan(5)…寡婦又は寡夫
'kasan(6)…特定扶養親族
'kasan(7)…老親
'kasan(8)…老親の場合の同居加算
'kasan(9)…勤労学生
'家族変数定義(最大六人分)
Public huyou(1 To 6) As Currency
Public tokutei(1 To 6) As Currency
Public doukyo(1 To 6) As Currency
Public kahu_kouzyo(1 To 6) As Currency
Public syougai_kouzyo(1 To 6) As Currency
'huyou(1)…一人目
'huyou(2)…二人目
'huyou(3)…三人目
Private Sub UserForm_initialize()
Dim i As Long
Dim v As Variant
With Worksheets("扶養控除")
v = .Range("A1:E9").Value
End With
kiso(1) = Val(v(6, 3)) '基礎控除額
kiso(2) = Val(v(8, 4)) '老人控除対象配偶者控除加算額
kasan(1) = Val(v(14, 4)) '同居特別障害者
kasan(2) = Val(v(13, 4)) '特別障害者
kasan(3) = Val(v(12, 4)) '一般障害者
kasan(4) = Val(v(15, 4)) '特別寡婦
kasan(5) = Val(v(16, 4)) '寡婦又は寡夫
kasan(6) = Val(v(11, 4)) '特定扶養親族
kasan(7) = Val(v(9, 5)) '老親の場合の同居加算
kasan(8) = Val(v(10, 4)) '老親
kasan(9) = Val(v(17, 4)) '勤労学生
For i = 1 To 6
With Worksheets("辞書")
Controls("Combo家族続柄_" & i).List = .Range("続柄表").Value
Controls("Combo家族続柄_" & i).List = .Range("続柄表").Value
Controls("Combo家族元号_" & i).List = .Range("元号表").Value
Controls("Combo家族生年_" & i).List = .Range("年数表").Value
Controls("Combo家族生月_" & i).List = .Range("月表").Value
Controls("Combo家族生日_" & i).List = .Range("日表").Value
Controls("Combo寡婦別_" & i).List = .Range("寡婦別表").Value
Controls("Combo障害別_" & i).List = .Range("障害別表").Value
Controls("Combo同居別_" & i).List = .Range("同居別居表").Value
End With
Next
spin移動.Max = レコード数取得 + 1
Set TBL(1) = Combo社員ID
For i = 1 To 6
If i > 1 Then
Set TBL(64 + i * 11) = Controls("Text家族氏名_" & i)
End If
Set TBL(65 + i * 11) = Controls("Combo家族続柄_" & i)
Set TBL(66 + i * 11) = Controls("Combo家族元号_" & i)
Set TBL(67 + i * 11) = Controls("Combo家族生年_" & i)
Set TBL(68 + i * 11) = Controls("Combo家族生月_" & i)
Set TBL(69 + i * 11) = Controls("Combo家族生日_" & i)
Set TBL(70 + i * 11) = Controls("Text特定別_" & i)
Set TBL(71 + i * 11) = Controls("Combo同居別_" & i)
Set TBL(72 + i * 11) = Controls("Combo寡婦別_" & i)
Set TBL(73 + i * 11) = Controls("Combo障害別_" & i)
Set TBL(74 + i * 11) = Controls("Text家族控除額_" & i)
Next
Set データ範囲 = Worksheets("年調DATA").Range("A1").CurrentRegion
If データ範囲.Columns.Count <> 1 Then
データ表示 2
End If
End Sub
数多くのコントロールを持つUserFormを再現させるのが、少々面倒だったので、
再現検証はしていません。
|
|