【Excel】名前入力→自動e-mailアドリンク

このQ&Aのポイント
  • Excel2007を使用して、sheet2のA列に順不同で人名を入力する際に、sheet1の名前とe-mailアドレスの一覧を参照し、名前にe-mailのリンクを自動で貼る方法を教えてください。
  • 例えば、A1セルに佐藤三郎と入力すると、佐藤三郎さんの名前が青くなり下線が入り、e-mailアドレスのリンクが貼られます。また、青くなった佐藤三郎さんの名前をクリックすると、メールソフトが立ち上がり、アドレスにはs.satou@xxxxx.jpが入力されます。
  • Excelの「名前を定義」を使用して、sheet2のA列に入力された名前を参照し、sheet1の人名と照合します。一致する名前があれば、そのセルをハイパーリンクとして設定し、対応するe-mailアドレスを取得します。この方法を使えば、名前にe-mailのリンクを自動で貼ることができます。
回答を見る
  • ベストアンサー

【Excel】名前入力→自動e-mailアドリンク

使用ソフトはExcel2007です。 sheet1にはA列に人名、B列にその人名に対応するe-mailアドレスの一覧が記入してあります。 例 A1 田中 太朗 B1 t.tanaka@xxxxxx.jp A2 鈴木 次郎 B2 j.suzuki@xxxxx.jp A3 佐藤 三郎 B3 s.satou@xxxxx.jp 今、sheet2のA列に順不同で人名を入力していったとき、sheet1の名前とe-mailアドレスの一覧を参照して、名前にemailのリンクを自動で貼るように設定したいのです。 例えば A1セルに佐藤 三郎と入力すると、そのセルの佐藤三郎さんの文字が青くなって下線が入り、e-mailアドレスのリンクが貼られます。 青くなった佐藤三郎さんの名前をクリックすると、メールソフトが立ち上がって、アドレスにはs.satou@xxxxx.jpが入力されている状態になります。 このような操作は可能なのでしょうか。 可能だとしたら、どのようにすればよいのでしょうか。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

>A1セルに佐藤 三郎と入力すると、そのセルの佐藤三郎さんの文字が青くなって下線が入り、e-mailアドレスのリンクが貼られます。 A1のセルに入力して、そのセルにハイパーリンクが貼られるように使用と思ったら、VBAになります。 そのSheet2のシートモジュールに以下の様に入れます。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Target.Hyperlinks.Add Target, WorksheetFunction.VLookup(Target.Value, Worksheets("Sheet1").Range("A1:B10"), 2, False) ’A1:B10の範囲は適宜変更必要 End Sub A1のセルに入力して、隣のB1にでもハイパーリンクで表示するなら、HYPERLINK関数で出来ます。 =HYPERLINK(VLOOKUP(A1,Sheet1!A1:B3,2,FALSE),A1)

関連するQ&A

  • 同じ文字列がある場合、その行のB列を自動入力させい

    シート1 A列=メールアドレス シート2 A列=メールアドレス B列=名前 を入力しています。 シート1A列にあるメールアドレスがシート2A列にもあった場合、 シート2の同じメールアドレスの行のB列にある名前をシート1のB列に自動で入力させたいのですが そんなことはできないでしょうか? 結果としては シート1のB列にメールアドレスに紐づいた名前を入れたいです。 今、シート1にあるメールアドレスをシート2で検索してあった場合は シート2のB列をコピーしてシート1のB列にペーストしていますが、 件数が5000件くらいあるので気が遠くなりそうです。 よろしくお願いいたします。

  • 【EXCEL関数】違うシートに抽出結果を出したい

    一覧表から「○」の条件が付いたデータのみを別シートに関数で抽出したいです。 フィルタではなく関数を使用したいのは、抽出したデータから名前の定義を使用して リスト表示をさせたいためです。ご教示のほど、宜しくお願いします。 シート1は一覧表となっており、A列に「○」のついたデータのみをシート2に表示 シート1(一覧表)   A  B 1  ○  山田太郎 2  ×  佐藤次郎 3  ○  高橋三郎 4  ×  鈴木四郎 5  ×  中村五郎 シート2(抽出結果を表示させる)   A  B 1  ○  山田太郎 2  ○  高橋三郎 3  4  5 フィルタオプション、当方の考え得る限りの配列関数等、色々試しましたが、 不勉強のために上手く結果が表示されませんでした。 ご教示のほど、宜しくお願い致します。

  • 異なるシートに自動的に書き込みするには

    エクセルで、シート1・シート2があります。 シート1 B列 名前 C列 アドレス D列 年齢 E列 住所 とありまして、100人程作ってあります。 それを、 シート2に自動的に書き込まれるようにしたいです。 シート2には、 A列 名前 D列 アドレス G列 年齢 I列 住所 にしないとなりません。 (例) シート1のB1 に「名前」と入力すると  シート2のA1 に「名前」と自動入力 という形です。 宜しくお願いします。

  • エクセル:複数シートのデータを一覧シートに自動的に入力させるには?

    エクセル:複数シートのデータを一覧シートに自動的に入力させるには? こんにちは。 お恥ずかしながら一日に2回もエクセルの質問をさせて頂きます。 複数シートに同一形式のリストがあり、あるシートに入力していくと 同一ファイル内の「一覧シート」に自動的にID番号順に表記される(※下記参照) というようにしたいと考えております。 何かよい方法はありますでしょうか? お知恵を拝借できれば幸いです。宜しくお願い致します。 Sheet1 ID 日付     名前  達成度・・・ 1 2010/10/17  山田  A 4 2010/10/30 鈴木  A ・ ・ ・ Sheet2 ID 日付    名前  達成度・・・ 2 2010/10/17  佐藤  B 3 2010/10/20 中村  B ・ ・ ・ 一覧シート ID 日付    名前  達成度・・・ 1 2010/10/17  山田  A 2 2010/10/18  佐藤  B 3 2010/10/20 中村  B 4 2010/10/30 鈴木  A ・ ・

  • Excel2007 複数条件での検索

    Excel2007で複数条件のデータの抽出について教えて下さい。 現在、シートAにデータが入力され、シートBにデータの抽出を行いたいと思います。 シートAの内容は以下の通りです(アルファベットと数字はセルの場所です): 1行目: 項目欄 2行目以下: データ詳細 1行目 A1 「日付」 B1「名前」 C1「出社状況」 2行目以下 A2 12/01  B2 山田  C2 出社 A3 12/01  B3 佐藤  C3 早退 A4 12/01  B4 木村  C4 出社 A5 12/02  B5 木村  C5 早退 A6 12/02  B6 山田  C6 遅刻 A7 12/02  B7 佐藤  C7 遅刻 ・・・・・ A列の日付は昇順ですが、B列の人名はランダムに入力されています。 また、日付によっては途中入退社する人もいるので、12/01に名前がなくても、 12/10から名前が入力されている場合(あるいはその逆)もありえます。 シートBは以下の通りです: 1行目 名前 A列:日付 B1 木村 C1 山田 D1 佐藤 ・・・ A2 12/01 A3 12/02 このシートBの B2に シートAから 「木村の12/01の出社状況」(つまりC4)に値するデータを 自動的に抽出するような関数を入力したいのですが、どのようにすればよいのでしょうか? (このB2セルの式をB2:D3に入力していきたいので、絶対値を指定することになると思いますが・・・) IndexやらMatchやらLookupやらを色々試してみたのですが、どうも上手くいきません。 どなたかアドバイスをお願いいたします。

  • エクセルで、次のような自動入力をしたい

      A    B    C    D   E  ・・ AA 1 田中 鈴木 佐藤          山田 2 鈴木 山田              海岡 3 田中 佐藤              佐藤 というような表があり、AAの列に名前を入力したとき、 D1に「山田」、C2「海岡」と、その行に関してAA列に新規の名前が入力されたときにD1,C2に自動入力することは、VBAで簡単にできますか? 3列目には「佐藤」さんがすでいるので入力不要です。 よろしくお願いします。(マクロ初心者です)

  • セルに入力があったら別のシートに自動で入力させたい

    似たような質問もあり自分でもいろいろ調べたのですが、 解決できなかったのでお願いします。 エクセルは2011で少し使える程度、あまり詳しくはありません。 シート1に「名前」「一回目」「二回目」という列があります。 そこの「一回目」の列に入力があった場合のみ別のシート2に自動で入力(抽出)されるようにしたいです。 例としてはこんなかんじです。↓ シート1 名前  一回目  二回目 佐藤  1         山田       1    鈴木       1 田中  2           とあったら、「一回目」に入力があった行からシート2に シート2 名前  点数 佐藤  50 田中  100 こんなかんじでシート2には「名前」と「一回目」に入力された数値に50掛けたものが自動で表示されるようにしたいのですが、 このようなことは可能でしょうか? 説明がわかりにくいかも知れませんがよろしくお願いします。

  • セル内に入力されているEメールアドレスを@で分ける

    A列にEメールアドレスが入力されています、ドメイン別の集計を取りたいので例えば@の前のEメールネーム部分をA列に残し@以降のドメイン部分はB列に移動させてたいのですが可能でしょうか? どのような方法でもよいのでドメイン別のトップ10が簡単にだせるような方法があればご教授願います。 よろしくお願いいたします!

  • EXCEL関数について質問です

    EXCELで同窓会旅行用の名簿を作っているのですが、下記のような動きをするEXCEL関数って作ることができますか? 具体的な方法を教えていただけると嬉しいのですが。。。 ・シート Sheet1に名簿一覧がある(例:A列は名前一覧、B列は部屋番号の空欄) Sheet2に部屋番号一覧がある(例:A列は部屋番号一覧、B,C,D列は名前の空欄) ・動き Sheet2のB,C,D列の名前の空欄に名前を入れていくと、 Sheet1の名簿の名前に対応した部屋番号がB列に自動で挿入される 万が一、Sheet2のB,C列(名前欄)で名前が重複してあった際には Sheet1の名簿に対応したB列に「エラー」と表示される ※Sheet1の名簿の名前(A列)は既に記入済みです。 ※Sheet2に部屋番号(A列)は既に記入済みです。 以上、お手数ですがよろしくお願いいたします。

  • 複数のシートから一覧表を作成する方法

    次のことを実現させる方法を教えてください。 シート 「あ」「い」「う」があります。 ※例としてはシートを3つあげましたが、 このシートはどんどん数が増えていきます。 シート「あ」   A   B 1 鈴木 1976/1/1 シート「い」   A   B 1 佐藤 1977/1/1 シート「う」   A   B 1 山田 1978/1/1 そこから一覧表を作成したいのです。 その一覧表のシート名を「一覧表」とします。 シート「一覧表」(実現したいシート内容)   A    B   C 1 シート名 名前 生年月日 2 A     鈴木 1976/1/1 3 B     佐藤 1977/1/1 4 C     山田 1978/1/1 参照元のシートが固定されているなら   A    B   C 1 シート名 名前 生年月日 2 あ    あ!A1 あ!B1 3 い    い!A1 い!B1 4 う    う!A1 う!B1 と直接参照先を書けばいいのですが、 この方法では、シートが増えるたびに B列、C列にえ!A1 え!B1というように参照先を その都度書いていかなければいけません。 だから、一覧表で、シート名(A列)を入力ただけで、 自動的にそのシートに記載されている 名前と生年月日が反映されるようにしたいのです。 例えば今A3には「い」と記載されていますが、 これを「あ」と変更すると 以下のようにしたいのです。 B3のセルの中身は い!A1 → あ!A1 C3のセルの中身は い!B1 → あ!B1 一覧表のセルB列、C列にどのように記入すれば自動化できるでしょうか?

専門家に質問してみよう