Excel VBA質問箱 IV

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

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


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

【73096】IMEパットでの文字を検索 Aoichi 12/11/9(金) 13:47 質問[未読]
【73097】Re:IMEパットでの文字を検索 ウッシ 12/11/9(金) 15:36 回答[未読]
【73098】Re:IMEパットでの文字を検索 Aoichi 12/11/10(土) 8:33 質問[未読]
【73099】Re:IMEパットでの文字を検索 γ 12/11/10(土) 9:40 発言[未読]
【73100】Re:IMEパットでの文字を検索 Aoichi 12/11/11(日) 10:54 お礼[未読]
【73101】Re:IMEパットでの文字を検索 ウッシ 12/11/11(日) 12:37 回答[未読]
【73102】Re:IMEパットでの文字を検索 ウッシ 12/11/11(日) 12:41 発言[未読]
【73103】Re:IMEパットでの文字を検索 Aoichi 12/11/12(月) 8:56 お礼[未読]

【73096】IMEパットでの文字を検索
質問  Aoichi  - 12/11/9(金) 13:47 -

引用なし
パスワード
   セルに書かれた文字列の中に"IME パット"から書かれたものが
入力されていてます
文字列の中に"IME パット"の文字があるかどうかを調べ
ある場合は 全角文字に変換しAutoFilterにかけたいのです
可能でしょうか
(例)
  1)"IME パット"で取得した文字 (株) が入っている
     (株)東京
  2)全角文字 (株)にした場合
    (株)東京

【73097】Re:IMEパットでの文字を検索
回答  ウッシ  - 12/11/9(金) 15:36 -

引用なし
パスワード
   こんにちは

多分、対象文字に対応する文字を登録したテーブルを自作して
置換するコードを書くしかないと思います。

▼Aoichi さん:
>セルに書かれた文字列の中に"IME パット"から書かれたものが
>入力されていてます
>文字列の中に"IME パット"の文字があるかどうかを調べ
>ある場合は 全角文字に変換しAutoFilterにかけたいのです
>可能でしょうか
>(例)
>  1)"IME パット"で取得した文字 (株) が入っている
>     (株)東京
>  2)全角文字 (株)にした場合
>    (株)東京

【73098】Re:IMEパットでの文字を検索
質問  Aoichi  - 12/11/10(土) 8:33 -

引用なし
パスワード
   ▼ウッシ さん:
有難うございます
文字列中"IME パット"の文字が含んでいるか
調べる方法はあるのでしょうか
対象文字が固定されていないため
置換が出来ません
よろしくお願いいたします

【73099】Re:IMEパットでの文字を検索
発言  γ  - 12/11/10(土) 9:40 -

引用なし
パスワード
   横から失礼します。
>文字列中"IME パット"の文字が含んでいるか
>調べる方法はあるのでしょうか
少し誤解があるようです。
IMEパッドは入力方法のひとつですから、すべての文字が対象です。
ご自分で対象をマクロに登録していくしかないと思いますよ。

【73100】Re:IMEパットでの文字を検索
お礼  Aoichi  - 12/11/11(日) 10:54 -

引用なし
パスワード
   ▼γ さん:
アドバイス有難うございます
まだ、確実に理解できていないようです
今回以下の方法で対処することができました
GetAd = Trim(ThisWorkbook.Worksheets(Sht).Cells(Gyou,Retu))       
GetAd = Application.WorksheetFunction.Substitute(GetAd, "(株)", "(株)")
しかし、"(株)"が不定の場合の処理をどうするか、今後の課題です
有難うございました

【73101】Re:IMEパットでの文字を検索
回答  ウッシ  - 12/11/11(日) 12:37 -

引用なし
パスワード
   こんにちは

>しかし、"(株)"が不定の場合の処理をどうするか、今後の課題です

先に回答しましたけど、ご自分で変換テーブルを作ってコード化するしかないと思います。

おおまかな機種依存文字を変換するものをコード化すると、

Sub test1()
  Debug.Print Replace_Char("(株)東京")
End Sub
Function Replace_Char(ByRef text As String) As String
  Dim i   As Long
  Dim s   As String
  Dim mChr As Variant
  Dim rChr As Variant
  s = text
  
  mChr = Array( _
    "1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", _
    "11.", "12.", "13.", "14.", "15.", "16.", "17.", "18.", "19.", "20.", _
    "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", _
    "ミリ", "キロ", "センチ", "メートル", "グラム", "トン", "アール", "ヘクタール", "リットル", _
    "ワットル", "カロリー", "ドル", "セント", "パーセント", "ミリバール", "ページ", _
    "mm", "cm", "km", "mg", "kg", "cc", "u", "平成", _
    "", "", "No.", "k.k.", "TEL", "上", "中", "下", "左", "右", _
    "(株)", "(有)", "(代)", "明治", "大正", "昭和")
  
  rChr = Array( _
    "(1)", "(2)", "(3)", "(4)", "(5)", "(6)", "(7)", "(8)", "(9)", "(10)", _
    "(11)", "(12)", "(13)", "(14)", "(15)", "(16)", "(17)", "(18)", "(19)", "(20)", _
    "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", _
    "ミリ", "キロ", "センチ", "メートル", "グラム", "トン", "アール", "ヘクタール", "リットル", _
    "ワット", "カロリー", "ドル", "セント", "パーセント", "ミリバール", "ページ", _
    "mm", "cm", "km", "mg", "kg", "cc", "平方メートル", "平成", _
    "「", "」", "No.", "K.K.", "TEL", "(上)", "(中)", "(下)", "(左)", "(右)", _
    "(株)", "(有)", "(代)", "明治", "大正", "昭和")
  
  With CreateObject("VBScript.RegExp")
    For i = 0 To UBound(mChr)
      .Pattern = mChr(i)
      s = .Replace(s, rChr(i))
    Next
  End With
  Replace_Char = s
    
End Function

mChrには機種依存文字、rChrに変換後の文字を登録します。

このサイトでmChrが正しく表示されるかは不明です。

【73102】Re:IMEパットでの文字を検索
発言  ウッシ  - 12/11/11(日) 12:41 -

引用なし
パスワード
   >このサイトでmChrが正しく表示されるかは不明です。

やっぱりダメですね。

mChrの方の
"1."は○1です。
"(株)"は小さなカッコ株です。

ご自分で必要なものに修正して下さい。

rChrの方はmChrに登録したものと同じ順番で対応する返還後の文字にして下さい。

【73103】Re:IMEパットでの文字を検索
お礼  Aoichi  - 12/11/12(月) 8:56 -

引用なし
パスワード
   ▼ウッシ さん:
こんにちは
Functionで使用していると思われる文字列を設定しておくわけですね
これで霧がはれました
ご丁寧な解答助かりました
早速以下のマクロを使わせていただきます
有難うございました

>おおまかな機種依存文字を変換するものをコード化すると、
>Sub test1()
>  Debug.Print Replace_Char("(株)東京")
>End Sub
>Function Replace_Char(ByRef text As String) As String
>  Dim i   As Long
>  Dim s   As String
>  Dim mChr As Variant
>  Dim rChr As Variant
>  s = text
>  
>  mChr = Array( _
>    "1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", _
>    "11.", "12.", "13.", "14.", "15.", "16.", "17.", "18.", "19.", "20.", _
>    "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", _
>    "ミリ", "キロ", "センチ", "メートル", "グラム", "トン", "アール", "ヘクタール", "リットル", _
>    "ワットル", "カロリー", "ドル", "セント", "パーセント", "ミリバール", "ページ", _
>    "mm", "cm", "km", "mg", "kg", "cc", "u", "平成", _
>    "", "", "No.", "k.k.", "TEL", "上", "中", "下", "左", "右", _
>    "(株)", "(有)", "(代)", "明治", "大正", "昭和")
>  
>  rChr = Array( _
>    "(1)", "(2)", "(3)", "(4)", "(5)", "(6)", "(7)", "(8)", "(9)", "(10)", _
>    "(11)", "(12)", "(13)", "(14)", "(15)", "(16)", "(17)", "(18)", "(19)", "(20)", _
>    "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", _
>    "ミリ", "キロ", "センチ", "メートル", "グラム", "トン", "アール", "ヘクタール", "リットル", _
>    "ワット", "カロリー", "ドル", "セント", "パーセント", "ミリバール", "ページ", _
>    "mm", "cm", "km", "mg", "kg", "cc", "平方メートル", "平成", _
>    "「", "」", "No.", "K.K.", "TEL", "(上)", "(中)", "(下)", "(左)", "(右)", _
>    "(株)", "(有)", "(代)", "明治", "大正", "昭和")
>  
>  With CreateObject("VBScript.RegExp")
>    For i = 0 To UBound(mChr)
>      .Pattern = mChr(i)
>      s = .Replace(s, rChr(i))
>    Next
>  End With
>  Replace_Char = s
>    
>End Function
>
>mChrには機種依存文字、rChrに変換後の文字を登録します。
>
>このサイトでmChrが正しく表示されるかは不明です。

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