人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問です
エクセルで文中にある
[全]ローマ字[小]のf を
[半]ローマ字[小]のf に変換する関数かマクロをお願いします
列(AV)指定できることでも構いません
できればどこにあったかセルに色が付く方法があれば助かります
対象はローマ字とハイフンのみです

1377137035
●拡大する

●質問者: inosisi
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●50ポイント ベストアンサー
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


ローマ字とハイフンのみです。


inosisiさんのコメント
ありがとうございます 変換はできました。 エクセルでできたマッチングソフトを使って マッチングさせると該当なしとなります 通常の検索と選択の検索で行うと検索してくれます なぜ同じものなのにマッチングソフトでは合致しないのでしょう?

inosisiさんのコメント
ありがとうございました 上手くいきました 先ほどの問題も別ファイルでうまくいきました。

inosisiさんのコメント
すみません 列の範囲指定する場合のマクロを修正の仕方を教えてください AV28からAV49に修正できる方法をお願します。 追加で申し訳ございません

inosisiさんのコメント
すみません 列の範囲指定する場合のマクロを修正の仕方を教えてください AV28からAV49に修正できる方法をお願します。 追加で申し訳ございません

きゃづみぃさんのコメント
ちょっと時間がかかるので あとで 修正してみます。

inosisiさんのコメント
すみませんよろしくお願いします

きゃづみぃさんのコメント
>|vb| 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 ここを変更しました。

inosisiさんのコメント
ありがとうございました 大変助かりました。 上手くいきました。

2 ● だわかき
●50ポイント

http://q.hatena.ne.jp/1377137035
関数ASCを使ってできます。

=ASC(文字列) ■全角文字を半角にする
http://kokodane.com/kan35.htm

fと?だけ置換したいなら、SUBSTITUTE関数を入れ子にして使います。
=SUBSTITUTE(SUBSTITUTE(セル名,"f","f"),"?", "-")


inosisiさんのコメント
ありがとうございました上手く変換しました でも状況がマッチングソフトでは合致してくれないので 困りました原因を調査中です

inosisiさんのコメント
別ファイルでやりましたら上手くいきました
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ