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

回答編集履歴

1

コメント反映

2020/02/17 02:47

投稿

h.horikoshi
h.horikoshi

スコア505

answer CHANGED
@@ -11,26 +11,32 @@
11
11
  ![イメージ説明](a5812351ad5a5a293e4e460df7341d7b.png)
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
- If (InStr(url, "ml=") > 0) Then ' url中に"ml="がある
30
+ Case (InStr(url, "?s=") > 0): GoTo SKIP01 ' スキップ(集計しない)
26
- cx = 3
27
- Else
28
- If (InStr(url, "side_") > 0) Then cx = 4 ' url中に"side_"がある
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 If
34
+ End Select
30
35
  wx = wx + 1
31
- dstSH.Cells(wx, 1) = Split(url, "?")(0) ' URL。?以降を除く
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 (略)