Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12822 / 13646 ツリー ←次へ | 前へ→

【8476】置換(Replace)を使った際に書式が変わる 親猫 03/10/18(土) 15:12 質問
【8478】Re:置換(Replace)を使った際に書式が変わる INA 03/10/18(土) 18:25 回答
【8480】Re:置換(Replace)を使った際に書式が変わる 親猫 03/10/18(土) 19:38 発言
【8481】Re:置換(Replace)を使った際に書式が変わる bykin 03/10/18(土) 20:05 回答
【8482】Re:置換(Replace)を使った際に書式が変わる 親猫 03/10/18(土) 20:21 お礼

【8476】置換(Replace)を使った際に書式が変わる
質問  親猫  - 03/10/18(土) 15:12 -

引用なし
パスワード
   すみません。かなり悩んでます。
環境はExcel2000 Win2kです。

置換(Replace関数)を行う際に
書式設定は文字列であるセルに対して
"3-10"
"3-10 "
と2つの値があった時にスペース詰めを行うと

"3-10" → "3-10" 書式設定は文字列のまま
"3-10 " → "3月10日" 書式設定が日付に変更される

と書式設定が日付に自動的に変更されてしまいます。
書式設定を文字列にしたまま変換したいのですが何か良い方法が
あったら教えて下さいませ;
関数は以下のような記述になっています。

Columns("A:A").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

【8478】Re:置換(Replace)を使った際に書式が変...
回答  INA  - 03/10/18(土) 18:25 -

引用なし
パスワード
   スペース削除は、LTrim、RTrim、Trim 関数を使った方が良いと思いますが?

【8480】Re:置換(Replace)を使った際に書式が変...
発言  親猫  - 03/10/18(土) 19:38 -

引用なし
パスワード
   わざわざご返事ありがとうございます。

Trim関数だと(※ □=全角空白)
"3   10" → "3 10"
"3□□□10" → "3□10"
のように文字と文字との間にスペースが来た時に
一個だけ残ってしまったのでRepalceを使って全てのスペースを削除
してみたいと思ったのです。

とりあえず色々やってみます><

【8481】Re:置換(Replace)を使った際に書式が変...
回答  bykin  - 03/10/18(土) 20:05 -

引用なし
パスワード
   こんばんわ。

こんなんでええのかな?

Sub test()
  Dim CellValue As Variant
  Dim LastRow As Long
  Dim i As Long
  
  With ActiveSheet
    LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    With .Range(.Cells(1, 1), .Cells(LastRow, 1))
      CellValue = .Value
      For i = 1 To LastRow
        CellValue(i, 1) = Replace(CellValue(i, 1), " ", "")
      Next
      .Value = CellValue
    End With
  End With
End Sub

試してみてな。
ほな。

【8482】Re:置換(Replace)を使った際に書式が変...
お礼  親猫  - 03/10/18(土) 20:21 -

引用なし
パスワード
   さっそく試してみました。

bykinさんの方法で無事に解決しました。
ありがとうございます。

レスを下さった、INAさん、Bykinさん本当に感謝です。

>こんばんわ。
>
>こんなんでええのかな?
>
>Sub test()
>  Dim CellValue As Variant
>  Dim LastRow As Long
>  Dim i As Long
>  
>  With ActiveSheet
>    LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
>    With .Range(.Cells(1, 1), .Cells(LastRow, 1))
>      CellValue = .Value
>      For i = 1 To LastRow
>        CellValue(i, 1) = Replace(CellValue(i, 1), " ", "")
>      Next
>      .Value = CellValue
>    End With
>  End With
>End Sub
>
>試してみてな。
>ほな。

12822 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free