【SHEET関数】シートが何番目にあるか関数で出力・表示する方法!VBAでも活用!

関数

エクセルのファイルでは複数のシートを作成することができます。
しかしシートが大量にある場合は何番目か調査するのに手間がかかります。

そこで今回は関数を使用して指定したシートが何番目にあるか
関数で出力・表示する方法を紹介
したいと思います。

さらにVBAで活用する方法も紹介していますので
是非参考にしてみてください。

それでは見ていきましょう。




⬛︎こんなことができるようになる!

指定したシート名がブック全体の何番目のシートか出力できる。

⬛︎関数の仕組み

=SHEET(何番目のシートか確認したいシート名)

⬛︎関数の使用方法

では関数の使用方法を見ていきましょう。

・シート名を直接入力する

下図の見本をご覧ください。

ブック内に5つのシートが存在します。
今回はその中でも「見本」というシートがブック内の何番目にあるか出力してみましょう。

では関数の仕組みを再度確認しましょう。

=SHEET(何番目のシートか確認したいシート名)

使用方法としては引数にシート名を入力するだけです。
文字で入力するので、「”」で囲む必要があります。

「見本」のシートを関数に当てはめてみましょう。
数式はこのようになります。

=SHEET(“見本”)

では入力してみたいと思います。

結果はこのようになります。

「3」が出力されました。
見本のシートは3番目にあるので、3が出力されます

・引数にセルを参照して対象シートの位置を調べる

SHEET関数は引数を入力しても使用することができます
下図の見本をご覧ください。

今回も同様に「見本」のシートの位置を調査したいのですが
B3に調査したいシート名を入力しています。

今回はB3を参考にシート番号を出力してみましょう。
関数仕組みを再度確認してみましょう。

=SHEET(何番目のシートか確認したいシート名)

ここの引数は値になります。なのでセルに入力されてある文字を参考にするにはT関数を使用します。
なので「T(B3)」が引数になりますね。

引数を入力するとこのようになります。
=SHEET(T(B3))

それでは入力してみましょう。

結果はこちらです。

「5」が出力されました。
見本シートは「5番目」にあるので問題ありませんね

ちなみにシートを増やしてみると、その時の状態に合わせて結果も変わります。
シートが増えて「見本」シートが6番目になったので「6」が出力されています。

・作業中のシートの番号を求める

最後に作業しているシートが何番目に位置しているか求めたいと思います

これまではSHEET関数を使用して引数に調べたいシート名を入力していました。
もちろん、同様の方法で作業中のシート番号を求めることはできますが
さらに簡単に求めることができます。

再度、関数の仕組みをみましょう。

=SHEET(何番目のシートか確認したいシート名)

そして作業中のシート番号を求める際に引数は不要となります。

数式としては下記のようになります。
=SHEET()

それでは入力してみましょう。

結果はこのようになります。

「2」と表示されました。入力したシートは2番目に位置してるので
狙い通り機能してくれていますね。

⬛︎VBAでの活用方法

ではVBAでの活用法も見ていきましょう。
こちらの方法はSHEET関数で出力した結果をもとに、選択したいシートを入力するとそのシートを選択する例を紹介します。

B3に選択したいシート名を入力すると、D3に対象のシート番号を出力します。

ではD3に出力されたデータを元に選択したいシートを選択してみましょう。
プログラムはこのようになります。

Sub 対象シートを選択()

Dim N As Long

N = Cells(3, 4)

Sheets(N).Activate

End Sub

仕組みとしてはB3で入力した結果を元に対象シートが何番目にあるかをD3に出力します。
その出力結果を変数「N」に格納し、「Sheets(N).Activate」というプログラムで
N番目のシート、つまり対象シートを選ぶといった内容になってます。

では実行してみましょう。
今回は「A」というシートを選択したいと思います。

実行した結果はこちらです。

シートAが選択できました。

もちろん選択したいシートをCに打ち換えて実行しても
「C」のシートを選択してくれます。

⬛︎よくあるエラーと対処法

ここではSHEET関数を使用するうえで発生するエラーと対処法について紹介します。

・出力結果が異なる

こちらはシート名をセルの値で参照する際にT関数を用いてない可能性があります。
では見本を見てみましょう。

=SHEET(B3)

これではテキストとして認識されないので「=SHEET(T(参照したいセル))」
のように「T関数」を使用してください。

先ほどの見本では「=SHEET(T(B3))」が正解です。

・#NAME?のエラーになる

こちらは調査したいシート名が実際に存在しない可能性があります。

例えば「データ」というシートが存在したとします。
そこでSHEET関数でシート順を調査したい時に「=SHEET(“データ ”)」と入力したとします。

一見、間違いなさそうですが「データ」の後にスペースを入力してしまっているためエラーになります。

反対にシート名にスペースが存在してもエラーとなります。
見本は全角のスペースなので見つけやすいですが、半角は気づきにくいです。

つまり、シート名と調査シート名が全く同じでないとシート順は出力できません。

⬛︎公式の説明

わかりやすいように実際の内容とは異なった語句・文字で説明しています。
公式の内容をご覧になりたい方は下記リンクをご参照ください。

SHEET 関数 (microsoft.com)

⬛︎まとめ

いかがだったでしょうか。
関数の仕組みはとても簡単で、機能も至ってシンプルです。

是非活用して、シートの位置をSHEET関数を用いて求めてみてください。
それでは次回の記事でお会いしましょう。

コメント