- 締切済み
Excel タブ名を自動参照させる
お世話になります。 多分無理だとは思うのですが、 Excelのシートの下にタブがありますよね その名前を任意のセル内容から参照読み出しさせるって VBA以外の解決法で出来ますでしょうか? 無理難題ばかりで済みませんが ご教示を宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>関数でするに拘らず何らかの方法で出来ますか? マクロは嫌だという事でしたが、手でイチイチ記入したくないならマクロでやるしかないと回答した通りです。 作成例: ブックを、エクセルウィンドウの中で最大化ではない状態にする ブックウィンドウの左上コーナ部の、ブック名左横アイコンを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Workbook_SheetChange(byval Sh as object, byval Target as excel.range) on error goto errhandle if target.address = "$A$1" then sh.name = target.value end if exit sub errhandle: msgbox "BAD NAME" application.enableevents = false application.undo application.enableevents = true end sub ファイルメニューから終了してエクセルに戻る 各シートのA1セルにそれぞれのシート名を記入する。
- keithin
- ベストアンサー率66% (5278/7941)
シート名をセルから呼び出させる方法はありません。 シート名は固定です。 つまり手で記入する、あるいはマクロで記入させる、しかないということです。 #参考 例外として。 CSVファイルをWクリックしてエクセルに開かせると、シート名がCSVのファイル名で自動設定されるといった機能はあります。
お礼
解りました、有り難うございます。
- keithin
- ベストアンサー率66% (5278/7941)
自シートのシート名を計算するには、 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,99) のようにしないといけません。 そうしないとブックに「複数のシート」があって、それぞれのシートに数式を入れたときに、間違った答えが出てしまいます。 ブックを保存しておかないと正しい答えが計算できないのは、既出回答の通りです。
お礼
WATABEさん同様、私の文面が誤解を生ましていると思います すみません。 タブ名の文言の中にに関数を埋め込んで その結果としての戻り値をタブ名として扱わせる そういう類いのことが 関数でするに拘らず 何らかの方法で出来ますか? と、言う趣旨の質問なのですが きっと誤解をさせてしまったと思います。 すみません。
- watabe007
- ベストアンサー率62% (476/760)
>Excelのシートの下にタブがありますよね >その名前を任意のセル内容から参照読み出しさせるって シート名なら =MID(CELL("filename"),FIND("]",CELL("filename"))+1,99) ただし、一度保存されているブックでダメですよ 新規ファイルなら一度存する必要があります。
お礼
まず取り急ぎ謝罪します。 誤解を生む曖昧な記載だったと思います。 すみませんでした。 と、言うのも 誤)セルにタブ名を読み出す 正)タブ名をセル内容で決める だからです。 折角ご厚意を傾けて頂きながら こちらのミスでこのようになり 申し訳なく思います。
お礼
解りました、有り難うございます。