• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シート名が重複する場合の処理について)

シート名が重複した場合の処理方法とは?

このQ&Aのポイント
  • Excel2010を使用している場合、他のブックから移動させてきたシート名が重複した場合の処理方法について知りたいです。現在の処理では、重複したシート名には(番号)が追加されますが、逆の状態にするための方法を教えてください。
  • 現在、Excel2010で他のブックから移動させてきたシート名が重複すると、自動的にシート名に(番号)が追加されますが、逆の状態に戻したいと思っています。例えば、<1111><1111 (2)><1111 (3)>のようになっている状態を、<1111 (3)><1111 (2)><1111>のように戻したいです。どのようにすれば良いですか?
  • Excel2010で他のブックから移動させてきたシート名が重複すると、自動的にシート名に(番号)が追加されますが、逆の状態にする方法を教えてください。現在の状態は<1111><1111 (2)><1111 (3)>ですが、<1111 (3)><1111 (2)><1111>に戻したいです。VBAでの対処方法があれば、初心者でも理解できるように教えてください。

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

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

>>これを逆の状態にするにはどのようにすればよろしいのでしょうか? 「逆の状態」になるよう、処理を「作れば」いい。 >>シート<例:1111>を他のブックから移動させてきた際、 >>シート名が重複していると自動的にシート名+(番号)が与えられ、 >><1111 (2)>と、さらに同じシート名を移動させてくると<1111 (3)>と処理されますが、 シートを他のブックから移動させて来る前に 移動させるシートの名前をチェックして 移動後のブックにも同じシートがあるなら そのブックのシートを「1111(2)」に変更して そのあとで移動させたいシートを移動させる ような処理を作ればよいです。 履歴管理も必要とのことなので 「1111(2)」「1111」がある状態の場合には 古いシートから順番に、さらに大きな番号に付け替えを行うような 処理もあわせて作る必要がありますね。 後は、「1111(2)」「1111(3)」のように、EXCEL側が勝手につけてくれる名前 を基にしてマクロ組むと、後々面倒な事になりかねない気はするので、 「1111[2]」「1111[3]」のような、プログラム側が履歴管理のためにやった事ですよ~ というような事が分かるよう、ちょっと変えておく事をおススメしておきます。

yamayama456
質問者

お礼

STICKY2006さん、早速の回答ありがとうございます。 貴重なヒントになりました。 でも、実際どんなプログラムを作ればよいか、、、 ちょっとまだハードルが高いので、引き続き、ご回答お待ちしております。 よろしくお願いいたします。

yamayama456
質問者

補足

シートは1111だけではなく、2222・3333・・・とたくさんあります。

その他の回答 (3)

  • CC_T
  • ベストアンサー率47% (1038/2202)
回答No.4

発想の転換したほうが簡単でしょう。 『処理が終わったら、<1111&日付>などにシート名を変更』としておけば、常に持ってきた<1111>シートに対して処理が行えます。ついでに言えばバックアップは別のブックにしたほうが作業ファイルの容量が減っていいと思いますけどね。

yamayama456
質問者

お礼

バクアップのアドバイス、ありがとうございます。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

発想の一つのヒントとして、簡単に流れを・・ その前に、人力で、手動でやるとしたらどうしようと思いますか? 「あ、同じ名前のシートがあるわぁ。  じゃ、もともとのシート名を変更して、  改めてコピーするかぁ。」 と言う判断と作業をしますよね。 これをマクロにしてやるだけです。 転記先のブックを「あ」、転記元のブックを「A」とします。 シート名変更後の古いシート名を「1111_数字」とします。 (「_」を使うのは個人的な趣味です。) 転記してきたばかりの最新のシートの名前は数字が常に「1」にするように考えます。 (つまり最新は「1111_1(ただし半角)」となるようにします) そうすると ・ブック「A」から転記したいシートを選択、シートの名前を変数に代入  きっと「アクティブなシートを」が一番やりやすいでしょうね。 ・ブック「あ」に変数に代入された数字を含む(1111を含む)シートが有ったら  「_数字」を「_数字+1」に変更する(Mid・Lenなどが便利かな) ・「A」の「1111」シートを「あ」に転記し、シート名を「1111_1」に変更 ごく簡単にこんな流れでしょうか。 何やら今までの回答の流れから、とりあえずヒントだけ。 少~し、考えてみましょうね^^;

yamayama456
質問者

お礼

確かに、皆さんヒントくださるんですが、 私の実力ではまだ形になってません。。。初心者なんで^^; Mid・Len ですね! 考えてみます。 ありがとうございます。

回答No.2

新しいブックに順序を考えて移動させる。 これをVBAでナントカする、、、

yamayama456
質問者

お礼

なるほどですね。 発想は湧いてきました! VBAでナントカする、、、が厳しいです><・

関連するQ&A