![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Excelで見積書のフォーマットを作成しています。
顧客数が非常に多く、正しい顧客名が入力できるように、そして選択しやすいように
データの入力規則のリストを活用しておりましたが、
顧客数が多いのでリストが小さく、選びづらくなってしまい、違い方法を探しています。
Excelの関数またはVBAなどで、オートコンプリート機能のように、いくつか文字を入力すると、
指定のリスト一覧の中から候補がいくつか出てきて、いずれかを選択すると、そのセルに入力できる。
というようなことができないでしょうか。
ご教示願います。
No.3ベストアンサー
- 回答日時:
こんなのはどうでしょう。
添付画像のように、A列に顧客名を並べます。
下記のマクロをSheetモジュールに張り付けます。
B1セルに、顧客名の一部を入力します。
すると・・・。
入力した情報で顧客名が一意になる場合は、その顧客名で決定されます。
一意にならない場合は、顧客名のリストが表示され、選択することができるようになります。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Then Exit Sub
If Target.Value = "" Then Exit Sub
Dim i As Long
Dim a As String
Dim s As String
Dim h As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(i, "A").Value Like "*" & Target.Value & "*" Then
h = h + 1
a = a & s & Cells(i, "A").Value
s = ","
End If
Next i
If h = 1 Then
Application.EnableEvents = False
Target.Value = a
Application.EnableEvents = True
Exit Sub
End If
If h = 0 Then a = "該当する顧客名が存在しません!!"
With Target.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, _
Operator:=xlBetween, Formula1:=a
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = False
End With
Target.Select
SendKeys "%{DOWN}"
End Sub
![「Excel オートコンプリート機能を応用」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/0/542293914_590f1b4219af4/M.png)
お礼が遅くなり申し訳ございません。
貴重なご意見ありがとうございます。
マクロ等の知識が乏しく、アドバイス頂いたことをなかなか
活用できていないのが現状ですが、なんとかやってみたいと思います。
ありがとうございました。
細やかな例を示してくださったので、ベストアンサーに選ばせて頂きます。
No.2
- 回答日時:
このご質問をしばらく考えて昔も挑戦したことがあったことですが、失敗しましたが、技術が上がった今もうまく行きませんでした。
入力規則の出て来るものをコントロールすることは可能だと言えば可能なのですが、タイミングが悪いのです。
逆に、オートコンプリートを人為的に出てくるものを替えるということと考えました。次に何を出すかは、ユーザーの文字入力に依存しています。ユーザーに何秒でも待たせればもう失敗です。
ある程度までは可能なのですが、入力してすぐに素早い対応を示せないと思うのです。Excelが本体でやっているオートコンプリートを、ユーザーアドインやマクロで出すワザというのは、やったことはあります。でも、それ以降挑戦したことがありません。
そこで、便宜的ですが、IME のユーザー辞書を利用したらどうでしょうか。
今でも変わらないのなら、ユーザー辞書そのものは、Text で管理出来たと思います。
https://121ware.com/qasearch/1007/app/servlet/re …
お礼が遅くなり申し訳ございません。
貴重なご意見ありがとうございます。
複数のパソコンで使用するファイルに活用したいと思っていたものでして。
ユーザー辞書は個別で登録されていることも多いので、共有できるかどうかが懸念課題かと感じました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) データ入力規則リスト 空白を無視 3 2022/07/13 15:11
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) Excel ドロップダウンリスト(入力規則)に関してです データの入力規則で元データ79000行のド 3 2023/07/17 10:06
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのクイックアクセスツ...
-
エクセルでCtrl+Tでテーブルの...
-
DATE関数で現在の年齢を出した...
-
Excelで表を作ったところに文字...
-
エクセルのクイックアクセスツ...
-
在庫管理表に使うエクセルの関...
-
ユーザー定義関数をアドイン登...
-
職場の人から聞かれており、こ...
-
REGEXREPLACE関数について、
-
エクセルでバーコード作成し使...
-
下記マクロでMsgBox "空白です...
-
Excel関数-文字列で自動作成さ...
-
エクセルで表
-
【マクロ】for next構文について
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
エクセルで特定の範囲内から小...
-
PDFの請求明細をエクセルにしたい
-
Excelで50個のセルに同じ文字を...
-
エクセルで会社の従業員のデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報