回答編集履歴
1
コメント反映
answer
CHANGED
@@ -11,26 +11,32 @@
|
|
11
11
|

|
12
12
|
|
13
13
|
|
14
|
-
おまけ。(1)を処理するコードサンプル
|
14
|
+
おまけ。(1)を処理するコードサンプル。※コメント①②③を反映したもの
|
15
15
|
```
|
16
|
-
Dim srcSH As Worksheet: Set srcSH = 元
|
16
|
+
Dim srcSH As Worksheet: Set srcSH = ThisWorkbook.Sheets("元")
|
17
|
-
Dim dstSH As Worksheet: Set dstSH = 中間シート
|
17
|
+
Dim dstSH As Worksheet: Set dstSH = ThisWorkbook.Sheets("中間シート")
|
18
|
-
|
18
|
+
|
19
19
|
Dim eRx As Long: eRx = srcSH.Cells.SpecialCells(xlCellTypeLastCell).Row
|
20
20
|
Dim wx As Long: wx = 1
|
21
21
|
Dim rx As Long
|
22
22
|
For rx = 2 To eRx
|
23
23
|
Dim cx As Long: cx = 2
|
24
24
|
Dim url As String: url = srcSH.Cells(rx, 1).Value
|
25
|
+
If (url = "") Then GoTo SKIP01 ' 空白ならスキップ
|
26
|
+
'
|
27
|
+
' urlの値によって処理を選択
|
28
|
+
'
|
29
|
+
Select Case (True)
|
25
|
-
|
30
|
+
Case (InStr(url, "?s=") > 0): GoTo SKIP01 ' スキップ(集計しない)
|
26
|
-
cx = 3
|
27
|
-
Else
|
28
|
-
|
31
|
+
Case (InStr(url, "?year=") > 0): cx = 2 ' 値はPV欄へ。urlはそのまま。
|
32
|
+
Case (InStr(url, "ml=") > 0): cx = 3: url = Split(url, "?")(0) ' 値はml欄へ。urlは?より前のみ
|
33
|
+
Case (InStr(url, "side=") > 0): cx = 4: url = Split(url, "?")(0) ' 値はbunner欄へ。urlは?より前のみ
|
29
|
-
End
|
34
|
+
End Select
|
30
35
|
wx = wx + 1
|
31
|
-
dstSH.Cells(wx, 1) =
|
36
|
+
dstSH.Cells(wx, 1) = url
|
32
37
|
dstSH.Cells(wx, 2) = srcSH.Cells(rx, 2) ' PVは常に設定
|
33
38
|
dstSH.Cells(wx, cx) = srcSH.Cells(rx, 2) ' 決定したカラムに値設定
|
39
|
+
SKIP01:
|
34
40
|
Next rx
|
35
41
|
'
|
36
42
|
' Sort (略)
|