• ベストアンサー

【Excel】 シート名に関する式を教えてください。

こんにちは 現在のsheet名は「あ-1」です。 (分類(あ)とその枝番の組合せ) A列に、 A あ-1 あ-2 あ-3 あ-4 い-1 い-2 う-1 う-2 う-3 ・ ・ ・ と、このブックのsheet名が列挙されています。 B1に、現sheet名を表示させる式と C1に、現sheetの分類(あ)の総sheet数を表示させる式を 教えてください。 Excel2003 です。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

とりあえず、>「現sheet名を表示させる式」 =RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename"))) >現sheetの分類(あ)の総sheet数を表示させる式 はvbaを使うことになるでしょう。 ワークブックの中のシート名(.NAME)の全てについて(FOR EACH)(あ)があるか判別してカウントすればよい.

hee1
質問者

お礼

お返事有難うございます。 「現sheet名を表示させる式」は上手く行きました。 有難うございました。 VBAのスキルは殆どありません。 VBAのコードはどのようになるでしょう。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#1です。#1の補足に関して 1つの開いているブックのシート名をSheet1のA列に出す。 Sub test01() Dim sh As Worksheet i = 2 For Each sh In Worksheets MsgBox sh.Name Worksheets("Sheet1").Cells(i, "A") = sh.Name i = i + 1 Next End Sub ですが、シート名は、質問ではA列に判って入力されているのでしたね 。すみません。 カウントは Sub test02() Dim sh As Worksheet i = 2 j = 0 For Each sh In Worksheets MsgBox sh.Name Worksheets("Sheet1").Cells(i, "A") = sh.Name If Mid(sh.Name, 1, 3) = "(あ)" Then j = j + 1 i = i + 1 Next MsgBox j End Sub

  • odessa7
  • ベストアンサー率52% (101/192)
回答No.2

 同じ分類のシート数は、下記の関数で表示できると思います。 C1セルに {=SUM(IF(LEFT($A$1:$A$10,1)=LEFT(B1,1),1))}  Ctrl+Shift+Enterで確定してください。  ちなみに範囲は、必要なだけ広げてください。