Jonathanには、50を超えるワークシートを含むワークブックがあり、そのうちの1つは「メイン」という名前で、ワークブックの最初のタブとして配置されています。彼は常に「メイン」に戻らなければなりません

ワークシート。ワークシートを表示するには、一度にタブをクリックするか、タブの左端までスクロールして(タブの左端にあるコントロールをクリックして)、[メイン]を選択する必要があります

タブ。この最後の方法が最も簡単ですが、それでも時間がかかります。

ジョナサンは、ペインをフリーズするのと同じように、ワークシートのタブをフリーズする方法があるかどうか疑問に思います。彼は、「メイン」タブが常に表示され、その右側のタブがスクロールすることを望んでいます。

簡単な答えはノーです。Excelにはワークシートのタブをフリーズする方法はありません。そうは言っても、あなたが望む結果を得るためにあなたができることがいくつかあります。

考えられる解決策の1つは、ワークシートでハイパーリンクを使用することです。多くの人が、メインのワークシートがワークブック内の他のワークシートの目次として機能するシステムを設定しています。各ワークシートはメインワークシートからハイパーリンクされており、メイン以外の各ワークシートにはメインワークシートへのハイパーリンクがあります。したがって、ハイパーリンクをクリックするだけで、メインワークシートとセカンダリワークシートの間をすばやく移動できます。

もう1つのオプションは、Excelウィンドウの下部にあるタブの左側にあるワークシートのタブコントロールを右クリックできることを覚えておくことです。

これを行うと、最初の15個のワークシート名のリストが表示され、「メイン」ワークシートを簡単に選択できます。

さらに別のオプションは、常に「メイン」ワークシートを表示する非常に単純なマクロを設定することです。

Sub GoToMain()

Sheets("Main").Select End Sub

このマクロをショートカットキーまたはツールバーボタンのいずれかに割り当てて、非常にすばやく使用できるようにすることができます。実行すると、「メイン」という名前のワークシートが常に表示されます。

どうしても「メイン」シートをタブ領域に表示したい場合は、「メイン」が常に表示されるようにタブを継続的に並べ替えるマクロを使用する必要があります。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Dim sc As Long ' count of sheets     Dim NewPos As Long ' index of serlected sheet

Application.EnableEvents = False     Application.ScreenUpdating = False

If ActiveSheet.Index <> 1 Then         sc = Sheets.Count         NewPos = ActiveSheet.Index         For i = 2 To NewPos - 1             Sheets(2).Move After:=Sheets(sc)

Next i         Sheets(1).Activate         Sheets(2).Activate     End If

Application.ScreenUpdating = True     Application.EnableEvents = True End Sub

このマクロはThisWorkbookオブジェクトの一部である必要があるため、VBAエディターの適切な場所に追加してください。目的のワークシートが2番目の位置になるように、ワークシートを常に2番目の位置に移動します。これは、最初の位置(メイン)のワークシートが移動しないことを意味します。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3178)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。