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

エクセルの入力規則で質問です。
顧客リストのようなものをつくっています。
セルへの入力でプルダウンリストを使いたいのですが、既存の顧客についてはプルダウンリストから選択する。
そして、新規の顧客がいる場合にはプルダウンリストではなくて直接入力をセルにしたいです。
さらに、入力済みの新規顧客については2回目以降はプルダウンリストに反映させたいのです。

このような入力規則の設定の仕方はあるでしょうか。
関数を使って、プルダウンリストの元データへ入力済みの顧客データをリンクさせるようにする方法は思いついたのですが、すっきりとした方法が思いつきません。
簡単なVBA等で解決する方法があれば教えて下さい。

●質問者: automatic214
●カテゴリ:コンピュータ
✍キーワード:VBA エクセル セル データ リスト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● SALINGER
●50ポイント

VBAのWorksheet_Changeイベントを使って、こんな感じでどうでしょうか。


プルダウンリストはA1セルに、顧客名簿はB列にしました。

それぞれ、"A1"と"B"の部分を変更することで実際の環境に合わせてください。


最初はプルダウンリストが無いので、A1セルに何か文字を入れてイベントを実行させると、プルダウンがでます。

Validation.ShowError = False

とすることで新規顧客を登録できるようにしています。


Private Sub Worksheet_Change(ByVal Target As Range)
 Dim i As Integer
 Dim str As String
 Dim r As Range
 Dim lastRow As Long
 Dim f As Boolean
 
  'ドロップダウンリストのセルを指定
 Set r = Range("A1")
 
 If Intersect(Target, r) Is Nothing Then Exit Sub
 If Target.Count <> 1 Then Exit Sub
 
  '顧客リストの最終行の取得
 lastRow = Cells(Rows.Count, "B").End(xlUp).Row
 
  '新規かどうかを判断
 For i = 1 To lastRow
 If Cells(i, "B").Value = Target.Value Then
 f = True
 Exit For
 End If
 Next
 
 If f = False Then
  '新規顧客の追加
 Cells(lastRow + 1, "B").Value = Target.Value
 
  'リストを削除
 r.Validation.Delete
 
  'リストの文字列の作成
 str = ""
 For i = 1 To lastRow + 1
 str = str & Cells(i, "B").Value & ","
 Next i
 
  'リストの設定
 With r.Validation
 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
 xlBetween, Formula1:=Left(str, Len(str) - 1)
 .IgnoreBlank = True
 .InCellDropdown = True
 .InputTitle = ""
 .ErrorTitle = ""
 .InputMessage = ""
 .ErrorMessage = ""
 .IMEMode = xlIMEModeNoControl
 .ShowInput = True
 .ShowError = False
 End With
 End If
End Sub

http://q.hatena.ne.jp/

◎質問者からの返答

ありがとうございます。これを加工することでできそうですね。


2 ● たっぷ
●20ポイント

同じ列にある、顧客名などを対象にすると書いてした場合、最も簡単な方法としては、

入力するセルで右クリック -> リストから選択 -> 入力されている項目のリストが表示される。

もしくは、入力するセルで、ALT + 下矢印キーでも同様です。

今まで、入力していないものの場合は、通常通り入力します。

http://q.hatena.ne.jp/answer

◎質問者からの返答

なるほど。意外とこの方法は盲点でした。ありがとうございます。

関連質問


●質問をもっと探す●



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