dポイントプレゼントキャンペーン実施中!

仕事でエクセルを使用し社用車の管理表を作成しているのですが、
ハイパーリンクについて解決できないことがあります。

[現状]
①エクセルで同一ファイル内にシートを複数作りました
②「車両一覧」というシートに社用車の゛ナンバー”など、リストを作りました
③゛ナンバー”ごとにシートをつくり(例えば「12-34」「45-67」など)車両の詳細を記入、「車両一覧」の゛ナンバー”をクリックすると、そうした各々の詳細ページに飛ぶようにしました

[出来ないこと]
現状、「車両一覧」に打ち込んだ!゛ナンバー”から、各ページへのリンクへ飛ばすことは問題無いのですが、「車両一覧」には今後も゛同じナンバー”を、社内の複数の人間が打ち込むことになります。で、そうした時に、毎回ハイパーリンクを作成するのは手間、また全社員がPCに長けている訳ではないので、例えば今後、既に「車両一覧」にある゛12-34”を再度「車両一覧」のどこかのセルに打ち込んだ場合に、自動的にシート「12-34」へリンクさせるということは、エクセルで設定可能なのでしょうか。

よろしくお願いします。

A 回答 (3件)

No.1です。



「車両一覧」SheetのD列にすでに車両ナンバーが4桁数値で入力済みなのですね?
それではD列セルをダブルクリックするとそのSheetをアクティブにする!という方法ではどうでしょうか?

前回同様、シートモジュールですので、前回のコードをすべて消去し、↓のコードに変更してみてください。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から//
Dim k As Long, myFlg As Boolean
If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
Cancel = True
For k = 1 To Worksheets.Count
If Worksheets(k).Name = Format(Target, "0000") Then
myFlg = True
Exit For
End If
Next k
If myFlg = True Then
Worksheets(k).Activate
Else
MsgBox "該当シートなし"
End If
End Sub 'この行まで//

※ おそらくD列に羅列してあるナンバー分のシートは存在すると思いますので、
「該当シートなし」の部分は不要だと思いますが、あえて記載しています。

これでD列セルをダブルクリックしてみてください。m(_ _)m
    • good
    • 0
この回答へのお礼

実行してみました。
結果...完璧に、作りたいファイルが出来ました!!
本当にありがとうございます。

私を含め社内にもVBAまで出来る人間がおらず、非常に助かりました。
今後も同じような管理ファイルを作成することがあると思いますので、生かします。ありがとうございました!

お礼日時:2016/11/02 11:28

隣のセルでよければ


C2セルに
=HYPERLINK("#'"&B2&"'!A1","クリック")
フィルハンドルダブルクリック
「Excelでハイパーリンク作成の応用につ」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ただ、回答頂いた状況が、今直面しているものと異なります。

お礼日時:2016/11/02 10:45

こんにちは!



VBAでの一例です。
車両ナンバーを入力するというコトですが、気を付けなければならないコトがあります。
仮に
11-11
のように入力してしまうとExcel的には「11月11日」の日付と判断してしまいます。
そこで入力セルの表示形式は「文字列」になっているという前提です。
「車両一覧」シートのどこのセルに入力するのかが判断できないので、A列限定としてみました。

画面左下の「車両一覧」シートのシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
「車両一覧」シートのA列に車両ナンバーを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から//
Dim k As Long, myFlg As Boolean
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
For k = 1 To Worksheets.Count
If Worksheets(k).Name = .Value Then
myFlg = True
Exit For
End If
Next k
End With
If myFlg = True Then
Worksheets(k).Activate
Else
MsgBox "該当シートなし"
End If
End Sub 'この行まで//

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

すごい!本当にありがとうございます。
ただ...どうもうまくいきません。

現状、「車両一覧」シートDセルに゛車番”という列を作り、そこに1234、5678といった4ケタの数字を並べています。
つけ加えると、まだ゛車番”の列に打ち込んでいない数字もあります(納車予定のもの...仮に0000)が、シートとしては既に0000を作っています。

いかがでしょうか・・・もしまた読んで頂けましたら、ご回答頂けないでしょうか。常にこのページをチェックしておりますので、何か必要な除法があれば追加致します。

よろしくお願いしますm(_ _)m

お礼日時:2016/11/02 10:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!