|
▼chantaro さん:
おはようございます
どう、うまくいかないのかがわからないのですがドカさんが試して見られた結果はOKということなので
具体的に、どこが思ったようにいかないのかを説明されてはいかがでしょう。
ですので、回答ではなく気が付いた点のみ。
おそらく Option Explicit を指定しておられないのでエラーにはなっていないのでしょうけど
vblnformation の 3ケタ目、小文字のエルですかね? vbInformation が正しいスペル。
あとは、cnsTITLE この定義が見当たらないのですが、これはモジュールレベルのコンスタントなんでしょうか?
GYOMAX = Cells.SpecialCells(xlCellTypeLastCell).Row
SpecialCellsに指定する定数のなかで、このxlCellTypeLastCellは、ちょっとマギレがあるというか
厄介なことがあります。実行時にはデータがなく空白でも、かってデータがあったところは、ここで認識されてしまいます。
Do While Cells(GYOMAX, 2).Value = ""
GYOMAX = GYOMAX - 1
Loop
あるセルから上に、空白ではないセルを取得するコードでしょうし、この形のコードはよく見かけます。
ただ、もう少し別のコードが一般的かなとも思います。
要は、B2からB列のデータ最終行までのループでしょうから、通常は以下のいずれかのコードを書くことが多いのでは?
(以下では式があり、空白のセルも対象になります。式があって空白のものは空白とみなすなら、それはそれで書き方はあります)
Sub Sample1()
Dim z As Long
Dim i As Long
z = Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To z
MsgBox Cells(i, 2).Value
Next
End Sub
Sub Sample2()
Dim c As Range
For Each c In Range("B2", Range("B" & Rows.Count).End(xlUp))
MsgBox c.Value
Next
End Sub
|
|