
Microsoft Excelのブックに多数のシートが含まれていると、必要なシートタブが見えにくくなり、作業の効率が悪くなることがよくあります。回避策は数多くありますが、シート名のリストがあると便利です。特にユーザーがExcelの基本的なスキルを持っていない場合はなおさらです。シート名のリストがあれば、ユーザーはそれを使ってブック内を移動できます。シート名のリストを簡単に生成する方法として、Microsoft Power Queryがあります。
このチュートリアルでは、Power Query を使ってシート名のリストを作成し、それを Excel に読み込んでブック内を移動する方法を紹介します。シートを使うテクニックは興味深いですが、真の焦点は Power Query を使ってブックのメタデータを公開することです。
参照: Google Workspace vs. Microsoft 365: チェックリスト付き比較分析 (TechRepublic Premium)
Windows 10 64 ビット システムで Microsoft 365 を使用していますが、Excel 2010 までの以前のバージョンの Excel も使用できます。Web 用 Excel はクエリと既存の接続はサポートしていますが、Power Query はサポートしていません。
このチュートリアルの Microsoft Excel デモ ファイルをダウンロードできます。
OneDriveを無効にする方法
何をするにしても、まずOneDriveを無効にしてください。無効にしないと、「他のユーザーがブックを使用しているためアクセスできません」というエラーが表示されます。原因はOneDriveです。
OneDriveを一時的に無効にするには、タスクバーまたはオーバーフロー領域(図A)でOneDriveを探します。青いクラウドアイコンをクリックし、右上隅の歯車アイコン(設定)をクリックします。表示されたリストから「OneDriveを終了」を選択します。プロンプトが表示されたら「OneDriveを閉じる」を選択して操作を確定します。365サブスクリプションをお持ちの方は、意識しているかどうかにかかわらず、OneDriveを使用しています。
図A

これは一時的な状況です。完了したら、OneDriveを再度有効にしてください。その方法は後ほど説明します。
Power Queryを起動する方法
図Bに示すような、6つの空のシートを持つシンプルなExcelワークブックを操作します。シートの1つには、境界線で示された名前付き範囲があります。デモでは、シート名を含むワークブックのメタデータを取得するため、データは必要ありません。
図B

OneDrive を無効にしたら、Power Query を起動する準備が整います。
1. すべてのタブがある Excel ブック内から、[データ] タブをクリックします。
2. [データの取得と変換] グループで、[データの取得] ドロップダウンをクリックし、[ファイルから] を選択します。
3. 次に、「Excel ブックから」を選択します。
4. プロンプトが表示されたら、同じブックを検索して指定し、「インポート」をクリックします。ここでOneDriveを無効にしないと問題が発生します。このような問題が発生した場合は、上記のようにすべてを閉じてOneDriveを無効にしてください。
5. 表示されたペインで、任意のシートを選択します(図C)。必要なシートは1つだけです。リストにはSheetANamedRangeという名前付き範囲も含まれていることに注意してください。この範囲は使用しませんが、この読み込みプロセスではシート以外にも多くの機能が提供されていることをご理解いただきたいと考えました。テーブル名も表示されます。
図C

6. [データの変換] をクリックして、Power Query を起動します。
現時点では、Power Query は空のようです。
ExcelファイルのメタデータをPower Queryで公開する方法
Power Queryにはデータがありませんが、それが必要なのです。これにより、ファイルのメタデータを公開できるようになります。
右側の「適用したステップ」リストには3つのステップがありますが、最初の「ソース」ステップのみ残しておきます。各ステップの左側にあるXをクリックして、「ナビゲーション」と「変更されたタイプ」を削除します。これにより、図Dに示すように、ワークブックのメタデータが表示されます。
図D

種類列にはアイテムの種類が表示されます。シートは6つあり、定義名が1つあります。必要なのは6つのシートだけなので、まずは定義名行をフィルター処理して除外します。この手法をご自身のデータに適用する場合、定義名が存在しない可能性がありますが、このクエリを再利用する予定がある場合は、フィルターを適用することをお勧めします。後でリストを更新すると、名前付き範囲やテーブルが表示される場合があります。
フィルターを適用してシートのみを表示するには、次の手順を実行します。
1. 「種類」列のドロップダウンをクリックします。
2. 表示されたリストで、Sheets 以外のすべてのチェックを外します (図 E )。
図E

3. 「OK」をクリックしてフィルターを適用します。
図Fは結果のレコードを示しています。定義済みの名前の行はありません。これをご自身の作業に適用する場合、メタデータにはシート名以外の要素が含まれている可能性があります。シート以外のすべてをフィルタリングするようにしてください。
図F

この時点で、名前列以外のすべての列を削除する必要があります。そのためには、
1. 名前ヘッダーを右クリックして、その列を選択します。
2. 表示されるサブメニューから「その他の列を削除」を選択します。
シート名の列以外のすべてのデータを削除したら、「読み込み&閉じる」をクリックしてリストをExcelに読み込みます。すると、「Apr (2)」という新しいシートにテーブルが作成されます。
Excelでリストを使用してシートを移動する方法
シート名表の使い方は自由ですが、ここでは素早く移動できるようにハイパーリンクの列を作成します。シート名をハイパーリンクにするには、図Gに示すように、 B2セルに次の関数を入力し、残りのセルにコピーします。
=HYPERLINK("[PQSheetHyperlinks_Demo.xlsx]" & A2 & "!A1",A2)
図G

この関数は、同じワークブック内で移動する場合でも、現在のシート名「[PQSheetHyperlinks_Demo.xlsx]」を必要とします。&A2&コンポーネントは、A2のシート名を連結します。「!A1」コンポーネントは、対応するシートのA1を選択します。最後の引数A2は、表示されるテキスト(この場合はシート名)を指定します。
Excelでシート名テーブルを更新する方法
シートを追加、削除、または名前変更した場合は、リストを更新する必要があります。まず、ワークブックを保存します。次に、リストを右クリックし、表示されるサブメニューから「更新」を選択します。
Microsoft 365とOneDriveをご利用の場合は、この設定を行う前にOneDriveを再度有効にする必要があります。最も簡単な方法は、Microsoft 365アカウントにサインインし、メニューの「同期」をクリックすることです。
リストを生成するためにOneDriveを無効にし、その後リストを更新するためにOneDriveを有効にする必要があるというのは少し奇妙です。これはアップデートで変更される可能性があります。