- ベストアンサー
=INFO("numfile") の戻り値の意味
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
おっしゃるように「Excelヘルプ」の説明は、紛らわしいというより、正しくないでしょう。 1つのExcelアプリケーションに読み込まれているWorkBookにあるWorkSheetの総数です。WorkBookが複数開かれていれば、それらにあるWorkSheetの合計です。アドインや2003までなら隠しファイルのPersonal.xlsも含まれるようです。アドインなどでロックがかかっていればそのシートは開くことはできません。1つのWorkBookにあるWorkSheetの数を返しているのではありません。Graph Sheetなどは含まれません。したがって、1つのWorkBookのシート数をどうしてもこの関数で知りたければ、そのWorkBookを開く前にBook1を開いて、この関数でそれまでのシート数を取得し、目的のBookを開いてこのBookのシート上でもう1度この関数を使って総シート数を取得して、前に取得したシート数を引くことになります。使い物になりませんね。 こんなことをするより、ActiveWorkBook.WorkSheet.Countのユーザー関数を作れば取得できます。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
- neKo_quatre
- ベストアンサー率44% (735/1636)
目に付いているSheet1~3以外に、いくつかワークシートが開いてるって話だと思いますが。 例えば、 Alt+F11を押してVBEを起動すると、Sheet1~3が含まれるBook1(多分)以外のアドインなどが確認できるのでは。 Excel起動時に[Ctrl]キーを押しながら起動する、余計なアドイン等を起動しないセーフモードで同様の関数を確認すると、数が減るのでは。
お礼
コメント、ありがとうございました。
補足
》 目に付いているSheet1~3以外に、いくつかワークシート 》 が開いてるって話だと思いますが。 ええっ?! ワークシートやシート見出しの非表示設定にしていなければ、通常は横スクロールバーの左端に表示されている Sheet1、Sheet2、… 等の見出しを持つシートがワークシートだと思っていました。私の不得手なマクロやグラフ専用のものはそれぞれマクロシートやグラフシートと称して、ワークシートとは言わないのでは? 貴方が仰ることが本当なら、特に注意書きもなく、ヘルプがいともアッサリと記載した「開かれているワークシートの枚数」(Number of active worksheets in the open workbooks.)は嘘っぱちですね。(英文の方の直訳は、開いたブック内のアクティブ・シート数! )
補足
私の Excel 2002 では、 分析ツール 分析ツール - VBA の2個のアドインを組み込んでいます。それらを外し、かつ、“いわゆる”ワークシートの Sheet1 以外を削除したときの =INFO("numfile") 戻り値は 1 になりました。 試しに、標準装備されている合計9個のアドインを組み込んでみると、44 になります。 このことから、今後は次のことを肝に銘じておくことにします。 ヘルプが「開かれている」とか「アクティブ」とか言っても騙されるな! 「ワークシート」と言ってもお馴染みの Sheet1、Sheet2、… だけではないのだ! Excel には、“隠れ切支丹”的な、あるいは、“忍者くの一”的なワークシートが潜んでいるものと思え!