• ベストアンサー

Excelの各シートに自動的に名前をつけられませんか?

Excelの各シートのタグというんでしょうか(最初にsheet1とかになっている部分です)、ここにそのシート内にある所定のセルの内容をそのまま表示する方法ってありますか? 具体的にいうと、人事の個人別異動履歴等を個人ごとのシートで管理したいんです。 例えば、各シートのA1のセルに社員コードを入れるようにするとして、シート名を自動的にその番号にできないかと思っているんです。 可能でしょうか? よろしくお願いします。

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

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

#4です。お礼の中に記された >各シートの同じセルにあるデータをそのシートの名前にしたいんです。 この方が簡単です。 Sub test01() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ' MsgBox ws.Name ' MsgBox ws.Range("a1") ws.Name = ws.Range("a1") Next End Sub で出来ました。

keisukekun
質問者

お礼

なんとかできましたっ! ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.5

#3です。 回答ではありません。 >1ブックに許されるシート数には制限があります。 ちなみにExcelの仕様を調べてみましたら、  ブックのシート:  使用可能メモリに依存 (既定では 3) だそうです。 ただあまりひとつのブックに大量のシートを作ると、 ファイルが巨大になったり、 ふとした拍子にファイルが壊れそうで、精神衛生上あまり良くないですね。^^

keisukekun
質問者

お礼

たびたびありがとうございます。 Accessですか! 実はPCに入ってないんですよ。 でも確かにそっちの方が良さそうですね。 それと、現在のシート数は120くらいなんですが、今のところストレスなく動いてますよ。 でも多すぎるんでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

VBAで簡単です。 (テストデータ)A1:A3 山田三郎 野田和郎 川野寛 (プログラム) Sub test03() For i = 1 To 3 Worksheets.Add.Name = Worksheets("sheet4").Cells(i, "A") Next i End Sub (1)判りやすくするため3人分にしてテストしました。社員名をSheet4のA1:AXまでに漢字で入れてください。123 人であれば、For i = 1 To 123とします。 (2)名前をA列に入れたから、"A"となっています。 D列に入れたら"D"に変えてください。 (3)1ブックに許されるシート数には制限があります。 いくらだったか忘れました。 (4)VBAは、ALTキーを押しつつ、F11キーを押す。VBE画面が出たところで (5)ALTキーを押しつつI(挿入)次いでM(標準モジュール)出てきた画面に上記を貼りつける。 F5(実行)キーを押す。 同姓同名は困ります。なにか区別する方法を考えること。

keisukekun
質問者

お礼

詳しい説明をありがとうございます。 でも、やりたいこととちょっと違うみたいなんです。 1列にあるデータを取り込みたいのではなく、各シートの同じセルにあるデータをそのシートの名前にしたいんです。 でも、この方法も別のことには使えますね。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.3

こんにちは。 個人別異動履歴の個人ごとのシートは、もう出来上がっているものでしょうか。 すでに出来上がっているシート名を、 マクロで一括して変更したいならば、 #1,#2さんの処理をさらに For Each ~ Next でくくって、 全シートをいっぺんに変更する処理が必要ですね。 この場合、事前にシート名が重複しないかチェックしたり、 変更処理中にシート名のダブりが発生しないか、 入念にチェックする必要があるでしょうね。 これはどちらかというとアドバイスですが、 EXCELより、Accessが得意とする分野のような気がしますね。

全文を見る
すると、全ての回答が全文表示されます。
noname#11856
noname#11856
回答No.2

#1のats8181oyajiさんのおっしゃるようにActiveSheet.Nameでできます。 もっと簡単に、A1が書き換えられたと同時に変更しようと思えば Worksheet_ChangeイベントでTarget.Addressが"$A$1"の時だけ ActiveSheet.NameにA1の値を入れるようにすればいいですよ。

keisukekun
質問者

お礼

ありがとうございます。 さっそくやってみたいんですが、ちょっとトラブルがあってすぐにできません。 あとでこれを参考にやってみますね。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

こんにちは、ats8181oyajiです 結論から。。。できます。 ActiveSheet.Nameというのを使います。 実際に私がVisualBasicEditorでテストをした 関数を以下にのせておきます。 Sub test() MsgBox "アクティブ シート名: " & ActiveSheet.Name ActiveSheet.Name = "test1" MsgBox "アクティブ シート名: " & ActiveSheet.Name End Sub この例の"test1"を指定セルにしてあげれば よろしいかと思います。 では。

keisukekun
質問者

お礼

ありがとうございます。 さっそくやってみたいんですが、ちょっとトラブルがあってすぐにできません。 あとでこれを参考にやってみますね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル 別シートとの連携

    エクセル2003使用しています。 シートaの所定のセルに「山田」と記載したら、シートbの所定のセルに「●」が自動で表示される。 このようなことをしたいのですが、方法を教えてもらえないでしょうか。 よろしくお願い致します。

  • エクセルで管理コードを自動採番

    エクセルで、お客様からの問い合わせ履歴管理を行いたいと考えています。 問い合わせ1件をシートの1行として登録することを考えています。 その際に、その行の所定のセルに、管理コードを自動的に採番して表示させたいと思っているのですが、どういう方法を使えば実現できるのか、アドバイスお願いいたします。  例えば、コピー機の操作問い合わせ対応の業務で、お客様から問い合わせがあれば内容を1行に登録して、その行の管理コードセルに”ABC001”と自動的にセットしたいのです。 ABCはお客様コードで、001は単純な連番です。 さらに、そのお客様から別の2件目問い合わせがあれば、行追加するとその行にはABC002と自動的に表示されるということもできたら、と考えています。 ABCはその行の所定のセルに入力しています。  ABC ○○商会様 カートリッジ異常 ABC001 ・・・・・  DEF △△サービス様 トナー警告 DEF002 ・・・・・  ABC ○○商会様 続カートリッジ異常 ABC002 ・・・・・     このようなイメージです。  宜しくお願いいたします。

  • エクセル2003でシート1からシート2に・・・><助けて下さい

    おはようございます。 エクセル2003についてご教授くだされば幸いでございます^^。 例えばエクセルで基のデータの住所・郵便番号・マンション名がシート2に入っているとします。シート1の中でセルにマンション名を正しく入力すれば住所や郵便番号まで自動的にシート1に入力されるような設定はできるのでしょうか。 エクセルに関して詳しい方がいらっしゃいましたらどうかご教授願います^^。 よろしくお願いいたします。

  • エクセル 他のシートを参照に・・・

    エクセル2003使用しています。 シートaの所定の行に「山田」を含む文字を記載したら、シートbの所定のセルに「●」が自動で表示される。 (例えば山田君、山田太郎、家に帰った山田、など) これは可能でしょうか? よろしくお願い致します。

  • エクセルでデータを追加する方法

    エクセルで、同じセルに入力した内容を別のワークシートに 履歴として時系列に記録する方法(関数かマクロ)はありますか? (事例:試作品を貸し出しを管理する際、貸出先・貸出日・返却日を所定のセルに上書きしているが、その履歴を別のワークシートに自動的に書き込めるようにしておき、いつ誰に貸し出したかがわかるようにする。)

  • エクセルのシート1データをシート2に自動的したい

    エクセルのシート1の日々入力されてくるセルのデータをシート2のセルに自動的に入れていく方法を教えてください。現在は、上記シート1のデータを別帳票のシート2のセルに関数「’X月’!XXX」と入力しています。参考画像を添付したのでご確認ください。

  • エクセルについて教えてください。

    エクセルについて教えてください。 A、B、2枚のシートがあります。 Aには社員コードや氏名、住所や生年月日等の一覧を作成。 Bのシートの任意のセルに社員コードを入力すると 一定のセルにそのコードの人の情報を自動的に表示させる方法を教えてください。

  • エクセル/表引きの方法を教えて下さい

    エクセルで、セルにコード番号を入れたときに、その右横のセルに、別のシートに作ってあるコード一覧表を参照して、入力したコード番号の商品名を自動的に入れるにはどうしたらいいのでしょうか。 コードの一覧のシートに 1 A商品 2 B商品 … と作ってあって、 別のシートでセルに「2」 ←を入れると 2 B商品(←自動的に表示される) ↑ 入力 のようにしたいのですが。 いろいろ調べたのですが分からないのでよろしくお願いします。

  • エクセルで、番号を書いたら自動的に名前も出る方法

     エクセルで、ある社員寮の洗濯物の注文受付表をつくっています。  全部で60人もいるし、ときどき注文するものなので、全員の部屋番号と名前を書いているわけではありません。注文のある人だけ表に部屋番号と名前を書きます。  それを簡単にする方法を考えています。 1、あるセルに部屋番号(101など)を書いたら、右隣のセルに名前が自動的に書き込まれるといいのですが、そういうことはできますか? 2、または、一つのセルに部屋番号と名前を書いて、部屋番号を書いたら自動的に名前が出るようにしてもいいとおもうのですが、そういう方法ってありますか?  よろしくお願いします。

  • エクセル2010(他も可)でこんなことできますか?

    エクセルは仕事でちょっと使ってるだけで、関数・グラフは全く分からないです。 そんな自分ですが、エクセルでデータの管理をするのに困っています。 仕事で、個人名・部署名・社員番号・・などなど、様々な用途でいくつものフォルダ・シートの表に記載しているのですが、異動・入退者などあると、作成した各々のシートをその都度直さなくてはいけません。 そこで、   ・ひとつのシートにマスタのように全ての情報を入力して、他のフォルダ・シートで表を作成したときに関数な  ど使用して、マスタからデータを読んでくることはできますか?   例えば、Aのシートに社員番号・部署・個人名・住所・電話番号・資格などをすべて載せておいて、   Bのシートで、住所だけを管理したいので、社員番号・個人名・住所だけをAから読んでくる・・みたい  な。 もしできなくても、他に何かよい方法があれば教えてください!!

専門家に質問してみよう