[[20201119153112]] 『桁区切りのカンマを置換したい』(123) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『桁区切りのカンマを置換したい』(123)

すみません、お世話になります。

表示形式が通貨や数値で入っている桁区切りカンマを別の文字にしたいと思っています。
実際には入力されていない文字なので、置換で検索文字列を,にしてもデータが見つからないとなります。

Range("A1:A100").Replace What:=",", Replacement:="●", LookAt:=xlPart, MatchCase:=True

というのを試しましたが、同様でした。
もしお分かりの方いらっしゃっいましたら教えてくださいm(_ _"m)

< 使用 Excel:Excel2010、使用 OS:unknown >


 書式設定のユーザー定義で設定するぐらいしか思い浮かびませんが
 桁数がバラバラすぎると辛いですね。
 https://support.microsoft.com/ja-jp/help/883199

 [<=999]###;[<=999999]###a###;###a###a###
 とかにすればとりあえず9桁まではいけますかね?
(ななし) 2020/11/19(木) 15:55

ななしさん!ありがとうございます。

,がaになりました!すごい!!

しかし、桁数もですが、内容も様々で(-_-;)
決まっている列などあれば教えていただいた書式設定で行けると思うのですが、
A1セルから入力する人もいればD5セルから入力する人もいるので…
教えていただいた方法は、別の機会に使わせてください!
書式設定でない方法がありましたら、よろしくお願いしますm(_ _"m)
(123) 2020/11/19(木) 16:18


こんなのではいかが?

 Sub Sample()
     Dim r As Range
     For Each r In Range("A1:A100")
         r.Value = Replace(r.Text, ",", "●")
     Next
 End Sub

(ひまつぶし) 2020/11/19(木) 16:40


ひまつぶしさん!ありがとうございます。

置換されました!!衝撃です!
すべて●になりました!
マクロ範囲とかいじってみます。
もしわからなくなったらまたお願いしますm(_ _"m)
ありがとうございました!
(123) 2020/11/19(木) 17:04


ひまつぶしさん!すみませんSOSです!

マクロを実行すると、,は●になります。
しかし、,がない1000以下の'がなくなってしまうようなのです。
'(1,200.0)→'(1●200.0)
'(200.0)→-200.0
'(20.0)→-20.0

回避する方法がありましたら教えてください(_ _"m)

また、小数点も違う文字にする場合は、

 Sub Sample()
     Dim r As Range
     For Each r In Range("A1:A100")
         r.Value = Replace(r.Text, ",", "●")
     Next
     For Each r In Range("A1:A100")
         r.Value = Replace(r.Text, ".", "◎")
     Next
 End Sub

でよいでしょうか?
よろしくお願いします!
(123) 2020/11/20(金) 11:18


お世話になります。

なんとかなりました(^^;
内容は難しくて理解できていませんが、,.と同じように別の文字にしました。

もうひとつわからない部分がでてきました…
セルを文字列にしたあとに、,.を戻したいのですが,のほうが消えてしまいます。
",,"とかにすればのこるのですが、置換で,にすると消えてしまいます。
すみませんが、どこを修正すればよいか教えてください。
よろしくお願いしますm(_ _"m)

 Sub Sample()
   Dim r As Range
   Dim re As Object
   For Each r In Selection
   Set re = CreateObject("VBScript.RegExp")
   With re
      .Pattern = "^[  ]*([\((])"
       If re.Test(r) Then
               r.Value = re.Replace(r.Text, "'○" & "$1")
       End If
   End With
   Next
   For Each r In Selection
       r.Value = Replace(r.Text, ".", "◎")
   Next
   For Each r In Selection
       r.Value = Replace(r.Text, ",", "●")
   Next
 End Sub

Sub Macro2()

    Selection.NumberFormatLocal = "@"
End Sub

Sub Macro3()

   Dim r As Range
   For Each r In Selection
   With Selection
      .Replace What:="○", Replacement:="", LookAt:=xlPart, MatchCase:=True
      .Replace What:="◎", Replacement:="."
      .Replace What:="●", Replacement:=","
   End With
   Next
End Sub
(123) 2020/11/20(金) 17:17

大変失礼かと思いますが質問させてください。
余りにも毎日行っている仕事と同じなのでお願いします。
私は、A2:A100の範囲からオートフィルタで抽出した結果だけを置換えたいのですが可能でしょうか?
よろしくお願いします。
(事務員) 2020/11/21(土) 09:28

 何を何に置換するの?
 Selectionを
 ActiveSheet.AutoFilter.Range
 にすれば出来そうですが?
 (タイトル行も含む)

( はまちゃん) 2020/11/21(土) 10:02


半平太様、はまちゃんさま。はい、私もそう思っています。
私はコンマを変更するのではなく担当者コードの変更をしています。
昨年の品目担当と今年の品目担当が変わった場合にこの様なことを行います。
今毎日行うのが昨年は"0120"の商品コードをオートフィルタで抽出してA列の担当者コード"0005"を
現在の担当者コード"0015"に変更しています。

(事務員) 2020/11/21(土) 10:31


 可視セルを選択(Alt+;)して、置換する作業を
マクロの記録で録ってみては?

( はまちゃん) 2020/11/21(土) 10:47


はまちゃん様、シート全部を選択した状態になるのですが・・・

(事務員) 2020/11/21(土) 13:48


盗人便乗質問者がいるなんて驚きでーす。
(jimu) 2020/11/21(土) 15:00

123さんへ

なにをしたいのかわかりませんが、セルの数値を表示されている通りの文字列にするなら
こんなもんでよろしいかと思います。

 Sub Sample()
     Dim r As Range
     For Each r In Range("A1:A100")
         r.NumberFormatLocal = "@"
         r.Value = r.Text
     Next
 End Sub

違っていたなら、何をしたいのか説明してください。

(ひまつぶし) 2020/11/22(日) 07:46


 >'(1,200.0)→'(1●200.0)
 >'(200.0)→-200.0
 >'(20.0)→-20.0

頭にシングルクォーテーションが付いているのはルールですか?
そうならば、置き換えで出来きそうですが?

(まっつわん) 2020/11/22(日) 13:38


 >今毎日行うのが昨年は"0120"の商品コードをオートフィルタで抽出してA列の担当者コード"0005"を
 >現在の担当者コード"0015"に変更しています。
 >(事務員) 2020/11/21(土) 10:31

テーマが全然違うし、別で質問しましょう^^;
1個だけ手入力して、コピーして貼り付ければいいと思います。
オートフィルターで抽出後、
貼り付けるセル範囲を選択するときは、
貼り付けたい先頭のセルを選択しShiftキーとCtrlキーを押しながら↓で、移動します。行きすぎたら↑で戻ります。
(まっつわん) 2020/11/22(日) 13:45


ひまつぶしさん!返信が遅れすみませんm(__)m
ありがとうございます。
おっしゃるように、見たままを表示させたいのですが、新しく教えていただいたコードでも、通貨や数値の表示で入っている,が消えてしまいます…
括弧や▲、-といったマイナス表示をそのまま表示させたいのですが、すべて文字列にすると上記のように,が消えるため、1度,を別の文字に置換してから文字列にし、元に戻そうと思っています。
先日のマクロコードを作成したのですが、最後に戻す作業で,が消えてしまい、困っています。
 
 
まっつわんさん!返信が遅れすみませんm(__)m
>頭にシングルクォーテーションが付いているのはルールですか?
>そうならば、置き換えで出来きそうですが?
ルールではなく、入力者の都合かと思います。
設定が通貨で入力されていて、マイナス表示にしないために入っているようです。
'が消えた後に置き換えで'(を足すということでしょうか?
わからなくてすみません<(_ _)>
(123) 2020/11/24(火) 09:39

 横入り。
 これではどうですか?

 Sub Sample()
     Dim r As Range
     Dim s As String
     For Each r In Range("A1:A100")
         s = r.Text
         r.NumberFormatLocal = "@"
         r.HorizontalAlignment = xlRight
         r.Value = s
     Next
 End Sub
 コード拝借しました。
(γ) 2020/11/24(火) 10:50

赤字のカッコによるマイナスはそれではダメですね。黒くなりますね。
遡って、今の表示のままではマズイ理由は何でしょうか。
それを教えてください。

(γ) 2020/11/24(火) 10:59


γさん!ありがとうございます!
文字として▲がとれてたりしなければ、色の変更は大丈夫なのです!
なので、教えていただいたコードで置換できました!
>遡って、今の表示のままではマズイ理由は何でしょうか。
1桁数字を全角にするマクロを使っても数字が半角になってしまっていたので、文字列にしたかったのです。
回りくどくてすみません。
助かりました!
教えてくださったみなさんありがとうございましたm(_ _"m)
またなにかありましたらよろしくお願いします!
(123) 2020/11/24(火) 11:55

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.