[[20170801162325]] 『セルをクリックすると同じ文字のシートへ飛びたい』(ウッディ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルをクリックすると同じ文字のシートへ飛びたい』(ウッディ)

こんにちわ。

J2〜J200に文字が入っています。
同じ文字のシートが同じブック内に199シート存在します。

たとえばJ2には「1234」と入っています。
ここをクリックすると「1234」という名前のシートへ飛ぶようにしたいです。

1つ1つハイパーリンクを貼るのは気の遠くなる作業なので
なるべく一括で出来るようにしたいです。
ハイパーリンク関数?を見てみたのですが分かりませんでした・・。

シート名から目次を作るやり方でなく、既にある表内の文字を使いたいです。

よろしくお願いします。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 >既にある表内の文字を使いたいです

 だったらハイパーリンク関数がいいと思いますよ。

 どのあたりがわからないのですか?シートの指定の仕方?
(コナミ) 2017/08/01(火) 16:31

コナミさん ありがとうございます。

HYPERLINK(リンク先, [別名])

リンク先にシート名を入れます。ここに自動でセルの文字と同じものを入れる方法がわかりません。

[別名]は違う名前にしたいときに使うのですよね?
それはいらないのです。

これで、私の分からない場所が伝わっていますか・・・?

(ウッディ) 2017/08/01(火) 16:45


 こちらを参考にしてください。
http://excel.staticweb.net/excel-20140927-1874.html

 別名の部分は希望がなければ省略して構いません。

(コナミ) 2017/08/01(火) 16:51


ハイパーリンクをマクロで作成する案と、クリックしたらハイパーリンクを使わずにジャンプさせる案があります。
以下は後者で、右クリックするとシートに飛ぶマクロ案です。シート名を変えても、ハイパーリンクを作り直す必要がない簡単さがありますが、いかがでしょうか。

 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range("J2:J200")) Is Nothing Then Exit Sub
    If Target.Count <> 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub

    Application.Goto Sheets(Target.Value).Range("A1")
    Cancel = True
 End Sub
(???) 2017/08/01(火) 16:57

コナミさん

ありがとうございます。
教えていただいたリンク先を拝見しました。

一番下の「最後に応用例」かと思い、書かれていた式をコピーして貼り付けましたが
=IF(A1=””,””,HYPERLINK(“#”&A1&”!A1″,”遷移する”))
そもそも式が違うといわれてしまいました。

また、貼りつけたらもともと入っていた文字が消えてしまいます・・・。
(ウッディ) 2017/08/01(火) 17:18


(???)さん

ありがとうございます!
マクロについてよくわかっていないのですが「標準モジュール」に貼りつけたところ
Private Sub が変、と言われました。
貼りつける箇所が違うのでしょうか?
(ウッディ) 2017/08/01(火) 17:19


横から失礼します。

???さんのコードはシートモジュールひに記述します。

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html
(カリーニン) 2017/08/01(火) 17:35


 >たとえばJ2には「1234」と入っています。 
 >ここをクリックすると「1234」という名前のシートへ飛ぶようにしたいです。

 1) リストのあるシートのシート見出しを右クリック - [コードの表示]
 2) 出てきた画面の右側空白に下記コードを貼り付けて Alt + Q
 3) J2:J200内のセルを選択すると、該当シートがあればそちらに移動

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Intersect(Target, [j2:j200]) Is Nothing Then Exit Sub
     If (Target.Count > 1) + (Target(1).Value = "") Then Exit Sub
     If Not Evaluate("isref('" & Target.Value & "'!a1)") Then Exit Sub
     Application.Goto Sheets(CStr(Target.Value)).[a1]
 End Sub
( seiya) 2017/08/01(火) 17:52

コナミさん・???さん・カリーニンさん、seiyaさん
みなさんありがとうございました!

無事思い通りの事ができました!
本当にありがとうございました。

(ウッディ) 2017/08/01(火) 17:57


 えっと、応用ができないということですかね。

 その式はどこのセルに入れたんですか?
 そして、シート名はどのセルにはいっているんでしょう?

 >貼りつけたらもともと入っていた文字が消えてしまいます・・・。 

 そりゃ、データの入っているセルに貼り付けたらそうなりますよね。

 と書いていたら解決したみたいなんで、もういいか。
(コナミ) 2017/08/01(火) 18:01

コナミさん

はい、おかげさまで解決しました!
ありがとうございました。

今文字が入っているセルをクリックしたら別シートへ飛ぶ、がやりたかったので
式を上書きしてしまうと今入っている文字が消えてしまい・・・・???となってしまいました。

教えていただいたHPは今後も勉強させていただきたいのでブックマークしました。
ありがとうございました!
(ウッディ) 2017/08/01(火) 18:18


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.