
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

お礼が遅くなり申し訳ございません。
貴重なご意見ありがとうございます。
マクロ等の知識が乏しく、アドバイス頂いたことをなかなか
活用できていないのが現状ですが、なんとかやってみたいと思います。
ありがとうございました。
細やかな例を示してくださったので、ベストアンサーに選ばせて頂きます。
No.2
- 回答日時:
このご質問をしばらく考えて昔も挑戦したことがあったことですが、失敗しましたが、技術が上がった今もうまく行きませんでした。
入力規則の出て来るものをコントロールすることは可能だと言えば可能なのですが、タイミングが悪いのです。
逆に、オートコンプリートを人為的に出てくるものを替えるということと考えました。次に何を出すかは、ユーザーの文字入力に依存しています。ユーザーに何秒でも待たせればもう失敗です。
ある程度までは可能なのですが、入力してすぐに素早い対応を示せないと思うのです。Excelが本体でやっているオートコンプリートを、ユーザーアドインやマクロで出すワザというのは、やったことはあります。でも、それ以降挑戦したことがありません。
そこで、便宜的ですが、IME のユーザー辞書を利用したらどうでしょうか。
今でも変わらないのなら、ユーザー辞書そのものは、Text で管理出来たと思います。
https://121ware.com/qasearch/1007/app/servlet/re …
お礼が遅くなり申し訳ございません。
貴重なご意見ありがとうございます。
複数のパソコンで使用するファイルに活用したいと思っていたものでして。
ユーザー辞書は個別で登録されていることも多いので、共有できるかどうかが懸念課題かと感じました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
【関数】【マクロ】売上X円以上...
-
【マクロ 画像あり】Exact関数...
-
空白処理を空白に
-
同じ名前(重複)かつ 日本 ア...
-
エクセルでフィルターした値を...
-
エクセルシートの見出しの文字...
-
空白のはずがSUBTOTAL関数でカ...
-
excel
-
if関数の複数条件について
-
【マクロ】数式を入力したい。...
-
Excelで4択問題を作成したい
-
Excel 複数のセルが一致すると...
-
Excel 日付の表示が直せません...
-
表計算ソフトでの様式の呼称
-
【マクロ】既存ファイルの名前...
-
【マクロ】エラー【#DIV/0!】が...
-
【マクロ】実行時エラー '424':...
-
エクセルの文字数列関数と競馬...
-
エクセルに写真が貼れない(フ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターした値を...
-
if関数の複数条件について
-
エクセルシートの見出しの文字...
-
excel
-
エクセルの文字数列関数と競馬...
-
VLOOKUP FALSEのこと
-
同じ名前(重複)かつ 日本 ア...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【画像あり】【関数】指定した...
-
エクセルのVBAで集計をしたい
-
【マクロ】【画像あり】4つの...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルのライセンスが分かり...
おすすめ情報