- ベストアンサー
Excel 式でシートの名前を取得する方法
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
=cell("filename",セル) で指定したセルがあるシートのパス名が得られます。 (Z:\[schedule.xls]Sheet2 のような具合に) そこからシート名だけを取り出すなら =RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))) でしょうか
その他の回答 (2)
- poohron
- ベストアンサー率59% (574/971)
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))) で取得できますのでお試しください。 ◆A1ではなく他のどのセルを指定しても構いません。 ◆一度保存されたファイルでなければシート名は取得できず、#VALUE! になってしまいます。 ◆ファイル名や保存フォルダ名に ] が含まれていると正しく取得できません (シート名には含まれていても構いません)
お礼
出来ました! ご回答ありがとうございましたm(_ _)m
- mshr1962
- ベストアンサー率39% (7418/18948)
シート見出しに入力された名前を設定すればいいだけですが... =シートの名前!セル座標 例=Sheet1!A1 シートの名前にスペースがある場合は ='シート 名前'!セル座標 例='Sheet 11'!A1 シートの名前が別のセル参照の場合は =INDIRECT(A1&"セル座標") 例=INDIRECT(B1&"A1")
補足
その、「シート見出しに入力された名前」を取得したいのです。 この場合、「Sheet1」という文字列を返してくれればいいのですが。
関連するQ&A
- エクセルで他のシートの値が反映されず、式が表示されてしまいます。
エクセルで他のシートの値が反映されず、式が表示されてしまいます。 例えば、「Sheet2」の「C3」セルに「=sheet1!A1」と入力しておき、通常ならSheet1のA1セルに値を入力した場合、Sheet2のC3セルの値もA1セルと同じ値が表示されると思いますが、Sheet2のC3セルの表示が「=sheet1!A1」のままです。 何か設定を変更しなければならないのでしょうか? 因みに、同じファイルの他のシートは問題なく他のシートで入力した値を反映してます。値がうまく表示されないシートは別のファイルからコピーしてきたシートです。
- ベストアンサー
- その他MS Office製品
- エクセルで違うシートの値を持って来ようとしたときに、うまく持ってこれま
エクセルで違うシートの値を持って来ようとしたときに、うまく持ってこれません。 具体的にはSheet2にSheet1の値を持ってきたいので、 =Sheet1!A3 と言う風にシート2のA3のセルに記入したのですが、 A3のセルに =Sheet1!A3 と表示され、肝心の値が表示されません。 どなたかご存知の方いらっしゃいましたら教えていただけると幸いです。
- ベストアンサー
- その他MS Office製品
- Excelの名前を取得したい
VB初心者です。宜しく御願いします。 ExcelのシートのRange("A11")の名前に「AAA」と付けています。 VBから、Excelを起動して、そのExcelのシートのRange("A11")の名前を取得したい場合はどうすれば良いのでしょうか? VB側でシートにそのセルにその名前が付いているかのチェックをしたいのです。 ご教授御願いします。宜しくお願い致します。
- ベストアンサー
- Visual Basic
- Excel で別シートのセル値を表示させる(初心者)
Excel で一つ前のシートにあるセル値を表示させる。 例えば"Sheet1"と"Sheet2"が有るとして"Sheet2"のセル"A1"へ "Sheet1"のセル"A1"の値を表示させるには、=Sheet1!A1 と入力しますが、 この<Sheet1>の部分だけを別のセル "A2" で入力した値に変更したいです。 (気持ちとしては、A2!A1) どの様にすれば良いでしょうか? 常にシートをコピーして作成し、常に一つ前のシートの同位置セルの値を 表示させたいのが狙いで、シート名は数値に設定して "A2"へ MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)-1 などを入れて方法があれば作成しようと考えています。 マクロも分かりません、関数など何か方法があればご教授お願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 保護されたエクセルシートのコピー
エクセル97です。 書式→セル→表示しない を選択したセルのデータは、シートを保護するとセルをコピーして他のシートに貼り付けても、セル内の式はコピーされず、値だけになってしまうようです。 こんな場合でも中の式をコピーする方法はありますか?
- ベストアンサー
- オフィス系ソフト
- エクセルのシートを他のシートに自動入力できないのはなぜ?
例でいうと、エクセルのAシートのセル番地A1の値をBシートのA1に自動で入力させるときには =A!A1 とすれば自動的に値が飛んでくるのが普通ですが、この式が入っているのにもかかわらず、値が飛んでこないのはどうしてでしょう? F2を押して,Enterをおすと値が飛んできます。 一部分だけがそうなってしまいます。 なにかいい方法はありませんか?
- ベストアンサー
- オフィス系ソフト
- Excelの式が上手く行きません。
色々調べてみたんですが、上手く行かないので質問させてください。 1日目 2日目 セルの列「C15」「C16」「C17」 「C18」「C19」「C20」 田中さん 「 」「A」「A」 「 」「A」「A」 鈴木さん 「 」「A」「A」 「 」「 」「 」 こんな感じでセルに入力したものを、次のシートで自動的にリストが作成されるように式を作っています。 1つのセル内に、 (1)田中さんのみが「 」「A」「A」のとき、田中さんの名前が出る。 (2)鈴木さんのみが「 」「A」「A」のとき、鈴木さんの名前が出る。 (3)田中さん・鈴木さんともに「 」「A」「A」のときは、田中さんと鈴木さんの名前が並んで表示される。 という3つの条件をすべて満たせる式を作りたいのですが、どうしても上手く行きません。 方法I:2つの式の間に「&」を入力した場合。 =IF(AND(Sheet1!R4C15="",Sheet1!R4C16="",Sheet1!R4C17="A"),Sheet1!R4C4&IF(AND(Sheet1!R5C15="",Sheet1!R5C16="",Sheet1!R5C17="A"),Sheet1!R5C4,)) これだと、 (1)田中さんのみが「 」「A」「A」のとき、田中さんの名前が出る⇒○ (2)鈴木さんのみが「 」「A」「A」のとき、なにも表示されない⇒× (3)田中さん・鈴木さんともに「 」「A」「A」のときに、田中さんと鈴木さんの名前が並んで表示される⇒○ となって、(2)が上手くいきません。 方法II:2つの式の間に「&」、1つ目の式の最後に「,""」(該当しない場合は空白を表示)を入力した場合。 =IF(AND(Sheet1!R4C15="",Sheet1!R4C16="A",Sheet1!R4C17="A"),Sheet1!R4C4,""&IF(AND(Sheet1!R5C15="",Sheet1!R5C16="A",Sheet1!R5C17="A"),Sheet1!R5C4,)) これだと、 (1)田中さんのみが「 」「A」「A」のとき、田中さんの名前が出る⇒○ (2)鈴木さんのみが「 」「A」「A」のとき、鈴木さんの名前が出る⇒○ (3)田中さん・鈴木さんさんともに「 」「A」「A」のときに、Bさんの名前が出ない。⇒× となって、(3)が上手くいきません。 (1)・(2)・(3)を全てクリアする方法はありませんでしょうか・・・。 知識がないもので、もしかしたら式自体がもっといい方法があるのかもしれませんが・・・。 最終的には人数を増やして、 他のセルでは「A」「 」「 」や別のローマ字「 」「 」「B」の条件に当てはまる名前を表示させて、 自動でリスト化できるようにしたいと考えていますが、これは式の問題が解決すれば応用でいけると思います。 本当は別のセルに「1」と入れれば1日目(C15・16・17)を参照して、「2」と入れれば2日目(C18・19・20)を参照するように作りたかったのですが、これは方法がわからないので諦めています。 困っています。どなたかわかる方いらっしゃいましたら教えてください・・・。
- ベストアンサー
- オフィス系ソフト
- 【エクセル】一つ前のシートの同じ場所のセルをコピーする方法
色々と調べてみたのですが分からないので教えて下さい。 シートの名前は4、5、6・・・のように数字だけです。 現在 =INDIRECT("'"&RIGHT(CELL("filename"),1)-1&"'"&"!A7") のように一つ前のシートの同じ場所のコピー(A7セルにおいては) はできているのですが、"A7"が相対参照になっていないため、 他のセルにコピーしても一つ前のシートのA7セルの値しか表示できません。 どうかにか一つ前のシートの同じ場所のセルを表示できる うまい式がありましたら教えて下さい。
- 締切済み
- オフィス系ソフト
- Excelのマクロでシートを表示させる方法を教えて下さい
初心者ですみません。 エクセルでsheet1の特定のセルに入力した値と同じ名前のシートを表示させるマクロを作成したいのですが、どうすればいいか教えて下さい。
- ベストアンサー
- その他([技術者向] コンピューター)
- Excelのバージョンに依存しない最終セルの取得方法
VBAでたとえばA列の最後にデータが入っているセルを取得するのに、今まで Range("A65536").End(xlUp) という書き方をしてきました。 しかし、Office2007ではExcelの最大列数が従来の256列から16384列に,最大行数が従来の65536行から1048576行に増えました。 そうすると、Excelを2007にバージョンアップしたら、上記の書き方をした既存のマクロを使っているブックのデータが増えていって65536行を超えたとき、マクロが正常に稼動しなくなります。 Range("A1048576").End(xlUp) とすればExcel2007では動くのかもしれませんが、Excel2003以前のバージョンでは、A1048576などというセルはないのでエラーになります。 できるだけExcelのバージョンに依存しない書き方をしたいのですが、上記のようなA列の最後にデータが入っているセルを求めるには、どういう書き方をすればいいのでしょうか。 自分なりに考えたのは、行数だけ求めるなら、 Range("A1").CurrentRegion.SpecialCells(xlCellTypeLastCell).Row で、この値をInteger型の変数でFor~Nextでループさせる、という方法です。 しかし、ネットで検索していろいろ調べたところ、上記の書き方では不具合が生じることがわかりました。たとえばA1からA10まで値が入っていた場合、 Range("A1").CurrentRegion.SpecialCells(xlCellTypeLastCell).Row では10が求まりますが、A10のセルを選択してDelキー(またはBackSpace)で値を削除しても、上の式の結果は10のままなのです。(Selectすると、空白のセルが選択されます) Excelのバージョンに依存しない、データが入っている最終行の求め方でいい方法はないでしょうか?
- ベストアンサー
- オフィス系ソフト
お礼
出来ました! ご回答ありがとうございましたm(_ _)m