• 締切済み

別のbookのシート名を自動に貼り付ける

http://www2.odn.ne.jp/excel/waza/sheet.html#SEC8 参考にして、シート名をセルに表示させたいです。 参考book [s.xls]シート名はそれぞれa,b,c,とあるとします。 表示させたいbookは[x.xls] こちらのシート名はd,e,fとします。 x.xlsの各シートa1の欄に、s.xlsのシート名を自動で表示させたいです。 dのシートにaのシート名 eのシートにbのシート名 fのシートにcのシート名 2枚目のシートが変更できませんでした。 すべてaのシート名が表示されてしまいます。 =MID(CELL("filename",s.xls$A$1),FIND("]",CELL("filename",s.xls$A$1))+1,31) にしました。 よろしくお願いいたします。

みんなの回答

回答No.3

質問の内容が今いちハッキリしません。 x.xlsを開いたとき、 特定のフォルダに存在するs.xls(C:\AAA\BBB)の 左からL番目のシート名(a)、M番目のシート名(b)、N番目のシート名(c)を取得し、 s.xlsのシート名(d)のセルA1にa、シート名(e)のセルA1にb、シート名(f)のセルA1にcを書込 として、回答します。 記述はx.xlsのThisWorkbookのPrivate Sub Workbook_Open()書きます。 Dim AA,BB,CC Workboos.Open Filename:="C:\AAA\BBB\s.xls" AA=Sheets(L).Name BB=Sheets(M).Name CC=Sheets(N).Name ActiveWorkbook.Close False ThisWorkbook.Activate Sheets(d).Range("A1")=AA Sheets(e).Range("A1")=BB Sheets(f).Range("A1")=CC

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

> 2枚目のシートが変更できませんでした。 > すべてaのシート名が表示されてしまいます。 シートを指定しないと一番左にあるシート名を表示する仕様みたいですので、すべてaシート名が表示されてしまいます。 =MID(CELL("filename",s.xls$A$1),FIND("]",CELL("filename",s.xls$A$1))+1,31) と入力して確定したら =MID(CELL("filename",[s.xls]aのシート名!$A$1),FIND("]",CELL("filename",[s.xls]aのシート名!$A$1))+1,31) と変更されますよね。 それで、別の考え方になりますが、a,b,cのシートのどこかにそれぞれ今回参考にされた式 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31) を入れておいて、d,e,fのシートからそれぞれそのセルを参照させればいかがでしょう。

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.1

>=MID(CELL("filename",s.xls$A$1),FIND("]",CELL("filename",s.xls$A$1))+1,31) この式で本当に1枚目のシートもaのシート名が表示されているんですか? とりあえず、s.xlsと$A$1の間にシート名を入れてみるというのは如何ですか? 普通は、[s.xls]シート名!$A$1とかで指定するので…

関連するQ&A

  • 別ファイルのシート名表示

    教えてください。 シート名表示ですが、開いているファイル(製造データ1.xls)の シート名表示 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31) にて可能ですが、別ファイル(製造データ2.xls)のシート名を関数にて表示させる方法を教えてください。 製造データ1.xlsのA1セルに表示させたいのですが・・・ (製造データ2.xlsのシートは1つのみです) 製造データ1と製造データ2は同一フォルダに格納されてます。 よろしくお願いします。

  • エクセルで左隣シートの特定のセルの値を表示させたい

    エクセルで左隣シートの特定のセルの値を表示させたいのですが、 どのようにすればよいでしょうか? 似たような質問の回答をいくつか試したのですが、 よく理解できていないため、うまく応用できずエラーになってしまいます。 ="No."&SUBSTITUTE(MID(CELL("filename",$A$1),FIND("(",CELL("filename",$A$1))+1,5),")","") とか =INDIRECT(SUBSTITUTE(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))),"日","")-1&"日!A"&ROW(F24)) とか =SUM(INDIRECT("'"&(SUBSTITUTE(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))),"日","")-1)&"日'!c5"),F24) とか といった式が参考になりそうですが、結局どう書き変えればいいのかわかりません。。 具体的には、シート名が「04」「05」…「12」「01」「02」「03」と1年分の12シートあります。 半角2桁のみのシート名です。 05以降のシートには、それぞれF1セルに、 「左隣シートのF24のセルの値を表示させたい」のです。 (F24のセル自体は「=F11+F23」という式が入力されています。) 例の式の「日」とか「row()」とかは必要ないと思いますが、 消しただけではムリそうなのでそのままコピーしています。 おわかりになる方、どうぞよろしくお願いします。

  • シートを別のブックに移動させたいのですが、

    シートを別のブックに移動させたいのですが、 マクロで作成するとこうなりました。 Workbooks.Open Filename:= _ "C:\Documents and Settings\YUUKORON\My Documents\YYYY.xls" Windows("GGGG.xls").Activate Sheets("2010.4YY").Select Sheets("2010.4YY").Move Before:=Workbooks("YYYY.xls").Sheets(1) が、移動先のブック名が移動させたいシートのセルF1に入力されているので、ブック名YYYYをどのようにすればよいのか教えてください。  Workbooks.Open Filename:= _   "C:\Documents and Settings\YUMIKO\My Documents\" & Range("F1").Value & ".xls" Windows("GGGG.xls").Activate Sheets("2010.4YY").Select  Sheets("2010.4YY").Move Before:=Workbooks("YYYY.xls").Sheets(1) 試してみた方法 Sheets("2010.4YY").Move Before:=Workbooks("("2010.4YY").Range("F1").Value.xls").Sheets(1)  Sheets("2010.4YY").Move Before:=Workbooks _ ("C:\Documents and Settings\YUMIKO\My Documents\" & Range("F1").Value & ".xls").Sheets(1) どれもダメでした。 あと、今は、Sheet(1)の前となっていますが、常にブックの先頭に移動させることはできるのでしょうか? シート名は、2010.5YY、2010.6YY というふうに毎月増えていく予定です。 初心者です。よろしくお願いします。

  • シート内のセルに各シート名を表示するには

    セルに下記の値を入力してシート名を取得しています。 RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename"))) シート名を取得できたのでこのシートを雛型にしてシートをコピーしてシート名を変更したら雛型側も変更されてしまいました。 例えば  シート名が「シート1」のセルに「シート1」  シート名が「シート2」のセルに「シート2」  シート名が「シート3」のセルに「シート3」 というようにしたいのですがうまくいかず困っています。 ※セルとは上記の値を組み込んでいるセルです。 各シート内のセルにそれぞれの各シート名を表示するようにどうしたらいいのでしょうか? 説明が下手ですみませんが理解していただけましたでしょうか? 宜しくお願いします。

  • 特定文字を含むシート名の一覧作成について

    特定の文字を含むシート名を、別のエクセルファイルに一覧化したいのですが、方法をお教えください! ■質問の詳細 「A.xls」、「B.xls」、「C.xls」というファイルにはそれぞれ8つのシートがあるのですが、そのうち、”test”という文字を含むシート名だけ、「X.xls」という集計用ファイルの「sheet1」のCell(4,2)に一覧化したいのですが、エクセルマクロを使用して実施する方法をお教えいただけませんでしょうか。

  • VBA(マクロ)を使わずファイル名の数字のみ抽出

    ファイル名の抽出方法は、ググったらわかりましたが、ファイル名からの数字のみ抽出する方法は可能でしょうか? =MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-5) =MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1))+1,FIND("]",CELL("filename",$A$1))-FIND("[",CELL("filename",$A$1))-5) 例: 123abc456.xls → 123456 sample123.xls → 123   マクロは考えていないです。よろしくお願いします。

  • excelでファイル名を自動入力する方法

    excelでファイル名をセルに自動入力する方法を探しています。 =MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-5) 上記の方法で自動入力可能なのですが、あとから同時に他のファイルを開いたりすると、そのファイル名がセルに入力されてしまい、困っています。 複数ファイルを同時に開いても、当該ファイル名を入力するようにはどうしたらよいでしょうか? 【詳細】 ファイル1.xlsのセルA1に上記式をセットしてある状態でファイル1.xlsを開くと、セルA1には「ファイル1」と入力されているが、あとからファイル2.xlsを開くと、セルの内容が「ファイル2」に変わってしまう。

  • VBA(Excel):他のブックからシートごと取込みたい

    他のブックからシートを取込む(シート名を変更して)VBAがわからないのですが、どなたか詳しい方がいましたら、ご教授下さいませ。 以下を例として、ご回答いただけると幸いです。 よろしくお願いします。 ---------------------------------- 次の3つのブックが存在するとします。 a.xls b.xls c.xls a.xlsにはシートが1つだけあり、シート名は"sheet1"です。 b.xlsにはシートが1つだけあり、シート名は"sheet1"です。 c.xlsにはシートが3つあり、シート名は"sheet1"、"sheet2"、"sheet3"です。 a.xlsにVBAマクロを作り、a.xls上で実行させて、 a.xlsの"sheet1"は残したまま、 b.xlsの"sheet1"のシート名を"sheet1-b"に変更して、 a.xlsのシートとして取込み、 同様に今度は、 a.xlsの"sheet1"、"sheet1-b"は残したまま、 c.xlsの"sheet1"のシート名を"sheet1-c"に変更し、 c.xlsの"sheet2"のシート名を"sheet2-c"に変更し、 c.xlsの"sheet3"のシート名を"sheet3-c"に変更し、 a.xlsのシートとして取込み、 最終的に、a.xlsには、 "sheet1"、"sheet1-b"、"sheet1-c"、"sheet2-c"、"sheet3-c" の、5つのシートが存在するようにしたいのです。 (各シート上のデータは、a.xlsの各シートとしてすべて移行されている) ----------------------------------

  • エクセルでブック間のシートの合体?教えてください。

    エクセルの作業で困っちゃいました。 同じホルダー内に 0210A.xls、sから0309A.xlsの12種類 0210B.xls、sから0309B.xlsの12種類 0210C.xls、sから0309C.xlsの12種類 0210D.xls、sから0309D.xlsの12種類 の48のブックがあります。(0210は2002年10月の意味です。) 各ブックは複数のシートを持っており、各ブックに共通してあるのは「AAA」、「BBB」、「CCC」の3種類で、それ以外のシートもあります。シートの順番は各ブックによりまちまちです。 これらのブックの共通する3種類のシートだけを合体して 0210AB.xlsから0309AB.xlsの12種類、(AとBの合体) 0210CD.xlsから0309CD.xlsの12種類、(CとDの合体) の24種類のブックを作りたいのです。 各ブックは「AAA」、「BBB」、「CCC」の3シートを持ちます。中身はオリジナルの各「AAA」、「BBB」、「CCC」の単純な寄せ集めです。 データは各シートとも1行目に項目、2行目以降にデータで、列はAF列まで使用しています。データの個数はまちまちで、オートフィルターを使用しています。 たとえば、0210A.xlsのシートAAAが200行であれば0210BのシートAAAのデータの一行目の項目は不要ですので2行目から最終行までコピーして201行以降に貼り付けるという感じです。同様にシートBBB、シートCCCも処理します。各シート1行目はオリジナルと同じ項目名とします。 手作業でやろうと思いましたが、誤りの発生もこわいのでVBAなどでうまくできる方法はないでしょうか?わたしのVBAの知識はマクロ自動記録ができるくらいなので助けてほしいのです。 Windows2000でエクセルも2000です。 よろしくお願いしま~す。

  • EXCEL:シート名を返す関数?

    アクティブシート名を返す関数ってあるのでしょうか。 ヘルプやネット検索で探してみたのですが見あたりませんでした。 とりあえず =RIGHT(CELL("filename"),(LEN(CELL("filename"))-FIND("]",CELL("filename")))) で、悪あがきしているのですが、 他シートで同じ式を使うと、何故か(!)すべてのシートの上式の答えが 同じになってしまいます。 CELL("FILENAME")は、1ブック1回しか使えない、とかあるのでしょうか。。 当方、EXCEL2000、WIN2000、利用者は素人(私)です。 できればVBAとかは使わず、関数で処理したいのですが、 皆様の御知恵をお借りできませんでしょうか。。

専門家に質問してみよう