• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA Replaceで)

VBAコードにおける数字の削除方法と、その問題についての解決策

このQ&Aのポイント
  • VBAコードを使用して特定の範囲内のセルから数字を取り除く方法について質問があります。
  • コードを実行した際、一部のセルでは数字が正常に取り除かれる一方で、他のセルでは数字が残ってしまう場合があります。
  • 公開変数を使用している他の関連コードもあるため、問題は文字列またはデータの問題かどうか判断できません。解決策やアドバイスをいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

こんにちは。 ' /// 余分な数字を削除します。 Sub Re8766547()   Application.Calculation = xlCalculationManual Dim r As Long ' Dim c As Long ' 以下の記述では使っていません Dim i As Long   Call hen '単独実行時のみPublic変数を設定します。   For r = 53 To Lr2 Step 2     For i = 0 To 9       Cells(r, 3).Resize(, dc - 2).Replace _         What:=CStr(i), Replacement:="", _         LookAt:=xlPart, SearchOrder:=xlByRows, _         MatchByte:=False     Next i   Next r   Application.Calculation = xlCalculationAutomatic End Sub Replace メソッドを使う例としては以上のような感じです。 (単セル毎に処理するのは非効率なので)セルブロック毎(各行毎)に置換処理すること と、 名前付き引数 LookAt MatchByte について正しく理解した上で活用すること が、 ポイントになります。 VBAのヘルプでもいいですから、.Replace メソッドの各引数の意味等について 確認してみて下さい。 因みにCStr()関数は使っても使わなくても結果は一緒です。 ∵名前付き引数 What はVariant型だから。 それと。Stop ステートメントについてですが、 特に説明が無いようですから、 これは、専ら、デバッグ&トレース用、動作の確認用 の記述という判断で、こちらが書いたコードには反映させていません。 敢えて Stop させるなら、Next i と Next r の間の行あたりでしょうか。 以上です。

-antsu-
質問者

お礼

早速の回答ありがとうございます。 おかげさまで正常に動作するようになりました。 独学だった為、知識がまだまだ不十分で、 引数についても、あまり気にすることなく スルーに近い状態でした。 コードの作成方法についても 大変勉強になりました。 もっとスキルアップしていきたいと思います。

関連するQ&A

専門家に質問してみよう