Page 346 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼文字列の一部を対応表を使って置き換えるには? ちょび 02/11/6(水) 14:32 ┗Re:文字列の一部を対応表を使って置き換えるには? yu-ji 02/11/6(水) 15:27 ┗Re:文字列の一部を対応表を使って置き換えるには? ちょび 02/11/6(水) 15:36 ┗Re:文字列の一部を対応表を使って置き換えるには? yu-ji 02/11/6(水) 18:01 ┗Re:文字列の一部を対応表を使って置き換えるには? ちょび 02/11/7(木) 14:25 ┗Re:文字列の一部を対応表を使って置き換えるには? ちょび 02/11/14(木) 15:14 ┗Re:文字列の一部を対応表を使って置き換えるには? yu-ji 02/11/14(木) 16:25 ┗Re:文字列の一部を対応表を使って置き換えるには? ちょび 02/11/14(木) 16:33 ┗旧字体の漢字 yu-ji 02/11/14(木) 18:06 ┗Re:旧字体の漢字 ちょび 02/11/15(金) 8:55 ┣Re:旧字体の漢字 ちょび 02/11/15(金) 8:56 ┃ ┗Re:旧字体の漢字(どなたか、ヘルプお願いします。) yu-ji 02/11/15(金) 10:06 ┗Re:旧字体の漢字 ちょび 02/11/15(金) 9:06 ┗Re:旧字体の漢字 yu-ji 02/11/15(金) 9:19 ┗Re:旧字体の漢字 ちょび 02/11/15(金) 9:34 ┗Re:旧字体の漢字 yu-ji 02/11/15(金) 9:56 ─────────────────────────────────────── ■題名 : 文字列の一部を対応表を使って置き換えるには? ■名前 : ちょび <aya_nonme@yahoo.co.jp> ■日付 : 02/11/6(水) 14:32 -------------------------------------------------------------------------
いつも質問ばかりで申し訳ございません。 あーーーいつか教える側になってやる!! というわけで、質問です。 【図その1】のひとつのセルに入っている文字列の一部分の、【図その2】の対応表A列に該当する文字をB列の文字に置き換えてたい。 まるごと置き換えるのではなく、一部分を置き換えるので、よくわからないんですが・・・。 ちなみに、ひとつのブックに【図その1】と【図その2】それぞれのシートがあるとします。 ようするに、A1の「1.あいうえお」を「(1)あいうえお」に変更したいのです。 ちなみに、【図その2】の対応表は、本当はけっこう沢山データがあるんです。 【図その1】 | A | B −−−−−−−−−−−−−−− 1|1.あいうえお | 2|2.かきくけこ | 3|3.さしすせそ | 4|4.たちつてと | 5|5.なにぬなの | 【図その2】 |A | B | −−−−−−−−− 1|1. |(1)| 2|2. |(2)| 3|3. |(3)| 4|4. |(4)| 5|5. |(5)| |
▼ちょび さん: >【図その1】のひとつのセルに入っている文字列の一部分の、【図その2】の >対応表A列に該当する文字をB列の文字に置き換えてたい。 データが入っているシートを”データ”、変換対応表のシートを”対応表”として 以下のような感じでいけると思います。 【編集】メニューの【置換】の機能を使って、対応表にあるデータを1行ずつ取り出して 、実行していく感じです。 ********** Function test() Dim cnt As Long With Worksheets("データ") .Columns(1).Copy .Range("b1").Activate .Paste .Range("b1").Select End With cnt = 1 With Worksheets("対応表") Do Until .Range("a" & cnt) = "" Worksheets("データ").Columns(2).Replace What:=.Range("a" & cnt), Replacement:=.Range("b" & cnt), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False cnt = cnt + 1 Loop End With End Function |
▼yu-ji さん: そうです。そうです。こんな感じです。 ちなみに、シート全体に対して同じセル内で置き換えるには どうしたらよいのでしょう。 コード書き換えたりしてみたら、こわれちゃいました。すいません。。。 わがまま言ってごめんなさい。よろしくお願いします。 |
▼ちょび さん: >ちなみに、シート全体に対して同じセル内で置き換えるには >どうしたらよいのでしょう。 すみません。 コメントを付けてなかったので、分かりにくかったですね。 と、シート全体というのは、他のシートも含めてということですか? それとも”データ”シートの全体ということでしょうか? とりあえず、”データ”シートの全体という意味だと解釈して。 >> With Worksheets("データ") >> .Columns(1).Copy >> .Range("b1").Activate >> .Paste >> .Range("b1").Select >> End With この部分で、列1を列2にコピーしてます。 なので、同じ場所に置換後のデータを入れるなら上記コードはいりません。 また、 >> Worksheets("データ").Columns(2).Replace What:=.Range("a" & これは、置換するコードの頭ですが、列2のみ置換しなさいという感じです。 よって列1を置換したければ、Columns(2)をColumns(1)に変えればいいだけです。 あとは、そのままでいいと思うので、試してみてくださいね。 |
▼yu-ji さん: お返事がおそくなってすいません。 結局yu-jiさんのをそのまま拝借して下記のようにしてみました。 Function test() Dim cnt As Long cnt = 1 With Worksheets("対応表") Do Until .Range("a" & cnt) = "" Cells.Replace What:=.Range("a" & cnt), Replacement:=.Range("b" & cnt), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False cnt = cnt + 1 Loop End With End Function ありがとうございました。 |
▼ちょび さん: >Function test() > > Dim cnt As Long > > cnt = 1 > With Worksheets("対応表") > Do Until .Range("a" & cnt) = "" > Cells.Replace What:=.Range("a" & cnt), Replacement:=.Range("b" & cnt), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False > cnt = cnt + 1 > Loop > End With > >End Function 問題が発生してしまいました。 上記のコードだと、対応表に含まれている 漢字が置き換わらないんです!! 何でなんでしょう?? どなたかHELPです! |
▼ちょび さん: >問題が発生してしまいました。 >上記のコードだと、対応表に含まれている >漢字が置き換わらないんです!! 確認したところ、漢字も変換されていましたが? どの漢字をどの漢字に変換する対応表で、どういうデータを変換しようとされてますか? |
▼yu-ji さん: >▼ちょび さん: >>問題が発生してしまいました。 >>上記のコードだと、対応表に含まれている >>漢字が置き換わらないんです!! > >確認したところ、漢字も変換されていましたが? >どの漢字をどの漢字に変換する対応表で、どういうデータを変換しようとされてますか? そーですかー。変換されましたかー。 やりたいことは、機種依存文字。 えーっと、旧字体などの漢字をすべて■と表示させたいのですが・・・。 |
▼ちょび さん: >>確認したところ、漢字も変換されていましたが? >>どの漢字をどの漢字に変換する対応表で、どういうデータを変換しようとされ >>てますか? > >やりたいことは、機種依存文字。 >えーっと、旧字体などの漢字をすべて■と表示させたいのですが・・・。 機種依存文字にも、いろいろ種類がありますが。 旧字体の漢字というのは、たとえば、どういうやつですか? こちらで再現できなければ、対応が難しいので。。。 #再現できても、Replaceで変換されないようなものがあるなら、対応できるか #どうかも怪しいですが。 |
▼yu-ji さん: >▼ちょび さん: >機種依存文字にも、いろいろ種類がありますが。 >旧字体の漢字というのは、たとえば、どういうやつですか? 機種依存文字といっても、まだ抽出しきれてないのですが、 たとえば、宗ヲ@ヲ押ヲ堯ΑΑε@垢任后」 |
>機種依存文字といっても、まだ抽出しきれてないのですが、 >たとえば、宗ヲ・ヲ押ヲ堯ΑΑε醜です。」 ↑だめでした。。。。。 んーどうしよう。。。。 |
▼ちょび さん: >>機種依存文字といっても、まだ抽出しきれてないのですが、 >>たとえば、宗ヲ・ヲ押ヲ堯ΑΑε醜です。」 > >↑だめでした。。。。。 こちらでも、旧字体の置換テストをしてみましたが、上手く変換されました。 旧字体でも、変換されるやつとされないやつがあるようですね。 とりあえず、どんな文字かってのは、画像とかで載せてもらうか、どっかのHP に同様の文字が、絵であれば、そいつを参考にできるとは思うのですが。 ***** 同様の現象や、対応策をご存知の方がいらっしゃれば、ヘルプお願いします。 |
▼yu-ji さん: たびたびすいません。 ちょっと対応表のデータの並びを変えて 実験してみたら、今まで変換されていた 数字や記号(漢字以外のもの)が、100行目あたりより下にもっていくと 変換されないんです。 かなりの初心者でよくわからないのですが、 このコードって、対応表のA列とB列のデータがあるところ全部 読んでるんですよね。 すいません。アホで。 |
▼ちょび さん: >ちょっと対応表のデータの並びを変えて >実験してみたら、今まで変換されていた >数字や記号(漢字以外のもの)が、100行目あたりより下にもっていくと >変換されないんです。 >かなりの初心者でよくわからないのですが、 >このコードって、対応表のA列とB列のデータがあるところ全部 >読んでるんですよね。 対応表のシートのA列がなくなる("")まで、置換させます。 100行目辺りに、A列にデータが入ってなくないですか? |
▼yu-ji さん: >対応表のシートのA列がなくなる("")まで、置換させます。 >100行目辺りに、A列にデータが入ってなくないですか? シングルコーテーションが入っていてそれが表示されずに空欄となっていたようです。 無事に解決しました。シングルコーテーションに関しては個別に置換することにします。 すいません。ご迷惑おかけして。 本当にありがとうございました。 |
▼ちょび さん: > >>対応表のシートのA列がなくなる("")まで、置換させます。 >>100行目辺りに、A列にデータが入ってなくないですか? > >シングルコーテーションが入っていてそれが表示されずに空欄となっていたようです。 >無事に解決しました。シングルコーテーションに関しては個別に置換することにします。 >すいません。ご迷惑おかけして。 >本当にありがとうございました。 セル頭のシングルコーテーションは、強制的に文字列(?)扱いの文字にさせるので、 対応表A列に、シングルコーテーションを二つ並べると、シングルコーテーション が1つ表示されるはずです。 それで置換できます。 ただし、変換先のシートのセル頭のシングルコーテーションは同様に置換されませんが。 |