#author("2017-02-06T23:24:29+09:00","default:Authors","Authors")
#author("2019-10-15T09:41:48+09:00","default:Authors","Authors")
''[[TopPage]]''

* Excelシート移動 [#x91f3ceb]
Ctrl+PgUp、Ctrl+PgDnで移動するのは面倒で遅いため、マクロ化を考えました。~
prevSheetにCtrl+q、nextSheetにCtrl+eをショートカットとして割当てると効率的でしょう。~

** 関連ページ [#j3b8f3b6]
~
** 2019/10/15 改良版 [#nbaffbc1]
 Sub prevSheet()
     Set SH = ActiveWorkbook.ActiveSheet
     Set STS = ActiveWorkbook.Sheets
     On Error Resume Next
      ''左のシートへ。最初なら末尾に
     If SH.Name = STS(1).Name Then
         STS(STS.Count).Activate
     Else
         ''非表示のシートは飛ばす
         Do While SH.Previous.Visible <> xlSheetVisible
             If Err <> 0 Then Exit Do
             Set SH = SH.Previous
         Loop
             If SH.Previous.Visible <> xlSheetVisible And SH.Previous.Name = STS(1).Name Then
                 STS(STS.Count).Activate
             Else
                 SH.Previous.Activate
             End If
         On Error GoTo 0
     End If
 End Sub
 
 Sub nextSheet()
     Set SH = ActiveWorkbook.ActiveSheet
     Set STS = ActiveWorkbook.Sheets
     On Error Resume Next
     ''右のシートへ。末尾なら最初に
     If SH.Name = STS(STS.Count).Name Then
         STS(1).Activate
     Else
         ''非表示のシートは飛ばす
         Do While SH.Next.Visible <> xlSheetVisible
             If Err <> 0 Then Exit Do
             Set SH = SH.Next
         Loop
             If SH.Next.Visible <> xlSheetVisible And SH.Next.Name = STS(STS.Count).Name Then
                 STS(1).Activate
             Else
                 SH.Next.Activate
             End If
         On Error GoTo 0
     End If
 End Sub

ファイル名: 任意

** シンプル初期版 [#a2f747d6]
 Sub prevSheet()
 If 1 &lt; ActiveSheet.Index Then                        ' 最初のシートでないなら                           '
 If 1 < ActiveSheet.Index Then                        ' 最初のシートでないなら                           '
     ActiveSheet.Previous.Select                         ' 前のシートに移動する                             '
 End If
 End Sub
 
 Sub nextSheet()
 If Worksheets.Count &gt; ActiveSheet.Index Then         ' 最後のシートでないなら                           '
 If Worksheets.Count > ActiveSheet.Index Then         ' 最後のシートでないなら                           '
     ActiveSheet.Next.Select                             ' 次のシートに移動する                             '
 End If
 End Sub

*** 参考ページ [#x466ae40]
~


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS