
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で質問しましょう!
似たような質問が見つかりました
- 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ランキング
-
【Officer360?Officer365?の...
-
勤怠表について ABS、TEXT関数...
-
Excelで4択問題を作成したい
-
エクセル
-
エクセルの関数について
-
エクセルの表で作業してます。 ...
-
グループごとの個数をカウント...
-
エクセルの複雑なシフト表から...
-
エクセルについて
-
エクセルシートの見出しの文字...
-
エクセル GROUPBY関数について...
-
【マクロ】実行時エラー '424':...
-
Excelに貼ったXのURLのリンク...
-
Amazonでマイクロソフトオフィ...
-
グループごとの人数のカウント
-
【マクロ】変数に入れるコード...
-
UNIQUE関数の代用
-
ページが変なふうに切れる
-
空白のはずがSUBTOTAL関数でカ...
-
グループごとの人数のカウント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報