• ベストアンサー

Excel2013名前の定義のあるシートコピー

いつもお世話になっております。 Excel2013で名前を定義してあるシートがあります。 1シートに現在12箇所ほどあります。 これを、毎週コピーして1年ほど使用する予定ですが、毎週12個名前の定義が増えていきます。 これだけを考えても1年で約600ほど名前の定義が増えてしまいますが、これはそれほど気にする事はないでしょうか? (VBAで必要な時に名前を定義して、最後消去する方がよいのかな?とも思いましたが、位置の取得が難しかったので。(分かる人ならすぐに出来ると思いますが)問題ないならこれでいきたいです。) すいませんが、ご教授お願いいたします。

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

  • ベストアンサー
回答No.3

こんにちは。 ふつう、ExcelやVBAのベテランさんですと、名前の定義が600ほどになると聞いたら、さすがに疑問を感ずるのがふつうです。もう、そういう時代ではない、全ては変わったのだ、と断言出来る人がいるなら、こちらも引っ込むしかないのですが、基本的な設計自体は、昔も今も変わっていないはずです。 以前にも書いた、日経BP21の芳坂さんのコメントを出すまでもなく、名前定義というのは、なぜかトラブルが起こりやすいのです。たぶん、名前定義の親オブジェクトが、多数あるからだと思うのです。逆に、そういう親オブジェクトのない名前定義という方法があったと思います。 逆に、VBAからすると、名前定義というものは、それほど必要ではないのです。 私は、何千というコードでも、名前定義を使った記憶が数回しかありません。それも、昔、上記の芳坂さんのコードと似たようなもので、全シートの名前登録の消去マクロを作っただけです。 VBAでは、 Application →Workbook →Worksheet(Sheet)→Cells と、数珠つなぎで、コンテナ・スタイルを使う限りは、変わることはありません。VBAには、CurrentRegion や Find メソッド、ワークシート関数などの検索コマンドが用意されています。 >毎週12個名前の定義が増えていきます。 つまり、これがひとくくりになるわけですよね。それを名前定義として必要なのかは、正直分からないのです。名前定義の位置自体が移動するのでしょうか? >毎週コピーして1年ほど使用する予定です これって、名前定義のダミーが増えますよね。 これは、確か、フォームコントロール・オブジェクトも同じような問題を持っていたはずです。 シートコピーではなく、新規でシートを挿入して、そこで、必要事項をコピーするという形にすれば、問題は減るはずです。 外部の者が何か意見をいうのは良いとは思いませんが、今の話のままでは、あまり良い方法とは言えません。少なくとも、残骸を作らない方法を考えなくてはならないと思います。

hinoki24
質問者

補足

そうですか、難しいですね。 別の人が使うんですが、ある範囲の行はAさん、その下はBさんというように範囲指定をしているのですが、どうしてかというと、行をふやしたり減らしたり変動して使うという事だったので、初心者には名前をつけて行の増減に対応するしかやり方が分からなかったのでそうしました。 技術があれば何とかできるかもしれませんが、なかなか難しいですね。 フォームコントロール・オブジェクトなどもそうですね。 好ましくないという意見ありがとうございます。 それを踏まえて、技がないんで今のを改善というわけにはいかないんですが、名前の定義の問題の認識だけはしておいて今後に役立てたいと思います。。

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

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

原本のシートに、名前定義をシートレベルで登録しておけば、それほど心配する必要は無いんじゃないかと推測します。 原本シートのオリジナル作成時に登録した名前、また後にマクロ等で追加した名前についても、しっかりブックレベルとシートレベルを管理してください。 そもそも作業開始時に、ゴミが残っていないようキチンと掃除してください。 また、後工程で名前を使用する際も、同様にブックレベルとシートレベルを正しく意識してマクロ等を作成してください。

すると、全ての回答が全文表示されます。
  • black2005
  • ベストアンサー率32% (1968/6046)
回答No.1

>1シートに現在12箇所ほどあります。 1BOOKに12シートあるってこと? で、1年で12シート×52週で600シートほどになるってことかな? 1BOOKで作成可能なシート数は最大255シート。 仮に255シートも作ったら、とても管理は無理。 週単位で1BOOKにするか、せめて月単位で1BOOKでしょ。

hinoki24
質問者

補足

すいません、そうではなくシート数は、週に1枚なので月に訳4枚ずつ増えるので4×12=48枚とデータシートなどで60枚ほどです。 600というのは、12個ほど定義した名前があるシートを最終的に48枚作ったとして、12×48=576個の名前の定義になるという事です。 わけのわからない名前の定義が大量にあるファイルもたまにあるので、600ほどなら問題ないのかな?とも思ったけど、その他印刷の設定の定義だとか、色々な人が使うとよそからコピーとかした時にいらない名前がもっと大量に増える可能性も考えられるので、ちょっと気になったので質問させていただきました。 どうなんでしょうか?

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

関連するQ&A