ここから本文です

エクセルでシート名の入ったセルをダブルクリックするとその名前のシート(セルは...

mas********さん

2018/3/1809:12:08

エクセルでシート名の入ったセルをダブルクリックするとその名前のシート(セルはどこでも構いません)に移動出来るようなVBAはどうすればよろしいでしょうか?

ダブルクリックするセルはE2からE100くらいまで、シート数は100ほどありますが今後シート数も追加されて増えていきます。
よろしくお願いします。

閲覧数:
64
回答数:
2

違反報告

ベストアンサーに選ばれた回答

db1********さん

2018/3/1809:51:14

記述する場所は同じで、シート・マクロになります。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim Sheet_name As String

On Error GoTo err
Sheet_name = ActiveCell.Value
'MsgBox Sheet_name
'If Sheet_name = "" Then Exit Sub
Application.Goto Sheets(Sheet_name).Range("b5"), True

Exit Sub

err:
MsgBox "エラーNo:" & err.Number & vbCrLf & "シート名がありません。"

End Sub

移動先は、アクティブセルのシート名のシートで、B5セルに指定し、B5セルが画面左上隅になるように指定しています。
Application.Goto Sheets(Sheet_name).Range("A1") としても良いです。

  • 質問者

    mas********さん

    2018/3/1810:03:15

    早々のご回答ありがとうございました!

    希望通りの操作ができました。
    今後は私も勉強して皆さんのお役に立てるように努力します。

    ありがとうございました。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/3/18 10:05:37

ありがとうございました!

ベストアンサー以外の回答

1〜1件/1件中

hel********さん

2018/3/1809:22:22

シートイベントに追加してください。
E2には一番左端のシート名を入力し、E3以降も左から2つ目以降の順にシート名があるとしています。
※シート見出しの上で右クリックして「コードの表示」を選択。表示されるコードウィンドウに以下のコードをコピペ。


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("E2:E100")) Is Nothing Then Exit Sub
Dim number As Integer
Cancel = True
number = Target.Row - 1
On Error GoTo myErr
Worksheets(number).Select
Exit Sub
myErr:
MsgBox "シートが作られていません"
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる