エクセルのファイルでは複数のシートを作成することができます。
しかしシートが大量にある場合は何番目か調査するのに手間がかかります。
そこで今回は関数を使用して指定したシートが何番目にあるか
関数で出力・表示する方法を紹介したいと思います。
さらに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関数を用いて求めてみてください。
それでは次回の記事でお会いしましょう。