『他の列でALT+↓と同様の入力方法ができますか。』(Piong) 私はExcelに関しそれほど精通していない者ですが、 Excelのエキスパートの方へお尋ねいたします。 A1へ"伝票No" A2〜A1000程度"00138322"形式(文字列、8桁の番号)の番号が入力されています。 また、1000行までの中には同じ伝票No.が数個含まれております。 A列・1000行以降に、以前入力したDataを入力したい場合はALT+↓でリストを呼出して 入力しておりますが、例えばF2へALT+↓と同様のリストを呼出す事が出来ませんでしょうか。 入力規則で"A2:A1000"をリスト指定して行ってみましたが、番号がバラバラな事と、 新規の番号が入力出来ず実用面では問題ありでした。 何か良い方法が御座いましたらご教授頂きたくお願い申し上げます。 < 使用 Excel:Excel2007、使用 OS:Windows7 > ---- できないと思います。 マクロを使ってもよければ、近いことができるかもしれません。 (マナ) 2017/05/21(日) 15:29 ---- (マナ)様 早速のご教授有り難う御座います。 ご指摘の通りマクロを使う事は問題有りませんが、如何せん小生、マクロに精通しておりません。 どなたかマクロをご教授頂けませんでしょうか。 宜しくお願いいたします。 当方法が難解・困難な様であれば当件を見合せたく存じます。 (Piong) 2017/05/21(日) 17:05 ---- A列のデータを並べ替えて入力規則のリストを作成しています。 F列のセルを選択したときのみ実行されます。 http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040727.html Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim srtl As Object Dim v Dim i As Long Dim myList As String If Target(1).Column <> Columns("F").Column Then Exit Sub Set srtl = CreateObject("System.Collections.Sortedlist") v = Range("A2", Range("A" & Rows.Count).End(xlUp)).Value For i = 1 To UBound(v) srtl(CStr(v(i, 1))) = True Next If srtl.Count = 0 Then Exit Sub For i = 0 To srtl.Count - 1 myList = myList & "," & srtl.GetKey(i) Next Target(1).EntireColumn.Validation.Delete Target(1).Validation.Add Type:=xlValidateList, Formula1:=myList Target(1).Validation.ShowError = False End Sub (マナ) 2017/05/21(日) 18:20 ---- (マナ)様 早速のVBAを組んで頂きまして有り難うございました。 試してみました、感激です。思った以上に動作が完璧でした。 なぜこの様な事が出来るのか勉強してみます。 本当に有り難うございました。 (Piong) 2017/05/21(日) 19:00 ---- (マナ)様 ひとつ教えて頂けませんでしょうか。 F列に指定してあります、入力規則ですが、入力値の種類が"リスト"に設定は理解できますが 元の値の設定として、伝票No.Data全てを”並べ替えと重複Dataを除く”をマクロで行っ ているのでしょうか。 また、入力規則で"リスト"指定なのになぜリスト以外Dataが入力出来るのでしょうか。 ご教授宜しくお願い致します。 (Piong) 2017/05/21(日) 19:27 ---- >”並べ替えと重複Dataを除く” わたしも、この学校で教わりました。 SortedListを使えばできます。 今は、まだ理解できないかもしれませんが、 このあたりで勉強してもらえばよいです。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_sortedlist.html >入力規則で"リスト"指定なのになぜリスト以外Dataが入力出来るのでしょうか。 http://www.eurus.dti.ne.jp/yoneyama/Excel/n-kis.htm#error_mukou マクロだと、この部分です。でもこんなの覚えてはいません。 マクロの記録で調べました。 >Target(1).Validation.ShowError = False 入力させたくないのであれば、この行を削除してください。 (マナ) 2017/05/21(日) 20:16 ---- (マナ)様 小生の拙い問合せに御教示頂き恐れ入ります。 入力規則以外のDataが入力出来た方がBestです。 ただ、今までの経験上、入力規則でリスト指定の場合、リスト以外のDataは 受付けないものと思っておりましたので確認させて頂いた次第です。 今日は本当に勉強になりました、教え頂いたマクロを理解できる様勉強してみます。 今後とも宜しくお願い申し上げます。 (Piong) 2017/05/21(日) 20:41