お世話になります。 マクロ(VBA)でCLEAN関数の使い方がわからずに悩んでおります。 販売情報をダウンロードしたファイルを開いてコピペすると、一部のセルで値の最初と最後に ” (ダブルクォーテーション)がついたり、印刷をするとおかしな所で改行されたりするので 調べていたら、セル内改行か制御文字が含まれていると言う記事ありました。 おかしな値になるのは全部の値では無く、F2からF300の範囲で毎回違う場所で、複数発生してます。 対策として「CLEAN関数」で処理する記事がありましたが、毎日 数回行うの作業なのでマクロ(VBA)で 行おうと調べていて次のようなマクロを作ってみましたが、上手く動きませんでした。 CLEAN関数の使用例 Dim myStr As String myStr = ActiveCell.Value ActiveCell.Value = WorksheetFunction.Clean(myStr) カーソルがあるセルは、処理ができるようなのですが、他のセルは処理ができてませんでした。 処理を繰り返す記述の例として次のような記述もありましたが、使い方がよくわからず困っております。 処理を繰り返す例 Dim i for i=2 to 最終のセル ここに処理内容 Next F2からF300の範囲の値を、列を変えたり移動すること無くCLEAN関数で処理をして、値の前後に ” がついたり印刷をするを避けたいのですが、良い方法はありますでしょうか。 すみませんが、ご教授ください。 よろしくお願い申し上げます。
コードの例
Dim myStr As String Dim i As Long For i = 2 To 300 myStr = Cells(i, "F").Value Cells(i, "F").Value = WorksheetFunction.Clean(myStr) Next
WinArrowさま お世話になります。 ご親切に、ありがとうございます。 いただいたコードで、無事に思うような処理ができました。
引用:データ型は、指定したほうがよい。
利用者の皆様にお知らせです。
マイクロソフト オフィス スペシャリスト(MOS)
ビジネス統計スペシャリスト
IC3(アイシースリー)
VBAエキスパート
アドビ認定プロフェッショナル
Microsoft認定資格
App Development with Swift