こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2014-05-29 21:02:49

QNo.8616002

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

こんにちは。

特に、「実行時エラー5」の要素は、コード自体にはありません。エラーが出た時に、どういう値を拾っているかだけです。

むつかしいことですが、エラーの出る可能性としては、「wSt.Range("D" & i)」は、暗黙のプロパティとして、.Value が当てられていますが、完全に、目で見えている文字が取れているとは限らないような気がします。

ただ、
>その次にLENB関数でバイト数を割出、E列に表示する。
どういう意図なのか分かりませんが、VBAで、調べているのは、Unicodeで、ワークシート側は、Shift JISのはずです。その食い違いなども考慮したほうがよいと思います。コード自体は動かしてはいませんが、Unicode は、半角でも、2バイトになります。

VBAの教本には、その辺りは書かれてあるはずですから、もう一度確認してください。

投稿日時 - 2014-05-31 08:43:32

あなたにオススメの質問