|
UO3殿
返信ありがとうございます。
処理対象の領域について、UO3殿が記載して頂いている通りです。
マクロ初心者で、指摘して頂いたことで、
あ、確かに!っと思いました。
正規表現が使えることを知りませんでした。
今後、マクロを作成する際に参考とさせて頂きます。
ありがとうございました。
▼UO3 さん:
>▼コンソール さん:
>
>おはようございます
>
>本題の前に。
>処理対象の領域について
>
>9 行目から Cells(4, 9).End(xlDown).Row つまり I4より下の I列 最終データまでと
>しておられますね。 もし、I列にデータが 6行目までしかなかった場合、9 To 6 となりますよ?
>
>一方、処理を行うセルは Cells(ckk, 4) これは D列ですね?
>
>もし、D列が対象なら
>For ckk = 9 To Cells(9, 4).End(xlDown).Row ではないですか?
>
>以下は Dレを対象にするとした場合のサンプルです。
>(セル記述、Cells でもいいのですが、見た目、わかりやすいと思いますのでRangeにしてあります)
>
>Sub Sample1()
> Dim s As Variant
> Dim ckk As Long
> Dim n As String
>
> For ckk = 9 To Range("D9").End(xlDown).Row
> s = Range("D" & ckk).Value
> n = Replace(s, ".", "")
> If Not IsNumeric(n) Or Len(s) <> Len(n) + 3 Then
> MsgBox ckk & "行の値にエラーがあります" & vbLf & s
> End If
> Next
>
>End Sub
>
>Sub Sample2()
> Dim s As Variant
> Dim ckk As Long
> Dim n As String
>
> For ckk = 9 To Range("D9").End(xlDown).Row
> s = Range("D" & ckk).Value
> n = Join(Split(s, "."), "")
> If Not IsNumeric(n) Or Len(s) <> Len(n) + 3 Then
> MsgBox ckk & "行の値にエラーがあります" & vbLf & s
> End If
> Next
>
>End Sub
|
|