質問編集履歴

2

自身で再度調べ、修正加筆しました。

2019/04/12 18:37

投稿

shoe
shoe

スコア13

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- マクロによる貼り付け。下記⑤を参照下さい。
5
+ マクロによる貼り付け。
6
6
 
7
7
 
8
8
 
@@ -10,7 +10,13 @@
10
10
 
11
11
 
12
12
 
13
- 命令文が分からないので、ご教示願います。
13
+ コードが分からないので、ご教示願います。
14
+
15
+ i=1の時E3にペースト、i=2の時F3にペーストと、iが1増えるたびに列が右に1つずれてペースト
16
+
17
+ されるコードを組んでおりますが、iには日付を入力しますので、最大で31になります。
18
+
19
+ これがもっと簡易的なコードにならないかというご相談です。
14
20
 
15
21
 
16
22
 
@@ -22,23 +28,31 @@
22
28
 
23
29
 
24
30
 
25
- Dim i As String
31
+ Dim i As Integer
26
32
 
27
- Dim answer As Integer
33
+ Dim answer As String
34
+
35
+ Dim errmsg As String
28
36
 
29
37
 
30
38
 
31
- If Range("B2") = "" Then
39
+ i = Range("B1")
32
-
33
- MsgBox (" 日付を入力して下さい。")
34
-
35
-
36
-
37
- GoTo Err
38
40
 
39
41
 
40
42
 
43
+ If Range("B1") = "" Then
44
+
45
+
46
+
47
+ On Error GoTo errmsg
48
+
49
+ errmsg: MsgBox (" 日付を入力して下さい。")
50
+
51
+
52
+
53
+ Exit Sub
54
+
41
- End If
55
+ End If
42
56
 
43
57
 
44
58
 
@@ -50,29 +64,67 @@
50
64
 
51
65
 
52
66
 
53
- Application.ScreenUpdating = False
54
-
55
- Range("AC3:AC104").Select
56
-
57
- Selection.Copy
67
+ End If
58
-
59
- Sheets(" 計算用").Select
60
68
 
61
69
 
62
70
 
71
+ Application.ScreenUpdating = False
72
+
73
+ Range("AC3:AC103").Select
74
+
63
-
75
+ Selection.Copy
76
+
77
+ Sheets("計算用").Select
64
78
 
65
79
 
66
80
 
67
- Sheets(" 入力用").Select
81
+ If i = 1 Then
68
82
 
83
+ Range("E3").Select
84
+
85
+ Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
86
+
87
+ False, Transpose:=False
88
+
89
+
90
+
91
+ ElseIf i = 2 Then
92
+
93
+ Range("F3").Select
94
+
95
+ Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
96
+
97
+ False, Transpose:=False
98
+
99
+
100
+
101
+ ElseIf i = 3 Then
102
+
103
+ Range("G3").Select
104
+
105
+ Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
106
+
107
+ False, Transpose:=False
108
+
109
+
110
+
111
+ End If
112
+
113
+
114
+
115
+ Sheets("入力用").Select
116
+
69
- Range("B2").Select
117
+ Range("B1").Select
70
118
 
71
119
  Selection.ClearContents
72
120
 
73
- Range("AC3:AC104").Select
121
+ Range("A3:J200").Select
74
122
 
75
123
  Selection.ClearContents
124
+
125
+ Range("B1").Select
126
+
127
+
76
128
 
77
129
 
78
130
 
@@ -84,24 +136,8 @@
84
136
 
85
137
 
86
138
 
87
- ### 補足情報(FW/ツールのバージョンなど)
139
+ ックモドで、間違いを修正し加筆しました。
88
140
 
89
141
 
90
142
 
91
- ①入力用シート、計算用シートという2枚のシートがある。(以下、入力用、計算用)
92
-
93
- ②入力用のB2に日付を入れる。
94
-
95
- ③入力用にある挿入した図形を押す。
96
-
97
- ④入力用のAC3からAC104をコピー
98
-
99
- ⑤計算用に貼り付け。但し、計算用にはE2に1、F2に2といった感じで31まである。
100
-
101
- 入力用のB2の日付と計算用の2行目の数字が一致している列に3行目からペーストしたい。
102
-
103
- ⑥入力用B2、AC3からAC104の数字をクリア。
143
+ ### 補足情報(FW/ツールバージョンなど)
104
-
105
-
106
-
107
- が一連の流れになります。

1

セル番地を修正しました。

2019/04/12 18:37

投稿

shoe
shoe

スコア13

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- If Range("B4") = "" Then
31
+ If Range("B2") = "" Then
32
32
 
33
33
  MsgBox (" 日付を入力して下さい。")
34
34
 
@@ -66,7 +66,7 @@
66
66
 
67
67
  Sheets(" 入力用").Select
68
68
 
69
- Range("B4").Select
69
+ Range("B2").Select
70
70
 
71
71
  Selection.ClearContents
72
72