dポイントプレゼントキャンペーン実施中!

エクセルの名前の定義で質問です。 一つのファイルで定義した名前を、他のファイルにそっくりそのままエクスポートあるいはコピーできないものでしょうか。

ある分野の機器を、国別・機種別にデータ集計を取って、グラフにしています。
国は6カ国あり、一カ国ごとに1ファイルあります(例、France.xls、USA.xls、Japan.xls等)。
機種は8種類あり、それぞれの機種ごとにシートを設けているので、各国ファイルは各々8シートで構成されています。 (例 france.xlsファイルには、machine1, machine2, machine3・・のようにシートがある。)

各シートの構成要素は全く同じで、データ数値と、データ数がそれぞれ異なるだけです。

これらのシートは既に作成されており、前任者は毎月更新されるデータを表にいちいち貼り付けて、グラフ範囲も手作業で更新してきたようなのですが、更新する量が多いのでできる限り自動化したいと思い、グラフ範囲は、表の行が毎月増減するのに自動対応できるよう、Offset関数を使って表の名前を定義し、グラフもそれに合わせて自動更新できるようにしました(例 =OFFSET($S$5,0,0,COUNTA($S$5:$S$1000),1)のように)。

名前は各シートにつきグラフタイトル用、値1用、値2用と設定したので、1シートにつき3つ×8シート=24定義にもなっていまいました。 そして最初のファイルをとりあえず保存したのですが、残り5カ国のファイルも一つ一つ手入力で名前を定義しなくても、最初のファイルで設定した名前を他のファイルにコピーできないものかと思い、ご質問させていただいてます。 

各ファイルの構成要素は全く一緒なので、定義した名前とその範囲はみな一貫しています。 どなたか、一つのファイルで定義した名前を他のファイルにエクスポートできる方法をご存知でしたら、ご教授お願いいたします。 わかりづらい文面で申し訳ありません。

A 回答 (3件)

VBAで良ければですが。



基にしたいブックに下記コードを貼り付けて、変更の都度実行します。
実行する際は変更したいブックも全て開いておきます。
(半分ずつでもいいです)

Sub 名前の定義変更()
 Dim nam As Excel.Name
 Dim wb As Workbook

 For Each wb In Workbooks
    If wb.Name <> ThisWorkbook.Name Then
      For Each nam In ThisWorkbook.Names
         wb.Names.Add Name:=nam.Name, RefersTo:=nam
      Next
    End If
 Next
End Sub

貼り付ける所は、
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
を参考に”標準モジュール”という場所です。

実行方法は基になるブックを表示してAlt+F8キーを押し、
”名前の定義変更”を選択してOKです。
    • good
    • 10

こんにちは。



簡単にするなら、シートコピーすれば出来ます。
邪魔なデータがあるなら、それは消せばよいはずです。
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
シートは全ファイルにつき既に作成されており、過去データも各々入っているので、一つのファイルから別ファイルに今からシートコピーをするわけにはいかず、名前だけコピーできればと思った次第です。 
N-junさんの方法で解決しましたので、良かったです。

お礼日時:2008/08/30 00:46

ANo.1です。



>”名前の定義変更”を選択してOKです。
”名前の定義変更”を選択して”実行”でした。
    • good
    • 4
この回答へのお礼

素晴らしい! あっという間に解決しました。 n-junさん、ありがとうございます! 教えていただいたとおり実行したら、全てのファイルに同じ名前がコピーできました。 感動です。 本当に本当にありがとうございました。

お礼日時:2008/08/29 17:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A