エクセルVBAで住所録を作っています。
住所録で下記のようなコードを書いて、キーワード検索をさせるようにしているのですが、『*丁目』や番地に半角英数を使っています。
全角で数字を入力しても検索されるようなコードの書き方はあるのでしょうか?
宜しくお願いします。
Sub 住所検索()
ans = InputBox("住所を入力してください")
With ActiveSheet
If .AutoFilterMode Then 'オートフィルタモードがオンなら
.AutoFilterMode = False 'リセットする
End If
.Range("A1:IV1").AutoFilter 'オートフィルタモードをセット
.Range("A1:IV1").AutoFilter Field:=4, Criteria1:="=*" & ans & "*" '4つ目のフィルターに検索文字
End With
End Sub
No.1ベストアンサー
- 回答日時:
StrConv関数
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/f …
ans = InputBox("住所を入力してください")
ans = StrConv(ans,vbNarrow) '←追加
With ActiveSheet
変数ansに含まれる”半角に出来る全角文字”を半角文字に変換しておくとか?
No.5
- 回答日時:
> この場合はカタカナや英数字は半角で書いておかなければならないのでしょうか?
え?
ans = StrConv(ans, vbNarrow)
って入れたことはInputboxに入力された値で半角に出来るものはすべて半角としてansに代入して、そのansで検索してるんだから当然でしょ?
だからNo2で住所のカナは全角があるんじゃないですか、だったら数字だけを半角化する方法がありますよと書いたのです。
ありがとうございます。
ans = StrConv(ans, vbNarrow)
の意味をよく理解せずに使おうとしていました。
問題のB列だけ
ans = StrConv(ans, vbWide)
で書いたらできました。
お手数掛けてすみません。
ありがとうございました。
No.4
- 回答日時:
merlionXXです。
> B列のみ『ans = StrConv(ans, vbNarrow)』を入れるとカタカナ表記のものが全角半角共、検索されなくなります。
Sub 顧客名検索()
ans = InputBox("顧客名を入力してください")
ans = StrConv(ans, vbNarrow)
With ActiveSheet
If .AutoFilterMode Then 'オートフィルタモードがオンなら
.AutoFilterMode = False 'リセットする
End If
.Range("A1:IV1").AutoFilter 'オートフィルタモードをセット
.Range("A1:IV1").AutoFilter Field:=2, Criteria1:="=*" & ans & "*" '2つ目のフィルターに検索文字
End With
End Sub
としたのですね?ならば、インプットボックスにカタカナを全角で入れようが半角で入れようが対象の半角カタカナを検索すると思いますが。
> カタカナ検索した場合、対象項目がないことになってしまいます
住所録B列のカタカナが全角で書かれていたのではないでしょか?
この回答への補足
>住所録B列のカタカナが全角で書かれていたのではないでしょか?
そのとおりです。他の列はカタカナは全て半角で入力しているのですが、B列のみは全角で入力しています。
この場合はカタカナや英数字は半角で書いておかなければならないのでしょうか?
No.3
- 回答日時:
merlionXXです。
ans = Replace(ans, Right(StrConv(Str(i), vbWide), 1), Right(Str(i), 1)) は
ans = Replace(ans, StrConv(i, vbWide), i)
だけでもいけますね、失礼しました。
この回答への補足
回答ありがとうございます。
みんなが使えるようにするため、どんな入力の仕方でも検索できるようにしたかったので、n-junさんの回答を使わせていただいています。
数字のみの場合はこのような方法もあるのですね。
勉強になりました。
ここでひとつ問題が起こったのですが、
今、A列(番号)、B列(氏名)、C列(フリガナ)、D列(住所)、E列(郵便番号)、F列(電話番号)、G列(備考)、H列以降(補足事項)というふうに作っています。
全て全角半角問わず、検索できるように同じようにコードを入力したのですが、B列のみ『ans = StrConv(ans, vbNarrow)』を入れるとカタカナ表記のものが全角半角共、検索されなくなります。
どうしてでしょうか?
ちなみにB列部分の元のコードは、
Sub 顧客名検索()
ans = InputBox("顧客名を入力してください")
With ActiveSheet
If .AutoFilterMode Then 'オートフィルタモードがオンなら
.AutoFilterMode = False 'リセットする
End If
.Range("A1:IV1").AutoFilter 'オートフィルタモードをセット
.Range("A1:IV1").AutoFilter Field:=2, Criteria1:="=*" & ans & "*" '2つ目のフィルターに検索文字
End With
End Sub
で、3行目に『ans = StrConv(ans, vbNarrow)』を入れると、カタカナ検索した場合、対象項目がないことになってしまいます。
教えてください。
No.2
- 回答日時:
yunako0517さんこんにちは、merlionXXです。
マンション名等、住所にもカタカナが使われることが多々あると思います。
全角のカタカナはそのままにして数字のみ半角にしたいのなら
ans = InputBox("住所を入力してください")
For i = 0 To 9
ans = Replace(ans, Right(StrConv(Str(i), vbWide), 1), Right(Str(i), 1)) '全角数字のみ半角に置換
Next i
With ActiveSheet
以下略
で出来ると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テプラは半角数字が使えますか?
-
半角の『°(単位の度)』
-
EXCELの文字列操作で文字数不足...
-
メールアドレスの上ハイフン入...
-
契約書や 公文書・私文書などに...
-
半角の×(かける)は?
-
EXCELで、セル内の半角カ...
-
関数を使わずに一括で全角を半...
-
EXCEL95 VLOOKUP関数で半角と全角
-
℃の半角表示
-
Excel 文字列の中から数字だけ...
-
【VBA】ファイルパスに半角スペ...
-
ビジネスの文書における、数字...
-
エクセル関数で文字列の中のス...
-
半角の漢字の入力方法
-
エクセルで 全角の空白を含む...
-
半角スペース
-
ワードへの差し込みで数字一桁...
-
Excel 条件付き書式:条件を半...
-
半角英数で♭の入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テプラは半角数字が使えますか?
-
半角の『°(単位の度)』
-
メールアドレスの上ハイフン入...
-
半角スペース
-
契約書や 公文書・私文書などに...
-
半角の×(かける)は?
-
EXCELの文字列操作で文字数不足...
-
関数を使わずに一括で全角を半...
-
EXCEL95 VLOOKUP関数で半角と全角
-
℃の半角表示
-
Excel2016 検索の窓を常時表示...
-
EXCELで、セル内の半角カ...
-
エクセル関数で文字列の中のス...
-
半角の漢字の入力方法
-
ビジネスの文書における、数字...
-
エクセルで、JIS関数、ASC関数...
-
【VBA】ファイルパスに半角スペ...
-
Excel 文字列の中から数字だけ...
-
エクセルでひらがな・漢字はそ...
-
お名前(姓)」には「カタカナ(...
おすすめ情報