回答編集履歴
3
修正
test
CHANGED
@@ -3,20 +3,6 @@
|
|
3
3
|
```VBA
|
4
4
|
|
5
5
|
Sub 転記()
|
6
|
-
|
7
|
-
'
|
8
|
-
|
9
|
-
' 転記 Macro
|
10
|
-
|
11
|
-
'
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
'
|
16
|
-
|
17
|
-
'シート③のデータをシート「購入依頼書」に転記(21行とばしで転記)
|
18
|
-
|
19
|
-
|
20
6
|
|
21
7
|
Dim ws As Worksheet
|
22
8
|
|
@@ -76,6 +62,8 @@
|
|
76
62
|
|
77
63
|
|
78
64
|
|
65
|
+
'終了
|
66
|
+
|
79
67
|
CreateObject("WScript.Shell").Popup "終了しました", 3, "終了", vbInformation
|
80
68
|
|
81
69
|
|
2
追記
test
CHANGED
@@ -1,43 +1,85 @@
|
|
1
|
-
こんな感じでどうでしょうか。
|
1
|
+
こんな感じでどうでしょうか。(少し修正してみました)
|
2
2
|
|
3
3
|
```VBA
|
4
4
|
|
5
|
-
|
5
|
+
Sub 転記()
|
6
6
|
|
7
|
-
|
7
|
+
'
|
8
8
|
|
9
|
-
|
9
|
+
' 転記 Macro
|
10
10
|
|
11
|
-
|
11
|
+
'
|
12
12
|
|
13
|
+
|
14
|
+
|
15
|
+
'
|
16
|
+
|
17
|
+
'シート③のデータをシート「購入依頼書」に転記(21行とばしで転記)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
Dim ws As Worksheet
|
22
|
+
|
23
|
+
Dim wsdata As Worksheet
|
24
|
+
|
25
|
+
Set ws = Workbooks("マクロ購入依頼書練習.xlsm").Worksheets("③")
|
26
|
+
|
13
|
-
|
27
|
+
Set wsdata = Workbooks("マクロ購入依頼書練習.xlsm").Worksheets("購入依頼書")
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
'高速化
|
32
|
+
|
33
|
+
Application.ScreenUpdating = False
|
34
|
+
|
35
|
+
Application.Calculation = xlCalculationManual
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
Dim i, j, x, h
|
40
|
+
|
41
|
+
i = 6 '転記元の開始行
|
42
|
+
|
43
|
+
x = 6 '6行ごと
|
44
|
+
|
45
|
+
h = Array(ws.Range("E1").Value, ws.Range("E2").Value)
|
46
|
+
|
47
|
+
With wsdata
|
48
|
+
|
49
|
+
For j = 6 To 174 Step 21
|
50
|
+
|
51
|
+
.Cells(j, 1).Resize(, 2).Value = h '一般, 科目
|
52
|
+
|
53
|
+
.Cells(j + 3, 2).Resize(x).Value = ws.Cells(i, 4).Resize(x).Value '品名
|
54
|
+
|
55
|
+
.Cells(j + 3, 6).Resize(x, 4).Value = ws.Cells(i, 5).Resize(x, 4).Value '数量~金額
|
56
|
+
|
57
|
+
.Cells(j + 3, 11).Resize(x, 2).Value = ws.Cells(i, 9).Resize(x, 2).Value '希望納期~購入先
|
58
|
+
|
59
|
+
.Cells(j + 3, 23).Resize(x).Value = ws.Cells(i, 11).Resize(x).Value '備考
|
60
|
+
|
61
|
+
.Cells(j + 3, 8).Resize(x, 2).NumberFormatLocal = "#,###;;" '単価,金額のカンマ(0の場合は表示しない)
|
62
|
+
|
63
|
+
i = i + x
|
64
|
+
|
65
|
+
Next
|
14
66
|
|
15
67
|
End With
|
16
68
|
|
17
69
|
|
18
70
|
|
19
|
-
|
71
|
+
'高速化
|
20
72
|
|
21
|
-
|
73
|
+
Application.Calculation = xlCalculationAutomatic
|
22
74
|
|
23
|
-
j = 9 '転記先の行
|
24
|
-
|
25
|
-
|
75
|
+
Application.ScreenUpdating = True
|
26
|
-
|
27
|
-
wsdata.Cells(j, 2).Resize(x).Value = ws.Cells(i, 4).Resize(x).Value '品名
|
28
|
-
|
29
|
-
wsdata.Cells(j, 6).Resize(x, 4).Value = ws.Cells(i, 5).Resize(x, 4).Value '数量~金額
|
30
|
-
|
31
|
-
wsdata.Cells(j, 11).Resize(x, 2).Value = ws.Cells(i, 9).Resize(x, 2).Value '希望納期~購入先
|
32
|
-
|
33
|
-
wsdata.Cells(j, 23).Resize(x).Value = ws.Cells(i, 11).Resize(x).Value '備考
|
34
|
-
|
35
|
-
wsdata.Cells(j, 8).Resize(x, 2).NumberFormatLocal = "#,###;;" '単価,金額のカンマ(0の場合は表示しない)
|
36
|
-
|
37
|
-
j = j + 21
|
38
|
-
|
39
|
-
Next
|
40
76
|
|
41
77
|
|
42
78
|
|
79
|
+
CreateObject("WScript.Shell").Popup "終了しました", 3, "終了", vbInformation
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
End Sub
|
84
|
+
|
43
85
|
```
|
1
追記
test
CHANGED
@@ -1,6 +1,20 @@
|
|
1
1
|
こんな感じでどうでしょうか。
|
2
2
|
|
3
3
|
```VBA
|
4
|
+
|
5
|
+
Dim ws As Worksheet
|
6
|
+
|
7
|
+
Dim wsData As Worksheet
|
8
|
+
|
9
|
+
With Workbooks("マクロ購入依頼書練習.xlsm")
|
10
|
+
|
11
|
+
Set ws = .Worksheets("③")
|
12
|
+
|
13
|
+
Set wsData = .Worksheets("購入依頼書")
|
14
|
+
|
15
|
+
End With
|
16
|
+
|
17
|
+
|
4
18
|
|
5
19
|
Dim i, j, x
|
6
20
|
|