回答編集履歴
3
説明の改善
test
CHANGED
@@ -14,9 +14,11 @@
|
|
14
14
|
|
15
15
|
あれからサンプルを作成して試してみたら、.Offset(1) で結合セルの場合でも次のセルへ移動しますね。
|
16
16
|
|
17
|
+
(A2~A6 が結合セルの場合、Range("A2").Offset(1) で Range("A7") へ移動する)
|
17
18
|
|
18
19
|
|
20
|
+
|
19
|
-
ということで、下記のようなコードで結合セルでも順に最後まで移動できます。
|
21
|
+
ということで、下記のようなコードで結合セルでも順に最後まで移動しながらデータを取得できます。
|
20
22
|
|
21
23
|
|
22
24
|
|
2
コード微修正
test
CHANGED
@@ -38,8 +38,6 @@
|
|
38
38
|
|
39
39
|
Do Until curRng.Row > endRow
|
40
40
|
|
41
|
-
Dim rCnt As Long
|
42
|
-
|
43
41
|
If curRng.Value <> "" Then
|
44
42
|
|
45
43
|
Debug.Print "開始:"; curRng.Offset(0, -1).Text
|
@@ -50,7 +48,7 @@
|
|
50
48
|
|
51
49
|
End If
|
52
50
|
|
53
|
-
Set curRng = curRng.Offset(1)
|
51
|
+
Set curRng = curRng.Offset(1) ’次のセルへ移動(結合セルでもOK)
|
54
52
|
|
55
53
|
Loop
|
56
54
|
|
1
説明追加
test
CHANGED
@@ -7,3 +7,55 @@
|
|
7
7
|
|
8
8
|
|
9
9
|
[Office TANAKA \- Excel VBA Tips[結合セルを調べる]](http://officetanaka.net/excel/vba/tips/tips50.htm)
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
---
|
14
|
+
|
15
|
+
あれからサンプルを作成して試してみたら、.Offset(1) で結合セルの場合でも次のセルへ移動しますね。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
ということで、下記のようなコードで結合セルでも順に最後まで移動できます。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
```vba
|
24
|
+
|
25
|
+
Sub Test()
|
26
|
+
|
27
|
+
Dim endRow As Long
|
28
|
+
|
29
|
+
endRow = Cells(Rows.Count, 2).End(xlUp).Row
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
Dim curRng As Range
|
34
|
+
|
35
|
+
Set curRng = Cells(2, 2)
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
Do Until curRng.Row > endRow
|
40
|
+
|
41
|
+
Dim rCnt As Long
|
42
|
+
|
43
|
+
If curRng.Value <> "" Then
|
44
|
+
|
45
|
+
Debug.Print "開始:"; curRng.Offset(0, -1).Text
|
46
|
+
|
47
|
+
Debug.Print "終了:"; curRng.Offset(1, -1).Text
|
48
|
+
|
49
|
+
Debug.Print curRng.Text
|
50
|
+
|
51
|
+
End If
|
52
|
+
|
53
|
+
Set curRng = curRng.Offset(1)
|
54
|
+
|
55
|
+
Loop
|
56
|
+
|
57
|
+
End Sub
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
B列のみ順に移動していってイミディエイトに出力する例ですので、これをもとに改良してご希望の出力になるようにしてください。
|