• 締切済み

VBAでの実行時エラー:5について

現在、VBAの勉強をしています。 StrconvとLenB関数を使って以下の事をしたいのですが。。。 例 |    D     |   E   |   F   | ト ウキョウ 京都 サン オオ さか D列の数値を半角にまず直し、そこから空白を削除する。 その次にLENB関数でバイト数を割出、E列に表示する。 以上のことを実行したく、以下のコードを書きました。 しかし、★の部分で実行時エラー5の引数が不正ですというエラーが出てしまいます。 どなたか大変恐縮ですが、助けてください。 よろしくお願い致します。 Private i As Integer Sub AAA() Dim wSt As Worksheet: Set wSt = ThisWorkbook.Worksheets("NAME") For i = 2 To wSt.Range("D1").CurrentRegion.Rows.Count ★ wSt.Range("D" & i) = Replace(StrConv(wSt.Range("D" & i), vbNarrow), " ", "") wSt.Range("E" & i) = LenB(wSt.Range("D" & i)) Next End Sub

みんなの回答

回答No.1

こんにちは。 特に、「実行時エラー5」の要素は、コード自体にはありません。エラーが出た時に、どういう値を拾っているかだけです。 むつかしいことですが、エラーの出る可能性としては、「wSt.Range("D" & i)」は、暗黙のプロパティとして、.Value が当てられていますが、完全に、目で見えている文字が取れているとは限らないような気がします。 ただ、 >その次にLENB関数でバイト数を割出、E列に表示する。 どういう意図なのか分かりませんが、VBAで、調べているのは、Unicodeで、ワークシート側は、Shift JISのはずです。その食い違いなども考慮したほうがよいと思います。コード自体は動かしてはいませんが、Unicode は、半角でも、2バイトになります。 VBAの教本には、その辺りは書かれてあるはずですから、もう一度確認してください。

関連するQ&A