• 締切済み

Excel 複数のシート名を一括変更できる名簿作り

Excelでシート名を変更する際、特定のブックの特定のセルに文字を打ち込むと、他の全てのブックのシート名が一括で変更されるようにすることは可能でしょうか。 例えばですが“名簿”というブックの「A1~A5」に文字を入力すると、他の全てのブックの「Sheet1」には“名簿”ブックの「A1」に打ち込んだ文字が反映され、「Sheet2」には“名簿”ブックの「A2」…と、一括で変更できる方法はないかと思っています。 他の全てのブックは一つのフォルダの中に集約します。 また、ブック名だけ変えて中身は原本のコピーをしていきます。 3000を超えるブックを作るので、変更をすることになった時は全て手作業になるかと思うとゾッとします…。 調べていると、VBAというものを使いそうというところまで分かったのですが、こことはカテゴリが違っていましたら申し訳ございません。

みんなの回答

  • yokomaya
  • ベストアンサー率40% (147/366)
回答No.4

ご要望どおりののものを回答したのですが、返答ありませんね。 回答内容がわからないとかでしたら、どの部分とかおっしゃっていただけたらと。

  • yokomaya
  • ベストアンサー率40% (147/366)
回答No.3

こちらこそ、申し訳ありません。 ただ、いまだに理解できないのは出来上がってしまっているものの シート名を変える意図です。 例えばアンケートなど多数にこれから配布予定の、シート名が適切で なかったというようなケースとか。 まず、以下を名簿ブックの標準モジュールに貼り付け実行して、Sheet2にファイル名を取得します。(同一ディレクトリの保存のこと) Sub getname() Dim s As String s = Dir(ThisWorkbook.Path & "\*.xls", vbArchive) While s > " " If s <> ThisWorkbook.Name Then Sheet2.Range("a10000").End(xlUp).Offset(1, 0).Formula = s End If s = Dir() Wend End Sub 次にSheet1の右クリックからコードを表示して以下を 貼り付ければ期待の動作はするかと。 責任はもちませんけどね。 Private Sub Worksheet_Change(ByVal Target As Range) Dim ro As Integer, wb As Workbook If Target.Column = 1 Then If Target.Row < 6 Then ro = 1 Do Application.StatusBar = ro & "件目 シート名変更中" Set wb = Workbooks.Open(ThisWorkbook.Worksheets(2).Cells(ro + 1, 1).Text) wb.Worksheets(Target.Row).Name = Target.Text wb.Save wb.Close ro = ro + 1 Loop Until ThisWorkbook.Worksheets(2).Cells(ro + 1, 1).Text = "" Application.StatusBar = "" End If End If End Sub

  • yokomaya
  • ベストアンサー率40% (147/366)
回答No.2

>一つ一つのブックを変更することはできませんので これの理由を明らかにされることが第一歩かと思います。 ブックを開くという事は単にセルへのアクセスと比較して数百倍以上の時間を要して実用的でないことは、はなから明白とおもいますから。 つまりご要望の実現はけして無理なことではありませんが、無駄なことに労力を費やすことは、コンピュータを何のために使うのかという根本的発想に逆行していると思いますので。

20090108
質問者

お礼

一つ一つのブックを変更することができない理由は、一つ一つのブックが既に“完成されたもの”であるからです。 「できてしまっているから変更したくない」ではなく、「これ以上贅肉を削げない状態」なのです。 私の説明が不十分でした、すみません。

20090108
質問者

補足

構想に関しては、社の問題ですのでここで議論は避けたいと思っていますのでよろしくお願いします。 「シート名が一括で変更できるかどうか、可能ならその方法を行う」。ここでの質問はこれに止めたいと思っております。困難であれば手作業で行っていく次第です。 お心遣いありがとうございます。

  • yokomaya
  • ベストアンサー率40% (147/366)
回答No.1

期待される答えではないのですが一つの命題で三千のブックという時点で基本構想の致命的な構造誤りが疑われます。 一つのシートには(2003の場合で)1600万セルがあり、1ブック1シートでも500億セルも使った処理って普通ではありません。 三千は行に割り当て、構想を再構築できませんか?

20090108
質問者

お礼

回答ありがとうございます。 “シート名”を変更する処理を行うことは、同時に全てのセルへの処理を行うことになってしまうということでしょうか。 「“名簿”というブックのA1セル」に打ち込んだ文字が「他のブックのシート名にリンクされる」という処理と考えていたので、ブック間のリンクの感覚でいました。シート名にはセルのようなリンク機能がなさそうなので残念です。 基本構想の欠陥だとは思いつつも、一つ一つのブックを変更することはできませんので、他の回避方法も無い状態です。 一括で変更できる方法があれば便利だと思ったのですが、難しいようであれば、変更しなくてはならない時期がきたら社員50名程で手分けをして手作業で変更をするようにします。

関連するQ&A

  • エクセル2002 複数シートの一括変更

    エクセル初心者ですので、説明が長く解りづらいと思いますが、困っていますので回答よろしくお願いします。 「名称」「所在」「日付」の共通した項目のある複数のシート「Aシート」「Bシート」「Cシート」を一つのブック(仮にファイル名ブック1とします)にまとめています。AシートのA1セル、BシートのA1セル、CシートのA1セルに同じ項目(名称・所在・日付)を入れたい場合、1回の入力で全てのシートの同一項目が変更できるようにBシート、Cシートに「=Aシート!A1」の式を入れ、AシートのA1セルに名称等を記入すればBシート、Cシートの同一項目も一括して書き換わるようにしています。 同一ブックで使っている分には、上記の方法で共通した項目を一括変更できるのですが、別のブックからシートをコピーした場合、「=Aシート!A1」の式がかわってしまいコピーしてきたシートの項目だけが変わらない状態になります。 例えば、ブック1と書式が同じブック2(シートA’、シートB’、シートC’の複数シートで構成され各シートはブック1のシートA・B・Cと同じ書式)がありブック1にブック2のシートB’をコピーした場合シートB’のA1セルは、「=[ブック2.xls]Aシート!A1」となり自動的にこのシートの項目が変換されません。このとき、[ブック2.xls]の部分だけを毎回消して使っていますが、シートが増えると作業時間もかかりますし、複数のスタッフで使う場合この使い方をそれぞれに説明する必要があり困っています。 解りづらい説明で申し訳ありませんが回答よろしくお願いします。

  • フォルダ内にある複数ブックのシート名の変更

    エクセルのVBAについて質問させて下さい。 現在、アクセス2000でクエリをマクロのワークシート変換で 規定のエクセルブック(2000)にエクスポートしています。 項目別なので30以上のブックになっています。 これを毎月の更新で12ヶ月分エクスポートします。 問題なのがクエリ名がシート名になっていますが、このシート名を 月によって変更したいのです。ブックが30以上あるので手作業では 自分1人の作業だとやってしまうのですが、不在時に他の人にやって もらうには無理があるかなと・・・。 イメージとしては、マクロブックのコマンドボタンを押すと そのフォルダにある30以上のブックの一番右にあるシートを マクロブックのセルA1に入力した月に変更し、変更したシート内の 1行目の項目名の長さに合わせてセルの幅を変更し、項目名に色をつけるというイメージです。 今までは2項目くらいだったので手作業でやっていたのですが、 30以上になると手作業ではつらい状況です。 VBAは初心者なので答えをいただけると大変ありがたいです。 よろしくお願いします。

  • EXCELのシート名を一括変更するマクロ

    マクロの超初心者ですが、EXCELのシート名を一括変更するマクロを考えてます。 例えば、1つのBOOKで「1」~「31」までの名前が入っているシートを予め用意しておいて、マクロを実行するとメッセージボックスがでてきて、そこに200806と入力するとシート名の「1」が『20080601』に、「2」が『20080602』という感じで31日分自動でできるような方法はないでしょうか?いつも手入力でやっていて大変なので、なにか方法があれば教えて欲しいです。お願いします。

  • シートをコピー、シート名を変更

    Windows8でExcel2000を使っています。 こういうマクロはどう書けばいいんでしょうか? 同一ファイル内で、シートを複数枚コピー。 複数選択したセルに入力された文字列を、上記でコピーされたシート名に反映したい。 「原本」というシート名のシートがあり、それを元に一年分の表を作りたいのですが 今は手で11枚コピーを作った後1枚ずつ名前変更でやっています。 シート名にしたい文字列は現在なら「2015年01月」~「2015年12月」です。 セルに「2015年01月」~「2015年12月」を入力、選択した後マクロ実行で シート名変更に反映できればありがたいです。

  • エクセルVBAで複数のファイルをひとつにまとめる

    はじめまして。 VBA初心者で恐縮なのですが、教えてください。   ブックAAAがあるフォルダ内に複数ある「***.xls」の全てのフイルのシート「A」内の特定のセル(A1:F30)の文字列を、全てブックAAAの1つのシートの特定の列(A:F)に重ねてまとめたいと思っています。 但し、シート「A」は非表示となっていて、また、「***.xls」のファイルは全て「ブックの保護」がかかっているため、シート「A」を表示させるためにはパスワードの入力が必要となります。 これをVBAを使って実行することは可能でしょうか。複雑で手に負えず行き詰っています。 どなたかご存知の方いらっしゃいましたらご教授願います。 エクセル2007を使用しております。  

  • 複数のExcelファイルの印刷設定を一括に変えることはできますか?

    1000ブック以上のExcelファイルが手元にありまして、これらの印刷設定をすべて変更しなければならなくなりました。 (実際に印刷はしません。設定をA3横1枚に合わせるだけです) 手作業で1ブックずつやっていくとかなりの手間なのですが、一括で設定を変更し保存する方法はないでしょうか? なお1ブックにつきSheet1・Sheet2・Sheet3がありますが、 2と3は空シートで、設定を変えたいのはSheet1だけです。 また、必要ならファイル名を連番にすることもできます。 ご教示のほど、よろしくお願いいたします。

  • EXCEL シート名を自動変更するマクロ

    いつも御世話になっています。 質問内容ですが、特定セルに入力した値を特定のシート名に反映させるマクロについてです。 例えば、 Sheet1のセルA1に「会議室」と入力した場合、Sheet5のシート名が「会議室」となり、 Sheet1のセルA2に「休養室」と入力した場合、Sheet7のシート名が「休養室」となる。 というようなものです。 (※Sheet番号は連番になっていません) なお、シート名変更用の入力シートはSheet1のみです。 できれば、各シート名を変更する際、以下のようにしたいと考えています。 Sheet5 元シート名:負荷計算(1)            ↓ Sheet5 変更後シート名:"Sheet1のA1で入力した名前" 負荷計算    教えて頂けると助かります。 宜しくお願いします。

  • Excel VBA 複数シートを各シート名で保存

    Excel VBA で、複数シートを各シート名で保存したい場合はどうすればいいでしょうか? シート名が、[フォーム] [A社] [B社] [C社] [D社] … というBookがあります。 [フォーム]シートを除く他のシートを、シート名をそのままファイル名にして、 それぞれ別ファイルで保存する場合、どのように記述すればいいのか どなたかおわかりになりましたら、教えてください。 よろしくお願いします。

  • エクセルのプリンター一括出力で

    お世話になります。 エクセルでブック内に複数のシートがあるのですが、複数のシートまたはブック全体を一括して出力する際、プリンターのプロパティを変更して出力しても、その変更したときに表示されていたシートのみが反映されて、複数のシートに反映されません。 (たとえば、ブック全体を両面印刷したい場合など。) 一括して、プリンターのプロパティーを変更するにはどのようにしたらいいのでしょうか。 どなたかご教示ください。

  • Excel 閉じているブックのシート名を変更する方法

    いつもお世話になります。 Excel2002を使用しています。 ブックAを開き、ここから閉じているブックBのシート名を変更することは可能でしょうか? 理想としては、ブックA上のボタンをクリックしたときに、閉じているブックBのシート名が変更できれば・・・。 変更する名前は常に同じものでOKです。以上、よろしくお願いします。

専門家に質問してみよう