• ベストアンサー

excelでセル入力を楽にしたい

例えば、社員の名前をある列に入れないといけないとき 入力規制とかで、社員の名前の記述されたデータ列を指定すると、リストボックスで選択できる様になりますよね。 しかし、社員数が100人位いて多い場合、選択するのも結構大変になります。 そこで、読みのはじめの人文字を入れたてからリストボックスを開くと、該当データ辺りにカーソルが来ていて、入力しやすくできるといった方法はないものでしょうか。 やり方はリストボックス形式にこだわりません。入力しやすければいいです。 入力する社員名は決まっていて、新規の入力はできなくても良いです。ただし、社員が増えた時は、リストに追加して入力できるようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

(1)エクセルにはあるセルに小島 完と入力して同列下のセルで小島と入力すると小島 完が出てくる機能がある。これを使えないか考えたが、うまく行かない。 (2)VLOOKUP関数で候補を引けないか考えたが 同姓があると(全員苗字名前とも違わないと)うまく行かない。 (3)H1:H10に名前が 小島 完 小島 三平 小島 三平 小島 順 小嶋 洋平 川村 次郎 朝霞 清 朝霞 源次 朝霞 次郎 兵庫 建次 兵庫 太郎 とあり、そのまま(漢字で)ソートする。そしてG1に関数=LEFT(H1,1)を入れ、G10まで複写する。 E1に名前先頭漢字1文字入力する。 F1に関数=OFFSET($H$1,MATCH($E$1,$G$1:$G$10,0)+ROW()-2,0)と入れ、同じ漢字で始まる最大人数分の行数を 複写する。この例では「小X XX」が5人いるのでF5行まで複写する。 これでE1に「小」と入れると、F1:F5は 小島 完 小島 三平 小島 三平 小島 順 小嶋 洋平 となるから、この中から選べば良い。 しかし選んだF1:F5のうちのセルから、目的のセルへのコピーが難しくてで来そうにもない。(手操作で、毎回コピーするならそれはそれで良いが、手数がかかると感じるでしょう)。そこでVBAで Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static c As Integer If Target.Column = 6 Then Cells(c + 1, "c").Value = Target.Value c = c + 1 End If End Sub をVBEのSheet1のSelectionChangeイベントに貼りつけました。 これでE1セルに名前第1字入力--->F1:F5に候補セット--->F1:F5のどれかを選択してクリック --->C列にC1から上から順に選択した名前をセットする。 (4)本来は質問の意図を実現するには、VBAで2段検索をして、即ち名前の第1文字で表を検索し、リストボックスかコンボボックスに候補の名前を表示し、その中から クリックして選んだものをセルにセットするプログラムを 組まないといけないと思います。 関数だけだと限界があります。

pointup1
質問者

お礼

お礼が遅くなり大変申し訳ございません。 時間が無くまだ試していないのですが 詳細なプログラムまで教えていただきありがとうございました。是非参考にします。

その他の回答 (7)

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.8

INDIRECT関数でリストを切り替える方法とかーー 例えば社員の名前の読み方に応じてあ行、か行、さ行に振り分けリストを作成し、それぞれのリストに「あ」「か」「さ」と名前をつけてやります。A1にあ~わを入力するとし、B1の入力規則の「リスト」で =INDIRECT(A1) と設定してやります。すると例えば「鈴木」さんだとA1に「さ」と入力してやると(またはA1にも入力規則を設定してやり)、さ行の名前のみがB1のリストボックスに出てきます。(逆に面倒かもーーー) 所属部署を入力する場合は所属部署ごとにリストを振り分けるのもいいですね。

pointup1
質問者

お礼

お礼が遅くなり大変申し訳ございません。 アドバイスありがとうございます。 試してみます。

  • shiga_3
  • ベストアンサー率64% (978/1526)
回答No.6

すいません、No.2は勘違いです。取り消します。

回答No.5

 私なら、IME、すなわち、かな漢字変換ソフトで単語登録してしまいますね。 たとえば、「よしだ」の読みで 吉田茂 吉田恭子 芳田元之助 などと名前を登録した社員名入力専用のユーザー辞書を作ります。姓を入力すれば、あとは選択するだけです。  ユーザー辞書はCSVなどのテキストファイルから一括登録できますし、もちろん追加修正も容易です。Excelのsheetが変わってもすぐ使えますし、ワープロやその他のソフトでも同様に使えます。さらに、省入力・推測変換機能を使えば、入力はもっと楽になります。

pointup1
質問者

お礼

マクロや関数の方へ頭がいってしまっていました。 辞書登録も一案ですね。利用者に確認してみます。

  • O-LEO
  • ベストアンサー率27% (205/740)
回答No.4

EXCELに対して設定をかけると、別のシートを持ってきたときには使えませんよね。 社員全員を辞書登録してしまうのが一番簡単で、どんなソフトのときも使えます。 読みを2文字位にすれば、1~2秒で入力できるようになります。

pointup1
質問者

お礼

マクロや関数の方へ頭がいってしまっていました。 辞書登録も一案ですね。利用者に確認してみます。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.3

#1です。 氏名を漢字入力するのなら、最初の数文字を入力すれば、オートコンプリート機能がはたらいて自動的に表示されないですか? これでは不満ということですか?

pointup1
質問者

お礼

マクロや関数の方へ頭がいってしまっていました。 オートコンプリートは選択を逃してしまうともう再入力の必要があるのでは? 一案ではありますね。ありがとうございます。

  • shiga_3
  • ベストアンサー率64% (978/1526)
回答No.2

名前を入力するセルの一つ前に、名前の読み仮名の頭一文字を入力するセルを作って、その列にオートフィルタをかけてやるというのはどうでしょうか?頭一文字の読みをリストから選択すれば、100人ぐらいの人数だったら多くとも4、5人くらいには絞れると思いますので、かなり入力しやすくなるとは思いますが。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.1

列を1列増やすことになりますが、社員一人一人に「コード番号」のようなものをつけ、入力時は数値で入力するようにしたらどうでしょうか。 慣れてくると下手なマウス操作より数値入力のほうが圧倒的に早いです。 数値を入力するセルの隣に、INDEX関数とかVLOOKUP関数などを使って、氏名を表示するようにもできます。

pointup1
質問者

お礼

早速ありがとうございます。 入力元のデータ表に、名前しか無い場合、 「山田太郎さんは528番、田中一郎さんは423番・・・」 という風に変換表を見ながら入力しないといけないですね。50人くらいで全員の番号を覚えられれば早いんですが..。

関連するQ&A