- ベストアンサー
エクセルで顧客管理表を作っているのですが・・
エクセルで顧客管理表を作っているのですが途中で行き詰まってます。 ユーザー一覧から選択しユーザー履歴を表示しようと考えてます。 その為に考えている事があるのですがうまくいきません。 それはユーザー名を選択(クリック)すると指定されたセルに選択したユーザー名が自動表示されるようにしたいのですが出来ません。 そんな設定にする事は出来るでしょうか? 分かりにくい質問内容ですいません。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>その為に考えている事があるのですがうまくいきません。 >それはユーザー名を選択(クリック)・・・・・・にしたいのですが出来ません。 っとあるのですが、ご自身で何か試みて "うまくいかなく" それで "出来ない" 所があるのなら、何をやって(やろうとして)どこがうまくいかないのかを書いたほうが、より的確なアドバイスがもらいやすいと思いますよ。 そうすることによって、ご自身のスキルがどの程度か推測した上でのアドバイスが得られるかもしれません。 エクセルに精通しているのなら(だったら質問しないだろうけど・・・)見落としている点などをピンポイントでアドバイスするだけで良いかもしれないし、初心者に難しく感じる用語で説明してもチンプンカンプンだろうし・・・・・ ユーザー名を選択(クリック)っといっても、ワークシート上のセルなのかプルダウンメニューなのか、ユーザーフォームを使うのかなど、方法はいくつかあると思います。 取り合えず、こんなのを考えてみました。 前提。 A10セル~A20セルに会社名 C20セル~C30セルにも同じ会社名(順番は変っても良いがが同じ表現であること) A列内・C列内でそれぞれ重複していないこと D20~H30セルに、各会社名の情報 たとえば A10セルが、AAA(株) なら C20セルも AAA(株) D20にはその住所、E20には電話番号・・・・と言う風にH20までデータを入力する。 他のところはかまわないが、C20~C30には空白は無いこと。 そして下記の部分をコピーして、ワークシート下部のシートタブ(sheet1 とか sheet2 と表示してある所)にマウスポインターを当てて右クリックして、コードの表示 を選んでください。 VBAの編集用のページが開くので、そこに貼り付けてください。 -----ここ↓からコピー----- Private Sub Worksheet_SelectionChange(ByVal Target As Range) kokyaku = ActiveCell If Target.Row > 9 And Target.Row <= 20 And Target.Column = 1 Then Range("c20").Select Do Until ActiveCell = "" If ActiveCell = kokyaku Then Range(Selection, ActiveCell.Offset(0, 6)).Select Selection.Copy Range("c1").Select ActiveSheet.Paste Application.CutCopyMode = False Range("A1").Select Exit Sub Else ActiveCell.Offset(1, 0).Range("A1").Select End If Loop End If End Sub -----ここ↑までコピー----- これでワークシートのA列の会社名をクリック(矢印キーでカーソルをあわせてもOK)すると、C1~H1セルに情報が張り付きます。 これは一つの考え方ですので、内容が分かる方ならそのまま応用してかまいません ので使ってください。 もし貼り付けた文面が"謎の呪文"のように思える方なら、マクロ・VBA について少し学んでみたほうが良いかもしれません。 本屋さんで市販の解説本を購入しても良いし、"エクセル マクロ VBA"等をキーワードにしてWEB検索すれば、関連するサイトがや情報が得られると思います。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
>ユーザー名を選択(クリック) >指定されたセルに エクセルの入力規則で出来る機能に近いが、入力規則の場合ドロップダウンリストを設定したセルに選択したユーザー名が出ます。 普通これで差し障り無いのですが。 問題はユーザー名が多いとドロップダウンでアイテム表示や探すのが 大変なことです。 多段かする方法もあります(県を指定して、所在ユーザーだけ絞って出すとか。このあたりは過去質問もあります。 選択した後の処理等が質問では不明で、あり、的外れかもしれないが。 ーー エクセルで顧客管理表といった仕事がらみの課題(上司へのレポートなどを除く)を処理するにはVBA(プログラム)の知識・使用が必須というのが私の持論です。 出来なければ、ワープロ的に記録するだけの、ろくなものは出来ないような気がする。 ーー したいことの前後が質問では判らないが、 質問に書いてあるだけ、そのとおりのことを、下記のコードで出来ると思います。 例データ A列 会社名 関東油化 栃木興産 東京科学 湘南ケミカル ・・・ シートタブで右クリック コードの表示をクリック VBE画面になる 下記を張り付け Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 Then Range("C1") = Target End If End Sub ーー A列A2以下をクリックすると、C1セルに選択した会社名がセットされる。 ー C列の下方向へ会社名を累積したい場合は Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 Then Range("c1000").End(xlUp).Offset(1, 0) = Target End If End Sub
お礼
ご回答ありがとうございました。 PCが詳しくない人でも使いやすいものにしたいのでもうちょっと頑張ってみたいと思います。
- koko88okok
- ベストアンサー率58% (3839/6543)
> ユーザー一覧から選択しユーザー履歴を表示しようと考えてます。 ユーザー名またはユーザーコードを入力すると、別のSheetの表にあるデータを一定の様式で表示することはできます。(VLOOKUP関数) ユーザーごとのデータを表示~印刷する目的で作成されるものです。 > それはユーザー名を選択(クリック)すると指定されたセルに選択したユーザー名が自動表示されるようにしたいのですが出来ません。 ハイパーリンクを設定して別の部分に移動することはできますが、Excelの通常の機能では不可と思います。 プルダウンリストから選んで表示する方法なら、下記URLのページをご覧ください。 「ワークシート上でリスト入力」 http://officetanaka.net/excel/function/tips/list.htm#list01 「Excel(エクセル)入門編:第10回 個人票の作成」 http://www.eurus.dti.ne.jp/~yoneyama/Excel/nyumon/seiseki/sei-n10.htm
お礼
ご回答ありがとうございます。 試してみましたが、うまくいきませんでした。 もうちょっと頑張ってみます。
- meitoku
- ベストアンサー率22% (2258/10048)
「ユーザー一覧から選択」探すのが大変ではないですか? 顧客NOがあれば番号を打ち込み隣のセルにリストから正式名称を表示させた方が楽ではないですか?
お礼
ご回答ありがとうございました。 ユーザー数が多いうえに年配の方も使いやすくする為にもうちょっと頑張ってみます。
お礼
ご回答ありがとうございました。 色々やってみたのですが、操作が難しいと出来ない人が出てくるので頑張っていましたがマクロを使うといい事がわかりました。 解説本はあり参考にしていたのですが、あまりあてはまらなくて。 kuma56さんのアドバイスを参考にマクロの自動入力で自分なりにやってみたらすべてうまくいきました。