質問編集履歴
2
コードを修正。
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,15 +18,21 @@
|
|
18
18
|

|
19
19
|
### 該当のソースコード
|
20
20
|
現在の社員名簿を出力するVBAコードです。
|
21
|
+
※(1/26追記)文字数制限のため、ソースコードを修正しました。
|
21
22
|
```VBA
|
22
23
|
Sub meibokosin(d As Date, c As Collection)
|
23
24
|
|
24
25
|
Dim kubun As Integer, today_d As Date, str_d As Date, end_d As Date
|
25
|
-
Dim no As Integer, syain_no As
|
26
|
+
Dim no As Integer, syain_no As Long, honbu As String, bu As String, ka As String, kakari As String, sosikicode As Long, _
|
26
27
|
koyo_keitai As String, koyo_keitai_code As Integer, syokusyou As String, kakuzuke1 As String, kakuzuke2 As String, kakuzuke_code As Long, _
|
27
28
|
yakusyoku As String, yakusyoku_code As Integer, simei As String, seibetu As String, seinengappi As Date, nenrei As Integer, ketuekigata As String, nyusyabi As Date, _
|
28
29
|
kinzokunensuu As Integer, yuubinbangou As String, jyuusyo As String, denwabangou As String, keitaibangou As String, _
|
29
|
-
mailadd As String, gakureki As String, kenpo_no As
|
30
|
+
mailadd As String, gakureki As String, kenpo_no As String, nenkin_no As String, kisonenkin_no As String
|
31
|
+
Dim honbucode As Long, syozoku As String, syozoku_code As Long
|
32
|
+
|
33
|
+
Const AddCol As Long = 128 '追加列数
|
34
|
+
Dim aval(AddCol - 1) As Variant '追加列分格納領域
|
35
|
+
Dim i As Long '添え字
|
30
36
|
|
31
37
|
Dim wS1 As Worksheet
|
32
38
|
Dim wS2 As Worksheet
|
@@ -43,8 +49,8 @@
|
|
43
49
|
|
44
50
|
n = wS4.Cells(Rows.Count, 1).End(xlUp).Row
|
45
51
|
If n > 2 Then
|
46
|
-
wS4.Range(Cells(3, 1), Cells(n,
|
52
|
+
wS4.Range(Cells(3, 1), Cells(n, 162)).ClearContents
|
47
|
-
wS4.Range(Cells(3, 1), Cells(n,
|
53
|
+
wS4.Range(Cells(3, 1), Cells(n, 162)).Borders.LineStyle = xlLineStyleNone
|
48
54
|
End If
|
49
55
|
|
50
56
|
|
@@ -67,6 +73,7 @@
|
|
67
73
|
kakuzuke1 = .Cells(R, 12)
|
68
74
|
kakuzuke2 = .Cells(R, 13)
|
69
75
|
yakusyoku = .Cells(R, 14)
|
76
|
+
syozoku = .Cells(R, 15)
|
70
77
|
End With
|
71
78
|
|
72
79
|
Set rcd = wS3.Range("a:a").Find(syain_no, lookat:=xlWhole)
|
@@ -86,6 +93,11 @@
|
|
86
93
|
kenpo_no = rcd.Offset(0, 12)
|
87
94
|
nenkin_no = rcd.Offset(0, 13)
|
88
95
|
kisonenkin_no = rcd.Offset(0, 14)
|
96
|
+
|
97
|
+
For i = 0 To UBound(aval)
|
98
|
+
aval(i) = rcd.Offset(0, 15 + i)
|
99
|
+
Next
|
100
|
+
|
89
101
|
End If
|
90
102
|
|
91
103
|
With wS2
|
@@ -94,6 +106,7 @@
|
|
94
106
|
Set rcd_ka = .Range("e:e").Find(ka, lookat:=xlWhole)
|
95
107
|
Set rcd_kakari = .Range("g:g").Find(kakari, lookat:=xlWhole)
|
96
108
|
sosikicode = rcd_honbu.Offset(0, 1) * 1000000 + rcd_bu.Offset(0, 1) * 10000 + rcd_ka.Offset(0, 1) * 100 + rcd_kakari.Offset(0, 1)
|
109
|
+
honbucode = rcd_honbu.Offset(0, 1)
|
97
110
|
|
98
111
|
Set rcd_koyo_keitai = .Range("j:j").Find(koyo_keitai, lookat:=xlWhole)
|
99
112
|
koyo_keitai_code = rcd_koyo_keitai.Offset(0, 1)
|
@@ -104,11 +117,15 @@
|
|
104
117
|
|
105
118
|
Set rcd_yakusyoku = .Range("q:q").Find(yakusyoku, lookat:=xlWhole)
|
106
119
|
yakusyoku_code = rcd_yakusyoku.Offset(0, 1)
|
120
|
+
|
121
|
+
Set rcd_syozoku = .Range("t:t").Find(syozoku, lookat:=xlWhole)
|
122
|
+
syozoku_code = rcd_syozoku.Offset(0, 1)
|
123
|
+
|
107
124
|
End With
|
108
125
|
|
109
126
|
Dim arr() As Variant
|
110
127
|
If (kubun <> 3 And str_d <= today_d And today_d <= end_d) Or (str_d <= today_d And end_d = 0) Then
|
111
|
-
ReDim Preserve arr(
|
128
|
+
ReDim Preserve arr(161, p)
|
112
129
|
arr(0, p) = no
|
113
130
|
arr(1, p) = syain_no
|
114
131
|
arr(2, p) = honbu
|
@@ -140,11 +157,19 @@
|
|
140
157
|
arr(28, p) = kenpo_no
|
141
158
|
arr(29, p) = nenkin_no
|
142
159
|
arr(30, p) = kisonenkin_no
|
160
|
+
arr(31, p) = honbucode
|
161
|
+
arr(32, p) = syozoku
|
162
|
+
arr(33, p) = syozoku_code
|
163
|
+
|
164
|
+
For i = 0 To UBound(aval)
|
165
|
+
arr(34 + i, p) = aval(i)
|
166
|
+
Next
|
167
|
+
|
143
168
|
p = p + 1
|
144
169
|
End If
|
145
170
|
Next m
|
146
171
|
|
147
|
-
With wS4.Range("a3").Resize(p,
|
172
|
+
With wS4.Range("a3").Resize(p, 162)
|
148
173
|
.Value = Application.WorksheetFunction.Transpose(arr)
|
149
174
|
End With
|
150
175
|
|
@@ -156,28 +181,19 @@
|
|
156
181
|
|
157
182
|
With wS4
|
158
183
|
.Sort.SortFields.Clear
|
159
|
-
.Sort.SortFields.
|
184
|
+
.Sort.SortFields.add Key:=rcd_sosiki_code, Order:=xlAscending
|
160
|
-
.Sort.SortFields.
|
185
|
+
.Sort.SortFields.add Key:=rcd_koyo_keitai_code, Order:=xlAscending
|
161
|
-
.Sort.SortFields.
|
186
|
+
.Sort.SortFields.add Key:=rcd_yakusyoku_code, Order:=xlAscending
|
162
|
-
.Sort.SortFields.
|
187
|
+
.Sort.SortFields.add Key:=rcd_kakuzuke_code, Order:=xlAscending
|
163
|
-
.Sort.SetRange .Range("A2:
|
188
|
+
.Sort.SetRange .Range("A2:ff" & n)
|
164
189
|
.Sort.Header = xlYes
|
165
190
|
.Sort.Apply
|
166
191
|
End With
|
167
192
|
|
168
|
-
wS4.Range("A2:
|
193
|
+
wS4.Range("A2:ff" & n).Borders.LineStyle = xlContinuous
|
169
194
|
wS4.Range("a1") = d & "現在社員名簿"
|
170
195
|
|
171
196
|
End Sub
|
172
|
-
|
173
|
-
Function Age(FromDate As Variant, ToDate As Variant) As Integer
|
174
|
-
Dim intAge As Integer
|
175
|
-
intAge = Year(ToDate) - Year(FromDate)
|
176
|
-
If Format(ToDate, "mmdd") < Format(FromDate, "mmdd") Then
|
177
|
-
intAge = intAge - 1
|
178
|
-
End If
|
179
|
-
Age = intAge
|
180
|
-
End Function
|
181
197
|
```
|
182
198
|
|
183
199
|
### 実現したいこと
|
1
画像を追加。
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,6 +8,14 @@
|
|
8
8
|
0. 社員基本情報(生年月日やメールアドレス等、異動に関係ない項目)
|
9
9
|
0. 現在の社員名簿(今日現在の社員情報をまとめたもの)
|
10
10
|
|
11
|
+
【異動DB】
|
12
|
+

|
13
|
+
【組織マスター】
|
14
|
+

|
15
|
+
【社員基本情報】
|
16
|
+

|
17
|
+
【現在の社員名簿】
|
18
|
+

|
11
19
|
### 該当のソースコード
|
12
20
|
現在の社員名簿を出力するVBAコードです。
|
13
21
|
```VBA
|