ReplaceメソッドとReplace関数
Replaceメソッドは以前の記事
『 セル内の改行を削除する 』において使用しました。
このReplaceメソッドを使って
セル内の文字列の改行を削除しようとしたら
次のようなエラーが出ることがありました。
これはExcel2003の場合は、
置換後のセル内の文字数が911を超えた場合置換できない現象のようです。
参照: [XL2003] 置換後のセル内の文字数が911を超えた場合置換できない
試しにVBAでこの置換できない現象を確かめてみました。
コードはこちら
Sub macro110508a() Dim i As Integer |
Excel2000においても、
置換後のセル内の文字数が911を超えた場合
置換できませんでした。
さてこういうときはどうすればいいかというと、
題にもあるようにReplace関数を使えば
このような場合も改行を削除できます。
コードはこちら
Sub macro110508b() End Sub |
Replaceメソッドを使う場合は
次のようにすると複数のセルを一度に処理できました。
Range("A1:C10").Replace Chr(10), ""
Replace関数はセルの内容を文字列にしてから処理するので
一度に1つのセルしか処理できません。
複数のセルを処理したいときは
For Eachステートメントを使います。
コードはこちら
Sub macro110508c() Dim c As Object |
上のコードとても遅いです。
範囲を明確に指定したほうがいいかもしれません。
範囲を指定したいときは
ActiveSheet.UsedRange
の箇所を
ActiveSheet.Range("A1:C10")
などとしてください。
| 固定リンク
この記事へのコメントは終了しました。

コメント