回答編集履歴

1

コメント反映

2020/02/17 02:47

投稿

h.horikoshi
h.horikoshi

スコア505

test CHANGED
@@ -24,15 +24,15 @@
24
24
 
25
25
 
26
26
 
27
- おまけ。(1)を処理するコードサンプル
27
+ おまけ。(1)を処理するコードサンプル。※コメント①②③を反映したもの
28
28
 
29
29
  ```
30
30
 
31
- Dim srcSH As Worksheet: Set srcSH = 元
31
+ Dim srcSH As Worksheet: Set srcSH = ThisWorkbook.Sheets("")
32
32
 
33
- Dim dstSH As Worksheet: Set dstSH = 中間シート
33
+ Dim dstSH As Worksheet: Set dstSH = ThisWorkbook.Sheets("中間シート")
34
34
 
35
-
35
+
36
36
 
37
37
  Dim eRx As Long: eRx = srcSH.Cells.SpecialCells(xlCellTypeLastCell).Row
38
38
 
@@ -46,23 +46,35 @@
46
46
 
47
47
  Dim url As String: url = srcSH.Cells(rx, 1).Value
48
48
 
49
- If (InStr(url, "ml=") > 0) Then ' url中に"ml="がある
49
+ If (url = "") Then GoTo SKIP01 ' 空白ならスキップ
50
50
 
51
- cx = 3
51
+ '
52
52
 
53
- Else
53
+ ' urlの値によって処理を選択
54
54
 
55
- If (InStr(url, "side_") > 0) Then cx = 4 ' url中に"side_"がある
55
+ '
56
56
 
57
+ Select Case (True)
58
+
59
+ Case (InStr(url, "?s=") > 0): GoTo SKIP01 ' スキップ(集計しない)
60
+
61
+ Case (InStr(url, "?year=") > 0): cx = 2 ' 値はPV欄へ。urlはそのまま。
62
+
63
+ Case (InStr(url, "ml=") > 0): cx = 3: url = Split(url, "?")(0) ' 値はml欄へ。urlは?より前のみ
64
+
65
+ Case (InStr(url, "side=") > 0): cx = 4: url = Split(url, "?")(0) ' 値はbunner欄へ。urlは?より前のみ
66
+
57
- End If
67
+ End Select
58
68
 
59
69
  wx = wx + 1
60
70
 
61
- dstSH.Cells(wx, 1) = Split(url, "?")(0) ' URL。?以降を除く
71
+ dstSH.Cells(wx, 1) = url
62
72
 
63
73
  dstSH.Cells(wx, 2) = srcSH.Cells(rx, 2) ' PVは常に設定
64
74
 
65
75
  dstSH.Cells(wx, cx) = srcSH.Cells(rx, 2) ' 決定したカラムに値設定
76
+
77
+ SKIP01:
66
78
 
67
79
  Next rx
68
80