- 締切済み
各セルの一番最初から3番目までの値の塊だけを置換
ああああああ があって あ を い に普通に置換すると いいいいいいい になりますが各セルの一番最初から3番目までの値の塊だけを置換し置換し 検索文字あ 置換文字いの時 結果は いいいあああ にしたいです 検索文字を一つの値の塊とします ああうえお があって 検索文字え 置換文字 空白 の時 え は4番目の値の塊なので ああうえお はそのまま変化なく置換したくありません 文字別に文字数を数えるというのではなくセル内で 一番左 から何番目に出てくるという基準で指定した値の塊を置換したいです 値の塊は一文字とは限りません あああああい を検索文字 ああああ 置換文字 い の時 結果は いあい にしたいです この時はああああが一つの値の塊です この時検索文字 ああ 置換文字 い のとき 結果いいあい 検索文字あ 置換文字い のとき結果は いいいああい 検索文字を一つの値の塊とします こういうことがA列の60000行のセルにできる式、マクロを教えてください 一つの値だけでなく複数の値を同時に検索し置換できるほうが良いです
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- SI299792
- ベストアンサー率47% (780/1631)
書き忘れました。これはユーザー定義関数です。 B2: =LeftReplace(A2,D$2:E$11,3) 下へコピペして下さい。 (どうして回答が取り消せないんだ。おかげで分けて回答を書くややこしいことになる)
- SI299792
- ベストアンサー率47% (780/1631)
画像のような変換とします。 変換しない場合、1文字を1ブロックとします。 Option Explicit ' Function LeftReplace(What As String, Area As Range, Count As Integer) As String Dim Start As Integer Dim Row As Integer Dim Find As String Dim Repl As String Dim Length As Integer Dim Change() As String ' ReDim Change(Count) LeftReplace = What ' For Start = 1 To Count ' For Row = 1 To Area.Rows.Count Find = Area(Row, 1) Repl = Area(Row, 2) Length = Len(Find) ' If Left(LeftReplace, Length) = Find Then Change(Start - 1) = Repl LeftReplace = Mid(LeftReplace, Length + 1) Exit For End If Next Row ' If Row > Area.Rows.Count Then Change(Start - 1) = Left(LeftReplace, 1) LeftReplace = Mid(LeftReplace, 2) End If Next Start Change(Count) = LeftReplace LeftReplace = Join(Change, "") End Function 上手くいかない場合、 変換前、変換後(こうなってほしい)、検索文字、置換文字を上げて下さい。 貴方は、人に要求しておきながら、自分の情報は絶対出さない身勝手な人なので、出さないと思いますが、そうしないと責任は持てません。
- HohoPapa
- ベストアンサー率65% (455/693)
残念ながら貴方の求めている仕様が理解できません。 ぶっきらぼうな返答しかなく、かつ、 例示が足りないため、これ以上のコメントは困難ですので 理解可能な例示があれば続けますがそれが無いようであれば降ります。 失礼しました。
- HohoPapa
- ベストアンサー率65% (455/693)
>あああああい を検索文字 ああああ 置換文字 い の時 結果は いあい にしたいです ならば かかかあああああい を検索文字 ああああ 置換文字 い の時 結果は どのように変換されることを期待していますか?
補足
かかかあいい
- HohoPapa
- ベストアンサー率65% (455/693)
>ああうえお があって 検索文字え 置換文字 空白 の時 え は4番目の値の塊なので >ああうえお はそのまま変化なく置換したくありません 変換元の文字列を検索文字列の文字数で区切り、 『区切ったピースごとに検索文字列と同じか?』を比較し 同じなら3回目までに限って置き換えるんですか? 変換元:あいうえおかきくけこ 検索文字:きく 置き換え文字:キク 変換後:あいうえおかきくけこ 変換元:あいうえおかきくけこ 検索文字:おか 置き換え文字:オカ 変換後:あいうえオカきくけこ また、 空白 これは、 Null、半角スペース、全角スペース、"空白"という文字列 のどれを指していますか? 変換ツールが明確にわかるように 変換例をいくつか例示してください。
補足
変換元:あいうえおかきくけこ 検索文字:きく 置き換え文字:キク 変換後:あいうえおかきくけこ あいうまでが3番目の値の塊なので変化なし 変換元:あいうえおかきくけこ 検索文字:おか 置き換え文字:オカ 変換後:あいうえオカきくけこ ↓ 変換元:あいうえおかきくけこ 検索文字:おか 置き換え文字:オカ 変換後:あいうえおかきくけこ あいう までが3番目の値の塊なので変化なしにしたいです 空白は半角スペースです 半角スペースと書くようにします
- msMike
- ベストアンサー率20% (364/1805)
- msMike
- ベストアンサー率20% (364/1805)
》 セル内で 一番左 から何番目に出てくる 》 という基準で指定した値の塊を置換したい の記述から、單一セル内の「ああああああ」の事かと思ってました。 併し、改めてタイトルを眺めたら、 》 各セルの一番最初から3番目までの値の塊… ですって、ビックリポン!
- msMike
- ベストアンサー率20% (364/1805)
貴方が、万一、外國人でも、日本語を認める際は、キチンと句讀點(、。)を入れて下さい!
補足
あああああい を検索文字 ああああ 置換文字 い の時 結果は いあい にしたいです この時はああああが一つの値の塊です 検索文字 ああ 置換文字 い のとき 結果いいあい 検索文字あ 置換文字い のとき結果は いいいああい 検索文字を一つの値の塊とします
補足
ありがとうございました