エクセルで文中にある
[全]ローマ字[小]のf を
[半]ローマ字[小]のf に変換する関数かマクロをお願いします
列(AV)指定できることでも構いません
できればどこにあったかセルに色が付く方法があれば助かります
対象はローマ字とハイフンのみです
Sub 文字変換() Dim l As Long 列 = "A" For l = 1 To Cells(Rows.Count, 列).End(xlUp).Row a = Cells(l, 列) Cells(l, 列) = StrConv(Cells(l, 列), vbNarrow) If a <> Cells(l, 列) Then Cells(l, 列).Interior.Color = 65535 End If Next l End Sub
変換したところは 黄色にしました。
列に 変換したい列をセットしてください。
半角全部変換しています。
Sub 大文字変換() Dim l As Long 列 = "A" For l = 1 To Cells(Rows.Count, 列).End(xlUp).Row a = Cells(l, 列) Cells(l, 列) = henkan(Cells(l, 列)) If a <> Cells(l, 列) Then Cells(l, 列).Interior.Color = 65535 End If Next l End Sub Function henkan(aa As String) As String d = "" For b = 1 To Len(aa) c = Mid(aa, b, 1) If c >= "A" And c <= "Z" Then c = StrConv(c, vbNarrow) End If If c >= "a" And c <= "z" Then c = StrConv(c, vbNarrow) End If If c = "-" Then c = StrConv(c, vbNarrow) End If d = d & c Next b henkan = d End Function
ローマ字とハイフンのみです。
Sub 文字変換() Dim l As Long 列 = "A" For l = 1 To Cells(Rows.Count, 列).End(xlUp).Row a = Cells(l, 列) Cells(l, 列) = StrConv(Cells(l, 列), vbNarrow) If a <> Cells(l, 列) Then Cells(l, 列).Interior.Color = 65535 End If Next l End Sub
変換したところは 黄色にしました。
列に 変換したい列をセットしてください。
半角全部変換しています。
Sub 大文字変換() Dim l As Long 列 = "A" For l = 1 To Cells(Rows.Count, 列).End(xlUp).Row a = Cells(l, 列) Cells(l, 列) = henkan(Cells(l, 列)) If a <> Cells(l, 列) Then Cells(l, 列).Interior.Color = 65535 End If Next l End Sub Function henkan(aa As String) As String d = "" For b = 1 To Len(aa) c = Mid(aa, b, 1) If c >= "A" And c <= "Z" Then c = StrConv(c, vbNarrow) End If If c >= "a" And c <= "z" Then c = StrConv(c, vbNarrow) End If If c = "-" Then c = StrConv(c, vbNarrow) End If d = d & c Next b henkan = d End Function
ローマ字とハイフンのみです。
Sub 大文字変換() Dim l As Long 列 = "AV" For l = 28 To 49 a = Cells(l, 列) Cells(l, 列) = henkan(Cells(l, 列)) If a <> Cells(l, 列) Then Cells(l, 列).Interior.Color = 65535 End If Next l End Sub Function henkan(aa As String) As String d = "" For b = 1 To Len(aa) c = Mid(aa, b, 1) If c >= "A" And c <= "Z" Then c = StrConv(c, vbNarrow) End If If c >= "a" And c <= "z" Then c = StrConv(c, vbNarrow) End If If c = "-" Then c = StrConv(c, vbNarrow) End If d = d & c Next b henkan = d End Function
よくみたら同じ列内でしたので 上記でOKかと思われます。
列 = "AV"
For l = 28 To 49
ここを変更しました。
ありがとうございました
大変助かりました。
上手くいきました。
http://q.hatena.ne.jp/1377137035
関数ASCを使ってできます。
=ASC(文字列) ■全角文字を半角にする
http://kokodane.com/kan35.htm
fと-だけ置換したいなら、SUBSTITUTE関数を入れ子にして使います。
=SUBSTITUTE(SUBSTITUTE(セル名,"f","f"),"-", "-")
ありがとうございました上手く変換しました
でも状況がマッチングソフトでは合致してくれないので
困りました原因を調査中です
別ファイルでやりましたら上手くいきました
よくみたら同じ列内でしたので 上記でOKかと思われます。
2013/08/23 12:17:11列 = "AV"
For l = 28 To 49
ここを変更しました。
ありがとうございました
2013/08/23 15:07:27大変助かりました。
上手くいきました。