• ベストアンサー

Excelでのデータ入力について

Windows98でExcel2000を使用しています。 現在「番号」(A列)「氏名」(B列)を100件ほど既に入力しています。 番号を呼び出して点数を入力すると、呼び出した番号の(C列)(D列)(E列)に自動的に値が入るようなフォームを作成したいのです。 「データ」→「フォーム」を利用すると、1回毎に「検索」を押さないと新規入力になってしまうので不便です。 「検索」を押さなくても入力できるようなフォーム、又は他の便利な機能をご存知ないでしょうか。 つたない説明ですが、よろしくお願いします。

noname#121624
noname#121624

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

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

エクセルのVBAに成ってしまいますが、よろしかったら下記をどうぞ。 まず、セルA1を検索する生徒番号の入力用セルとします。 A2からA100まで生徒番号が入っているとします。 (1)セルA1に入れた生徒番号が入っているセルをアクティブにするVBAコードを、ツール-マクロ-新しいマクロの記録-OKで記録します。 (2)マクロの記録をする操作は、編集-検索-1つ実在する生徒番号を入力する-次ぎを検索-OKと操作する。 (3)マクロ記録を終了するため、ツール-マクロ-記録終了を操作する。 (4)できたVBAコードを調べるため、ツール-マクロ-VBEでVBAProjectのフレームの標準モジュールをダブルクリックし「Module1」を出し、「Module1」をクリックすると、Macro1のVBAコードが現れる。 (5)次ぎにSheet1に、コマンドボタンを貼りつける。 表示-ツールバー-VisualBasic-コントロール(金槌の絵)-コマンド-ボタン(四角の絵)-Sheet1上で左下にドラッグし適度の大きさのボタンにする。 (6)Sheet1上のコマンドボタンをダブルクリックする。 VBEの画面になり、 Private Sub CommandButton1_Click() End Sub が現れる。 (7)このSubとEnd Subの間に、(4)のVBAコードを貼りつける。 (8)その結果を下記のように修正する。 Private Sub CommandButton1_Click()    Range("A2:A100").Select ’検索範囲指定    Selection.Find(What:=Range("a1").Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate ’検索して見つかればそのセルをアクティブに ActiveCell.Offset(0, 2) = "aa"  'この行を加える。A列から2列右の列に ActiveCell.Offset(0, 3) = "bb" ’この行を加える End Sub   aaとbbは貴殿の良いように変えてください。 (9)A1セルに生徒番号を入れて、コマンドボタンをクリックすると   その生徒番号の行のC列がaa,D列がbbと成る。   生徒番号入力->ボタンクリックを繰り返してください。

noname#121624
質問者

お礼

VBAはまだ勉強していませんが以前から興味があり、この機会にぜひ挑戦してみようと思います。 丁寧なご説明有り難うございました。

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

>番号を呼び出して点数を入力すると、呼び出した番号の(C列)(D列)(E列)に自動的に値が入るような 『番号を指定して、点数を3つ入力して、呼び出した番号の横に書き込む』と解釈して回答します。 Sheet1のA1に「番号」、B1に「氏名」、C1に「点数1」、D1に「点数2」、E1に「点数3」の表題。 2行目から「番号」、「氏名」が入力されているとします。 ユーザーフォームを作ることもできますが、シートに入力欄を作ってみます。  (ユーザーフォームは説明が難しいので) I1に「番号」、J1に「氏名」、K1に「点数1」、L1に「点数2」、M1に「点数3」の表題。 この2行目に入力します。マクロで間違いを起こさないように、番号を入力する『セルI2』に『選択番号』の名前を付けます。 >番号を呼び出して これを実現するために、『セルI2』に入力規則を設定します。 データ→入力規則で入力値の種類を『リスト』、元の値を番号が入力されている範囲、例えば『$A$2:$A$100』をセット。 セルJ2には算式: =VLOOKUP(I2,A2:B100,2,FALSE) をセットします。 これで、番号はリストボックスから選択できます。番号を選択したら名前が出ます。 >呼び出した番号の(C列)(D列)(E列)に自動的に値が入るような・・・ これを実現するために、ボタンを使います。コントロールツールボックスのボタンを1つ、入力する『点数3』の横に配置します。 ツール→マクロ→Visual Basic Editor でVBE画面に移動し、Sheet1のコードウインドウに下記マクロを貼り付けます。  (デザインモードでボタンをダブルクリックすることで移動できます) ワークシートに戻り、番号はリストから選択、点数1、2、3を入力してボタンを押すことで登録できるはずです。 ユーザーフォームも同じように作れるはずです。番号を呼び出すならコンボボックスがいいでしょう。 Private Sub CommandButton1_Click()   Dim BangoCell As Range '表の中で、入力しようとする番号のあるセル   Set BangoCell = Range("A2:A" & Range("A2").End(xlDown).Row). _             Find(Range("選択番号").Value, LookIn:=xlValues) '番号を探す   BangoCell.Offset(0, 2) = Range("選択番号").Offset(0, 2) '点数1   BangoCell.Offset(0, 3) = Range("選択番号").Offset(0, 3) '点数2   BangoCell.Offset(0, 4) = Range("選択番号").Offset(0, 4) '点数3 End Sub

noname#121624
質問者

お礼

まだ最後の動作確認をしていませんがうまくいきそうです。 あんなに悩んでいた事が、すっきりと解決できそうでうれしいです。 本当に有り難うございました。

  • inshi
  • ベストアンサー率0% (0/2)
回答No.1

うまく説明できるかわかりませんが、以下の内容で可能かと思います。 1.番号を呼び出すことについては、行のトップにカーソルを置き、データ/フィルタ/オートフィルタで 番号を抽出する。 2.点数を入力すると・・・については、他の列に自動で値を入れたい時、  IF関数などで示すか、別のシートにHLOOKUP関数を使って対比させる。  など有りますがどうでしょう。

noname#121624
質問者

お礼

早速回答いただきありがとうございました。 短時間で点数の入力をしなければならないため、オートフィルタ以外の方法が望ましいのですが…。

関連するQ&A

  • エクセルで別ファイルのデータを読み込み自動入力させたいのですが

    【顧客リスト】というファイルのsheet1に、A列を氏名、B列を住所、C列を年齢の欄として複数行入力しています。 【見積書】というファイルのセルE20に氏名を入力すると、【顧客リスト】A列から同じ値の行を探し出し、その同行のB列の値を【見積書】のE21に自動的に入力されるようにしたいと思っています。 どなたかご回答の程、よろしくお願いいたします。

  • エクセル 入力フォーム?作成

    列見出し:氏名=150名分 行見出し:商品番号=1~1000 入力伝表:各氏名単位に注文したい商品番号と個数 以上の条件で、従来は氏名ごとに該当商品番号のセルに個数を入力していましたが、非常に時間がかかってしまいます。 そこで、入力フォーム(?)を作成したいと考えております。 イメージとしては まず氏名が自動的に表示されて下の窓に商品番号と個数を入れ ひとまず実行。同じ窓から次の入力・・・一名分の入力が終わったら 確定。で次の氏名が表示される。(以下繰返し) このようなことはエクセルで可能でしょうか? ご存知の方アドバイス、また参考URLをいただけると助かります。 よろしくお願いいたします。

  • エクセルでの 「入力規則」→「リスト」に関する質問

    (1)セルA列に氏名を、B列に氏名に付随する固有の番号を一覧表的に入力しておき、 (2)セルD1に、入力規則→リスト でA列のデータを選べるように設定したときに(A列を「元の値」にするときに) (3)セルD1に選んだA列のデータを表示したとき、その次行のセルD2に、A列の氏名に付随するB列のデータ(Aに付随する固有の番号)を自動的に表示する方法がありますか。

  • ブラウザのアクティブウインドウのフォームデータのファイルからの自動入力

    Web上での必要な情報を全自動で入力してくれるソフトを求めています。その情報はテキストファイルから参照できるとします。ブラウザが表示している入力フォームを自動的に検出し、フォームの項目に応じて自動入力しくれる。店舗名や住所、電話番号、郵便番号などをファイルに書き込んでおくだけで、勝手にブラウザのアクティブウインドウに入力ができるというプログラムを目指しています。 たとえば #1 郵便番号 住所 氏名 #2 郵便番号 住所 氏名 ・・・ と百件ほどあって それをファイルからブラウザのアクティブウインドウのフォームの入力ボックスに自動で入力すると言うものです。 プログラミング言語は問いませんが・・ できればC言語のwin32apiを使ったものがいいです・・(sdk? MFCはよくわかりませんが・・ サンプルをいただけるのであればどの言語であっても勉強しようと思っています。 似ているプログラムをあらわしますと http://www5.ocn.ne.jp/~miisan/aibar/support/ などがあります。 このプログラムと違う点といえば・・ 件数が100件ほどであると言う点と ファイルから入力できないという点と 応用が利くようにカスタマイズできるようにしたいという点です。 どうかよろしくお願いいたします。

  • ワード2007 データフォームによる表入力

    住所録(名前・〒・住所・TEL)等表を作成する場合Word2003では1行4列の表に見出しを入力して 「データベース」 ツールバーの「データフォーム」を使用すれば入力が容易な機能がありますが、Word2007ではこの機能が見あたりません。EXCEL2003でも同様に「データ」「フォーム」で同じような機能がありますが、EXCEL2007では見あたりません。2007にこの様な機能があるのでしょうか? 教えてください。宜しくお願いいたします。

  • エクセルの自動入力を

    今、手元にエクセルで作った一覧表が有ります A列には「入荷日」 B列には「製品番号」 C列には「製品名」 D列には「大きさ(重量)」 E列には「担当者」 が入っていて、全部で約25000行ほどの一覧表です。 入荷日の欄<A列>には =TODAY() の関数式が入っており、自動で入力されます。 (最後のコピー→テキストで貼付けをする) 製品番号,製品名,大きさ,担当者は関連しているため 製品番号を入力すれば他が自動で入る仕組みになっていました。 例えば製品名の所には =VLOOKUP(B25633,B:E,2,FALSE) といった感じで、B25633のセルの製品番号から製品名を自動記入 していました。 しかし最近になり担当者が変わってしまったのですが、この関数では いまだに過去の一番古い担当者を自動入力してしまいます。 上から検索が行われているためだと思うのですが、 一番最近のデータ(画面で言う下)から検索を行い 自動入力をする方法って、他には無いんでしょうかお願いします。

  • EXCEL VBAでデータを更新したらマクロを実行

    Excel2000を使っています。 B列に部屋番号、C列に部屋名を入力する表です。 部屋番号が入力(変更)されたら、マクロを実行して部屋名を自動的に入力したいのですが、どうしたらいいでしょうか? 例えば、部屋番号100と入力したら和室、200と入力したらリビングという具合です。 データは一件につき一行です。 宜しくお願い致します

  • Excel フォームでオートコンプリート VBA

    いつも大変お世話になっております。 使用しているものは、Excel2003になります。 今困っているのが、フォーム上でオートコンプリート機能しないことです。 テキストボックスなどに入力したら候補が下に出て欲しいのです。 入力候補として表示したいのは、列です。 例として作成した図の場合、 番号のテキストボックスには、番号の列を自動入力(入力候補表示) 名前のテキストボックスには、名前の列を自動入力(入力候補表示) をしたいと思っています。 オートコンプリート自体、Excelのワークシート上のみ?の機能だと思いますが、 フォーム上では可能でしょうか? できない場合、他の対応策とか無いでしょうか? 回答よろしくお願い致します。

  • Excelで入力ファームを作る方法

    Excelで入力ファームを作る方法を解説したHPやわかりやすい本があれば教えてください。 したいことは入力フォームからの入力 > 別のシートに列形式で入力したデータを任意のセルに入力する という単純なことから、郵便番号を入力すると自動的にわかる範囲までの住所を入力できるなど入力の支援ができる機能を備えられれば大変助かります。

  • EXCEL データをレコード化するには

    Excelのデータについて教えてください 1枚目のシートに 管理番号:氏名:住所:電話番号の4つのデータがそれぞれ別のセルに入ってるデータが100件あります。 (Aの列:管理番号 Bの列:名前 Cの列:氏名 Dの列:電話番号) これを、2枚目のシートで利用したいのですが、 Aの列の管理番号を入力したら、その列のデータが表示されるように したいです。Wordの差込のような感じです。 =(Sheet1!$B3)これだと、1つのデータしか出ませんよね。 すべてのデータの送り状を作成したいと思っています。 VBAとかでないとできないのでしょうか。 よろしくお願いいたします。

専門家に質問してみよう