Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Microsoft 365)
範囲を指定してのCLEAN関数の使い方
投稿日時: 22/10/07 22:02:10
投稿者: yurappy

お世話になります。
 
マクロ(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関数で処理をして、値の前後に
 ” がついたり印刷をするを避けたいのですが、良い方法はありますでしょうか。
 
すみませんが、ご教授ください。
 
 
よろしくお願い申し上げます。

回答
投稿日時: 22/10/07 22:36:42
投稿者: WinArrow
投稿者のウェブサイトに移動

コードの例
  

    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

  
データ型は、指定したほうがよい。

投稿日時: 22/10/08 09:05:16
投稿者: yurappy

WinArrowさま
 
お世話になります。
ご親切に、ありがとうございます。
 
いただいたコードで、無事に思うような処理ができました。
 

引用:
データ型は、指定したほうがよい。

 
の意味がわからず、調べて参考になりました。
 
また困った時には、また助けてください。
 
ご親切に、ありがとうございました。
 
何卒よろしくお願いいたします。