Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37524 / 76738 ←次へ | 前へ→

【44379】Re:指定したシートを開きたい
回答  Kein  - 06/11/14(火) 17:01 -

引用なし
パスワード
   Private Sub Workbook_Open()
  Dim code As String
  Dim MyS As Worksheet
  Dim Flg As Boolean

  Sheets("メインページ").Select
  Do
   code = InputBox("コードを入力してください", "自分のシートを開く")
   If code = "" Then Exit Sub: Flg = False
   On Error Resume Next
   Set NyS = Worksheets(code)
   If Err.Number <> 0 Then
     MsgBox "その名前のシートはありません", 48
     Err.Clear: Flg = True
   End If
   On Error GoTo 0
  Loop While Flg = True
  MyS.Activate: Set MyS = Nothing
End Sub

やるとすればこんなコードになりますが、シート名のように変更する頻度が少ない
ものを、いちいちキーをタイプして指定するのはあまり賢いやり方ではありません。
一字打ち間違えても"シートがない"という判定をされてしまうからです。
ま、シート数が多くてタブをスクロールするのがたいへんなら、既存のツールバーに
コンボボックスを配置して、全シートをループしてシート名をリストアップするとか
メインページのIV列あたりに全シート名を入力、ダブルクリックイベントで目的の
シートを開くなどの工夫をするのがベターでしょう。
仮に後者の仕組みを作るとするなら・・

ThisWorkbookモジュール

Private Sub Workbook_Open()
  Dim i As Long

  Sheets("メインページ").Select
  If IsEmpty(Range("IO1").Value) Then
   For i = 1 To Worksheets.Count
     Range("IO:IV").Cells(i).Value = Worksheets(i).Name
   Next i
   Range("IO1:IV1").EntireColumn.AutoFit
  End If
  Application.GoTo Range("IO1"), True
End Sub

Sheets("メインページ")のシートモジュール

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
  Dim Snm As String

  If Intersect(Target, Range("IO:IV")) Is Nothing Then Exit Sub
  With Target
   If IsEmpty(.Value) Then Exit Sub
   Snm = CStr(.Value)
  End With
  Cancel = True
  Worksheets(Snm).Activate
End Sub
0 hits

【44352】指定したシートを開きたい asam 06/11/13(月) 19:43 質問
【44355】Re:指定したシートを開きたい 06/11/13(月) 20:56 質問
【44357】Re:指定したシートを開きたい Mi 06/11/13(月) 22:34 発言
【44378】Re:指定したシートを開きたい asam 06/11/14(火) 16:11 発言
【44379】Re:指定したシートを開きたい Kein 06/11/14(火) 17:01 回答
【44386】Re:指定したシートを開きたい asam 06/11/14(火) 19:22 お礼
【44381】Re:指定したシートを開きたい 06/11/14(火) 17:19 回答
【44387】Re:指定したシートを開きたい asam 06/11/14(火) 19:24 お礼

37524 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free