質問するログイン新規登録

回答編集履歴

2

コメントにともない編集

2020/02/06 08:28

投稿

per_
per_

スコア41

answer CHANGED
@@ -21,20 +21,22 @@
21
21
  Dim j As Long: j = 0
22
22
  Dim URLname As String
23
23
 
24
- Dim pv(1, 3) As Variant
24
+ Dim pv(49, 3) As Variant
25
25
  '2行4列の配列を作成します
26
26
  '※配列は0番から始まります
27
- 'URLの種類が増えた分だけ行数を増やしてください
27
+ '[URL]の種類が増えた分だけ行数を増やしてください
28
+ '[/topics/2019/]で1行、[/interview/2020/]で2行
28
29
  '1列:URL名、2列:PV数、3列:ML、4列:バナー
29
30
 
31
+
30
-
32
+   '②:シート名称修正。データシートにはURLとPVの情報が載っているようにしてください。
31
- Sheets("重複削除").Activate
33
+ Sheets("データ").Activate
32
- lastcol = Sheets("重複削除").Range("A1").End(xlDown).Row
34
+ lastcol = Sheets("データ").Range("A1").End(xlDown).Row
33
-
35
+
34
- Sheets("重複削除").Columns(2).Insert
36
+ Sheets("データ").Columns(2).Insert
35
- Sheets("重複削除").Range("A:A").TextToColumns Other:=True, OtherChar:="?"
37
+ Sheets("データ").Range("A:A").TextToColumns Other:=True, OtherChar:="?"
36
-
38
+
37
- '2行目から最終行までくりかえし処理
39
+ '2行目から記載されている最終行(1000行程度?)までくりかえし処理
38
40
  For n = 2 To lastcol
39
41
  If Cells(n, 1).Value <> Cells(n - 1, 1) Then
40
42
  URLname = Cells(n, 1).Value
@@ -52,8 +54,9 @@
52
54
  pv(i, 1) = pv(i, 1) + pv(i, 2) + pv(i, 3)
53
55
  Next
54
56
 
55
- Sheets("結果ページ").Activate
57
+ Sheets("結果").Activate     '②:修正
56
- Range("A2").Value = pv
58
+ Range("A2").Resize(50, 4) = pv '③:修正
57
59
 
58
60
  End Sub
61
+
59
62
  ```

1

回答の追記

2020/02/06 08:28

投稿

per_
per_

スコア41

answer CHANGED
@@ -1,3 +1,11 @@
1
+ 回答の前に…
2
+ エクセルを開いた状態で`Alt + F11`を押すとエディターを開くことができます。
3
+ (質問者さんがマクロの結果をコピーした画面です)
4
+ 実行したい`Sub`にカーソルをおいた状態で`F8キー`を押すとコードを1行ずつ確認していくことができます。
5
+ 各行がどんな動作をしているのか確かめながら書き換えていくと良いでしょう。
6
+ 参考:[マクロの編集の基本](https://vbabeginner.net/%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%AE%E7%B7%A8%E9%9B%86%E3%81%AE%E5%9F%BA%E6%9C%AC/)
7
+
8
+
1
9
  ワークシートの関数は処理が重くなりがちなので
2
10
  VBA上で計算して結果シートに貼り付けまで行えるようにしたほうが良いと思います。
3
11
  項目数など実際にどれくらいの量があるかわからないので、配列の数字などは適宜変えてください。