- ベストアンサー
Excelで、リストから選択したら自動的にリンク
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub Worksheet_Change(ByVal Target As Range) Dim hlc As Range If Target <> Range("A1") Then Exit Sub For Each hlc In Range("A5:A15") If hlc.Hyperlinks.Count = 1 And hlc = Range("A1") Then With hlc ActiveSheet.Hyperlinks.Add Target, hlc.Hyperlinks.Item(1).Address End With End If Next End Sub
その他の回答 (5)
- DOUGLAS_
- ベストアンサー率74% (397/534)
[回答番号:No.4] の DOUGLAS_ です。 >選択した途端にリンク先に飛ぶのでは困ります。 とのことでしたら、#2さんのコードの方がよいですね。 >チェンジイベントとかよくわかりません。 私のコードも、#2さんのコードも「チェインジイベント」といって、ワークシート上で何らかの変化が生じたときに自動的に動くマクロのことです。 とは、言っても、 If Target <> Range("A1") Then Exit Sub とか If Target.Address = "$A$1" Then というような記述で、セルA1 以外での変動は除外するようにしてあります。 >マクロというのが実はよくわかりません さて、上記の「チェインジイベント」を使用するには下記の段取りで行ないます。 1)シート タブ(ラベル)を右クリック [コードの表示(V)] をクリックして現われる コードウィンドウ に#2さんのコードをコピペ。 2)[Alt] + [F4] で コードウィンドウ を閉じる。 3)A1 のドロップダウンから URL を選び、それをクリックすると ブラウザ が起動して、リンク先に飛びます。 このマクロが不要なときは、(1)と同様にして コードウィンドウ を開き、(1)でコピペしたコードを削除し、(2)のように コードウィンドウ を閉じます。
補足
皆さんに教えて頂いて、それでも上手くいかない要因が見つかりました。 入力規則の元となるセルにURLをそのまま(グーだったらhttp://www.goo.ne.jp) と入れていれば、ドロップダウンでグーのURLを選択すれば、 選択したあとにクリックすれば飛ぶのですが、 元となるセルに、URLそのままではなく、「グー」と表記されていると、 その後選択してもリンク先に飛ばなくなってしまいます (ハイパーリンクの挿入で、表示文字列が「グー」で、 アドレスにhttp://www.goo.ne.jpと入っている状態) これを上手くやる方法はないのでしょうか・・・
- DOUGLAS_
- ベストアンサー率74% (397/534)
HTML でしたら Javascript で可能ですが、エクセルのワークシートから直接ご要望のことをしようとすれば、#2さん同様、ワークシートの チェインジイベント になります。 1)シート タブ(ラベル)を右クリック [コードの表示(V)] をクリックして現われる コードウィンドウ に下記をコピペ。 '--------------------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then ActiveWorkbook.FollowHyperlink Target.Value End Sub '--------------------------------------------------------------- 2)[Alt] + [F4] で コードウィンドウ を閉じる。 3)A1 のドロップダウンから URL を選んだ途端に ブラウザ が起動して、リンク先に飛びます。 もし、A1 の ドロップダウン リスト には、ホームページの名前が入っていて、アドレスが別のセルに羅列されているというような場合でしたら、例えば、リストの [元の値(S)] が「=B1:B3」で、「C1:C3」に対応するURLが入っているというようなことでしたら、 '--------------------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then ActiveWorkbook.FollowHyperlink _ Application.WorksheetFunction.VLookup(Target.Value, Range("B1:C3"), 2, 0) End If End Sub '--------------------------------------------------------------- というようなことになります。
補足
せっかく書いていただいたのですが、 チェンジイベントとかよくわかりません。 また、選択した途端にリンク先に飛ぶのでは困ります。 難しそうですが、やってみます・・・。
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。 >指示頂いたとおりにやってみましたがエラーになってしまいました。 ⇒回答しました式をそのまま使用できません。 「入力規則セル」の記載部分は、入力規則が機能しているセル(例えば、A1など)を代入して下さい。
補足
それくらいはわかります・・・。 そのとおりにしましたが、それでもうまくいきませんでした。 どこか入力を間違えたのかもしれませんが。
- xls88
- ベストアンサー率56% (669/1189)
入力規則のセルがA1として、別セルに =HYPERLINK(A1,"お気に入り") とすれば(Excel2007)OKでした。 A1セルで、ハイパーリンクするならマクロになります。 シートラベルを右クリック>コードの表示で、VBEのコードウインドウに下記コードを貼り付け Private Sub Worksheet_Change(ByVal Target As Range) If Target <> Range("A1") Then Exit Sub Target.Hyperlinks.Add Target, Target.Value End Sub
お礼
ありがとうございます。 使っているのは2002なので、できなさそうですね。 マクロというのが実はよくわかりませんが、やってみます。
- mu2011
- ベストアンサー率38% (1910/4994)
入力規則のセルにはできませんが、別セルにリンク先を関連付ける事は可能ですが如何でしょうか。 一例です。 (1)リストを定義、A1:A5として、B1:B5にHPのURLを定義、入力規則で「リスト」「=$A$1:$A$5」を登録 (2)入力規則の左隣のセルに=IF(入力規則セル<>"",HYPERLINK(VLOOKUP(入力規則セル,$A$1:$B$5,2,FALSE),"リンク先"),"")
お礼
ご丁寧にありがとうございます。 ご指示頂いたとおりにやってみましたがエラーになってしまいました。 やはり入力規則セルには設定できないのですね。 できれば便利かなと思ったのですが、地道に 自分で他のやり方でやるしかないみたいです。 ありがとうございました。
関連するQ&A
- エクセル「入力規則」「リスト」のプルダウンメニューのフォントサイズ
エクセルの、「入力規則」で「リスト」を選択した時に出るプルダウンメニューのフォントサイズを変更することは出来るのでしょうか? よろしくお願いいたします
- ベストアンサー
- オフィス系ソフト
- Excelでリストから選択して入力する方法
こんにちは、お世話になります。 Excel2002のユーザです。 例として、商品の列に入力する果物(約20種類位)を プルダウンリストから選択して入力する方法を教えてください。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelでシートの違うリストからプルダウンで選択して、、
Excelの入力規則を使って、セルの入力をプルダウンを使って、入力していました。そのとき、セルの入力値を他のシートに作って、選択していました。 今回の質問は、他のシート選択する値を増やしたいので、範囲を広げたいのですが、どうもやり方がわかりません。 入力規則を使って、他のシートのリストから選択するやり方は解っています。他のシートの値のあるセルの範囲を広げたいのですが、、 やり方を忘れてしまって、ややこしかったと、思いますが、詳しく教えていただける方、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのVBAでリストに値をセット
Office2003 エクセルのVBAのプログラムで入力規則のリストを 生成できるような関数、方法はありませんか? このセルで選択された値に紐づいたデータ郡を次の(横の)セルで プルダウンリスト(入力規則のリスト)を自動生成するというものです。 今回フォームの機能(コンボボックスなど)は使用しません。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Access▼を押したらリストが出て選択
Accessフォームにおいて、なんていうのかわかりませんが(「リスト表示」?「プルダウンメニュー」?)▼を押したらリストが出てクリックで選択して入力する項目を作りたいのですが。
- ベストアンサー
- オフィス系ソフト
- エクセルでリストから選択と直接入力を行いたい・・・
お世話になります エクセルで、セルへの入力をリストから選択する方法と直接入力する方法の両方で入力したいのですが、方法がわかりません。 ちなみに現状は入力規則でリスト~ドロップダウンから選択としております。 よろしくお願いします
- ベストアンサー
- オフィス系ソフト
- エクセルの▼で選択できるリストについて
エクセルで質問です データ→入力規則→設定タブ→「リスト」選択→元の値を入力 で▼マークのダウンロール?ができるかと思うのですが、このリストが非常に多くて探すのが大変なので頭文字をキーボードで打ち込めば該当する項目だけ表示されるようにできないでしょうか?
- 締切済み
- その他MS Office製品
- [Excel VB]プルダウンで文字選択、自動的に色を変える
WindowsXP、Excel2003を使っています。 質問内容なのですが、 まず今作成されているエクセルのB列に データ>入力規則>設定タブ 入力値の種類を「リスト」 >元の値 に手打ちで項目が入っています。 (例えば 国語,数学,社会,理科・・) プルダウンで項目を選択した時に 自動的に設定した色にセルが塗りつぶされるようにしたいです。 プルダウンで選択ではなく、手打ちで「国語」「数学」などと打つと、 あらかじめ設定した色に変わることはできます。 ご教授よろしくお願いいたします。
- 締切済み
- Visual Basic
- excelの入力規則リストで重複不可にするには
エクセルの入力規則でリストを利用して【プルダウンメニュー】を作成しています。 リストのデータを重複して選択できないようにするにはど のようにすればいいでしょうか? 例をあげるとしして 仮にA、b、Cの3つのセルに入力規則のリストを設定していずれも元の値が 『リンゴ』『みかん』『バナナ』とした場合。 Aのセルでリンゴを選択した時BやCのセルでリンゴを選択できないようにするに します。 VBAは全く分からないのでできれば関数で やる方法をご教授頂ければと思います。 宜しくお願いします
- 締切済み
- オフィス系ソフト
- エクセルのプルダウンメニューの字の大きさを大きくしたいのですが
データの入力規則をリストからの 選択式にすることが出来たのですが (プルダウンメニューから選ぶやつ) 選択リスト内に字ががたくさんあるため もうちょっと大きな字でプルダウンメニュー を見たいのですが、何かやり方ってあるのでしょうか? お詳しい方、教えていただければ幸いに存じます。
- ベストアンサー
- その他MS Office製品
お礼
ありがとうございます!! やってみたらできました!! まさにこの答えを待ってました・・・。 本当にありがとうございました。