• ベストアンサー

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

 EXCEL2000でデータベースを作成する際、重複してデータを入力していないかどうかのチェックを出来るような機能or関数orVBAか何かご存知の方がいたら教えてください!  よろしくお願い致します。

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

  • ベストアンサー
回答No.8

モジュールだけでテストしていたので、うっかりしていました。 Formの「氏名」というTextBox の値を比較値とし、Command1 とい うコマンドボタンでイベントを発生させるなら・・・・ Private Sub Command1_Click() abc 氏名.Text ' abc 氏名.Value かもしれない End Sub 最初にパラメータとして渡してください。 Private Sub abc(tSearchValue As String) 「氏名」「ふりがな」「住所」「電話番号」「各商品の数量」を全部比較するなら このプロセスを入れ子にしてループさせるか、、項目値を & でくっつけてそのくっつた文字列を比較してもいいと思います。 # Dim tSearchValue As String # tSearchValue = (ここで比較対照の値を取得) この2行はいりません。

poston
質問者

お礼

 お礼が遅くなりまして申し訳ありません。 追加の質問にも丁寧にお答え頂きまして有難うございました。とても助かりました。

その他の回答 (7)

回答No.7

Set Result = SearchRange.Find(What:="AAA1k") は Set Result = SearchRange.Find(What:=tSearchValue)でした。

回答No.6

'Formのクリックイベントに次のプロシージャーを貼ってみてはどうでしょうか? 'たぶん、動くのでは、 'サンプルでは、検索対象を A列にしていますが、自由に変更してください。 Private Sub abc() Dim Result As Object Dim SearchRange As Object Dim tMaxRows As Long Dim tSearchValue As String tSearchValue = (ここで比較対照の値を取得) tMaxRows = Cells(1, 1).CurrentRegion.Cells.Count Set SearchRange = Range(Cells(1, 1), Cells(tMaxRows, 1)).Columns(1) Set Result = SearchRange.Find(What:="AAA1k") If Result Is Nothing Then '' ここに書き込みのプロセスを書く。 Else MsgBox "アドレス " & Result.Address & " に登録済みです。" End If End Sub

poston
質問者

補足

すみません教えて頂きたいのですが、 (ここで比較対照の値を取得) の所で フォームのテキストボックスに入力された値(文字列)をA列にあるかどうか検索対象にしたいのですがここの部分はどのような式を書けばよいのか教えてください。 宜しくお願い致します。

回答No.5

入力した後で,ワークシートで並べ替えの機能を使って整列すれば,同じデータは上下に並んで表示されるのですぐ見つかると思いますが, こんなやり方ではダメなんですか? 的外れだったらゴメンナサイ。

poston
質問者

お礼

お礼が遅くなりまして申し訳ありません。 丁寧に回答頂きまして有難うございました。

  • diashun
  • ベストアンサー率38% (94/244)
回答No.4

EXCELの機能でいうなら、メニューバーの「データ」→「フィルタ」。これは調べたいデータ領域を選択した後、フィルターを掛けて同一列内にある指定データだけを表示させるもので、「フィルターオプション」を設定すれば、重複データを一発削除も可能です。 もう1つは「ツール」→「入力規則」の利用。これは、データ入力時に、同じ列内に同一データが、既に入力済みなら新規入力を受け付けないようにすることも出来ます。詳細は、ヘルプで調べてください。関数やVBAの利用は、もう少し詳しい条件をご説明いただいたほうが答えるほうも答えやすいと思います。

poston
質問者

お礼

お礼が遅くなりまして申し訳ありません。 丁寧に回答頂きまして有難うございました。

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

http://www.okweb.ne.jp/kotaeru.php3?q=669422 とそっくりの質問のような気がしますが。 入力する予定のセル範囲を指定して、 データ-入力規則-設定タブ-(入力の種類)ユーザー設定-(数式)=MATCH(A1,$A$1:A1,0)=ROW()でOKをクリック。

poston
質問者

お礼

 お礼が遅くなりまして申し訳ありません。 丁寧に回答頂きまして有難うございました。

  • comv
  • ベストアンサー率52% (322/612)
回答No.2

こんばんは ↓の過去の掲示が参考になるかもしれません 作業列を使いたくなければ #3 作業列を使ってよろしいのであれば #5 入力規則を使うなら #3の条件を逆にした式 >=1 → <=1 を データ 入力規則 設定タブ ユーザー設定 に 入力範囲に設定すればOKです。

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=628682
poston
質問者

お礼

お礼が遅くなりまして申し訳ありません。 参考URLまで丁寧に教えてくださってどうもありがとうございました。

回答No.1

最低限、どの位置にどんなデーターをどんなスタイルで持たせるか書いた方がいいですよ。

poston
質問者

補足

 扱うデータは顧客の予約リストなのですが、入力する内容は顧客の「氏名」「ふりがな」「住所」「電話番号」「各商品の数量」です。入力はVBAのフォームを使用して、ワークシート上にデータ-が入るようにする予定です。

関連するQ&A

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

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

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

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

  • エクセルの「入力規則」を用いての重複チェックについて

    エクセルの「入力規則」を用いての重複チェックについて エクセルの「入力規則」でcountif関数を使い、重複チェックをしながら 入力をおこなっております。 重複の時メッセージがでるのですが、これに加えてどこと同じなのか その行をセレクトした状態など、該当するデータが分かるようにすることは 可能でしょうか? 何か方法がございましたら、ご助力をお願いいたします。

  • エクセルのデータ抽出

    複数の条件(重複も含む)に一致するデータを項目別に抽出したいのですが、関数で可能なのかどうかすら分からない状態です。顧客管理目的で、日付を入力すると項目別に表示させるようにすることはできますでしょうか? 図1をデータベースとして顧客データを入力し、図2を管理用として日付を入力すると各項目が表示される感じです。 ご教授の程、よろしくお願い致します。

  • EXCELでデータ入力

    EXCELでデータ入力する場合、例えば「新宿区XXX」「杉並区XXX」などと「東京都」を省略して1000件くらい行ったとします。入力後に上司から「やっぱり東京都を付けて」と注文があったとしたら、何か利用できる関数などはありますか?(1)置換機能をワイルドカードで行う。(2)SUBSTITUTE関数を使う。(3)REPLACE関数を使う。が、私の思い付く方法ですが、どの方法も使用の詳細が分からないこともあり上手くいきません。良い方法をご存知の方、教えて頂けませんでしょうか。バージョンは2003ですが、他のバージョンでも構いませんので、よろしくお願いします。

  • エクセルのデータが重過ぎて固まってしまいます。

    役4万5000件のデータベース(アクセス)に新たにデータを追加する際にそのデータが重複しているかどうかを調べるエクセルファイルを作りました。 簡単にエクセルファイルの内容を説明すると、 (1)4万5000件のデータ(名前の部分のみ)を貼り付ける。 (2)追加するデータの一覧(20件程度) (3)countifにより、重複しているデータの件数をカウントする。 (4)1以上のものを重複データとして認識する。 (1)のデータ(名前部)をカタカナのみ・空白部を削除・全角にするためにほかのセルに=JIS(phoetic(substitute((substitute("データ"," "))," ")))のようにしています。 問題は、(1)のデータを貼り付けた際にエクセルがとまってしまうことです。 普通に貼り付けるだけであれば、大丈夫なんですが、貼り付けた際にほかのセルで(1)のデータを加工する関数が入ってるためにとまってしまうようです。 どうにかして、固まらないようにしたいのですが、どのような方法が考えられるでしょうか? よろしければご回答お願いします。

  • 【エクセル】データの重複チェック

    次のようなデータが入力されているとします。 A列/B列/C列/D列/E列/F列 1行:都道府県/市区町村/data1/check1/data2/check2 2行:東京/新宿/1/""/1/"" 3行:東京/新宿/2/""/2/"重複" 4行:東京/新宿/3/""/3/"" 5行:東京/渋谷/1/重複/4/"" 6行:東京/渋谷/2/""/5/"" 7行:東京/渋谷/3/""/6/"" 8行:東京/渋谷/4/""/2/"重複" 9行:東京/渋谷/1/重複/7/"" ここで、check1は、 「都道府県」のグループでdata1に重複があれば、「重複」表示をさせます。 また、check2は、 「市区町村」のグループでdata2に重複があれば、「重複」表示をさせます。 例えば、 セルD2=IF(COUNTIF($C$2:$C$4,$C$2:$C$4)>1,"重複","") セルF2=IF(COUNTIF($E$2:$E$9,$E$2:$E$9)>1,"重複","") というように関数を入力して、2行目以下にコピペすればいいのですが、 実際は1万行以上のデータがあり、「都道府県」「市区町村」も多くのグループがあるため いちいち範囲を指定するのも大変です。 そこで、上記関数のように手動で範囲を指定しなくても、 自動で範囲指定をして重複チェックができる良い方法があれば教えてください。 できれば関数がいいのですが、VBAでも構いません。 ご教授のほど、よろしくお願いします。

  • EXCELの入力規則でのOFFSET関数使用

    EXCEL2010の”データの入力規則”機能で”リスト”を設定し、同じブックで他のシートをOFFSET関数で参照しました。 そのシートを配布先でEXCEL2007で開けたところ、この設定が消えており、リストも出ない状態でした。 解決方法ご存知のかた、助けてくださるとありがたいです。

  • excelで入力値の有無自動検索方法を教えて

    次のような事が可能かどうかわかりませんが、何かよい方法がありましたら教えて下さい。 30列ぐらいあるデータを1行または複数行をコピーし、保存用に作ったExcelファイルのシート1に貼り付け、保存していきたいのですが、この際、データに重複がないか、自動でチェックしたいのです。 現在、シート2のA2に=COUNTA(シート1!A:A)と入力しておき、 データをシート1に貼り付けた後、重複しないキー(セルAに入る数値)を コピーしシート2のA1に貼り付けて、セルA2の値をチェックしている状態です。 この方法だと、1件ずつしかチェックできません。 しかも、何度もシートを移動し、コピー&貼り付けを行わなくてはならないので面倒なのです。 簡単のチェックできる方法はないでしょうか? アドバイスをよろしくお願い致します。

  • Excelで隣り合う列にあるデータの重複チェック

    Excelで同一のシート上の隣り合う列に入力されたデータの重複チェックをする方法が知りたいです。 例:A1とB1にそれぞれデータ(長文もあり)が入っていて、それぞれのデータが重複していればC1に「重複あり」などと表示させるための数式が知りたいです。 いろいろとやってみたのですが、どうもうまく行きません。 よろしくお願い致します。

専門家に質問してみよう