回答編集履歴

1

マクロの記録で得られた例を追加した

2018/05/15 14:07

投稿

coco_bauer
coco_bauer

スコア6915

test CHANGED
@@ -1,3 +1,87 @@
1
1
  マクロの記録を使えば、自分で操作した事に対応するマクロが記録されます。
2
2
 
3
3
  特に①のようなケースでは有用な方法ですから、ためしてみてください。
4
+
5
+
6
+
7
+ ==
8
+
9
+ ① A1:D7 の値を、11行目から、B,C,D,Aの列にコピーする操作をマクロ記録してみました。
10
+
11
+ A1:A7がB11:B17に、B1:B7がC11:C17に、C1:C7がD11:D17に、D1:D7がA11:A17にコピーされる例です。
12
+
13
+
14
+
15
+ ```Excel VBA
16
+
17
+ Sub 列を入れ替えてコピーする()
18
+
19
+ '
20
+
21
+ ' 列を入れ替えてコピーする Macro
22
+
23
+ '
24
+
25
+
26
+
27
+ '
28
+
29
+ Range("A1:A7").Select 'A1:A7を選択して
30
+
31
+ Application.CutCopyMode = False
32
+
33
+ Selection.Copy 'コピーして
34
+
35
+ Range("B11").Select '行き先のB11セルを選択して
36
+
37
+ Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
38
+
39
+ :=False, Transpose:=False '値を貼付けする(B11:B17にA1:A7の値がコピーされる)
40
+
41
+ '以下、同様のコードでB1:B7がC11:C17に、C1:C7がD11:D17に、D1:D7がA11:A17にコピーされます。
42
+
43
+ Range("B1:B7").Select
44
+
45
+ Application.CutCopyMode = False
46
+
47
+ Selection.Copy
48
+
49
+ Range("C11").Select
50
+
51
+ Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
52
+
53
+ :=False, Transpose:=False
54
+
55
+ Range("C1:C7").Select
56
+
57
+ Application.CutCopyMode = False
58
+
59
+ Selection.Copy
60
+
61
+ Range("D11").Select
62
+
63
+ Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
64
+
65
+ :=False, Transpose:=False
66
+
67
+ Range("D1:D7").Select
68
+
69
+ Application.CutCopyMode = False
70
+
71
+ Selection.Copy
72
+
73
+ Range("A11").Select
74
+
75
+ Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
76
+
77
+ :=False, Transpose:=False
78
+
79
+ End Sub
80
+
81
+ ```
82
+
83
+
84
+
85
+ こうゆう七面倒くさいVBAが自動的に作られるのが、マクロ記録の良いところです。
86
+
87
+ (上記のコードは、マクロの記録で得られたVBAのコードに、動作を説明するコメントを追加したものです。