ここから本文です

解決済みの質問

VBAの質問です。

tiebukurositsumonさん

VBAの質問です。

シート上、あるいは変数(x)の中にある丸文字(①~⑳)だけを、ある一つの文字(例えば●)に変換したいのですが何か方法はありませんでしょうか?

丸文字ではなく普通の文字や数字なら簡単なのですが、丸文字という部分で引っかかっています。

ご存知の方教えてください。

よろしくお願い致します。

違反報告

ベストアンサーに選ばれた回答

yuujgmnさん

シート上なら

For i = 1 To 20
Cells.Replace Chr(Asc("①") + i - 1), "●"
Next

変数(x)なら2行目を
x = Replace(x, Chr(Asc("①") + i - 1), "●")

に変更。

質問した人からのコメント

  • 成功素晴らしい! こんなに簡単に出来るとは!
    今まで悩んでいたのが嘘のようです。本当に感謝です。

    他の皆さんもありがとうございました。
    今回の質問以外にもいろいろな要素が含まれていて大変参考になりました。
  • コメント日時:2010/3/20 00:16:33

グレード

この質問・回答は役に立ちましたか?
役に立った!

お役立ち度:お役立ち度 1点(5点満点中)1人が役に立つと評価しています。

ベストアンサー以外の回答

(4件中1〜4件)

並べ替え:回答日時の
新しい順
古い順

 

my_offiseさん

この程度なら? 置き換えでいいんじゃナインかな。

Sub REPLE()
Dim i As Integer
Dim Str, ReStr As String

Str = Array("①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧")
ReStr = "●"
''................................... ↑ ⑳まで書いてね

Application.ScreenUpdating = False
For i = LBound(Str) To UBound(Str)
Cells.Replace What:=Str(i), Replacement:=ReStr
Next
Application.ScreenUpdating = True

End Sub

ruta_aj0103さん

・A1セルに入力された文字列の中に①~⑳を含む場合、●に変換する
以上の条件で私のPCの場合でのコードです。

Sub test()
Dim x As String '文字列
Dim x1() As String '1文字を格納する配列変数
Dim i As Integer 'カウンタ
'文字列の取得
x = Range("A1").Value
'変換処理(1文字ずつ判定していく)
ReDim x1(1 To Len(x))
For i = 1 To Len(x)
x1(i) = Mid(x, i, 1)
If Asc(x1(i)) >= -30912 And Asc(x1(i)) <= -30893 Then
x1(i) = "●"
End If
Next i
'変換後の文字列の出力
x = Join(x1, ",") 'カンマ区切りで配列を結合
Range("A1").Value = Replace(x, ",", "") 'カンマを取り除いて出力

End Sub

ASSCIIコードで-30912=①~-30893=⑳の範囲にあるようだったので上記の様な判定にしてみました。

aki_kuro_01さん

①~⑳の変換元と変換先の対応表を作ります。図の赤枠部分。
(私、勘違いしてた。全部同じ記号なのですね。ま、変換先を同じのにしてもらえば動きます。)

変換したいエリアを選択しておいて、マクロ実行。
黄色部分を選択してマクロ実行すると水色のように変わります。

(余談ですが、これは中国語のピンイン入力に使ってます。a1,a2,a3,a4を各々aの第1声などに変換)

参考になれば。
---------------------
Sub okikae()

Dim moto
Dim saki
Dim i As Long

For i = 3 To 6 '置き換え表の行位置
moto = Range("a" & i)
saki = Range("b" & i)
Selection.Replace What:=moto, Replacement:=saki, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next

End Sub

投稿画像

bornnakayosiさん

丸文字が何百個有るか調べて全数対象にしてするしかないでしょう。 取りあえず。

知恵ノートとは?

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

話題のキーワード

[カテゴリ:Office系(Word、Excel)]

ただいまの回答者

09時23分現在

2458
人が回答!!

1時間以内に4,547件の回答が寄せられています。

>>回答ひろばに行く


知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する