[[20170104175710]] 『セルの式を別のシートに引き継ぐ方法(VBA)』(とーり) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルの式を別のシートに引き継ぐ方法(VBA)』(とーり)

お世話になります。

VBAで「入力」シートを「2016」と名前を変更し、新たな「入力」シートを作成するプログラムを作ったのですが、別シートで「入力」シートを参照していた式が「2016」シートを見るようになってしまいました。

別シートの参照を新たに作った「入力」シートに引き継ぐ方法が分からず困っています。
リンクの自動更新などを停止する方法などがあるのであればご教授願えればと思います。

年も明けたばかりで忙しいことかと思いますがどうぞ宜しくお願いいたします。

※「入力」シートはテンプレートをコピーしているので型はすべて同じです。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 >>VBAで「入力」シートを「2016」と名前を変更し、新たな「入力」シートを作成するプログラム

 このコードを、そのままコピペでアップしたほうが、より的確で間違いのない回答が寄せられると思います。

 ただ、これを問題なく手作業でやろうとしたらどうしますかね?
 手作業でできないことはVBAでもできないですから。
 うまく手作業でもやれる手順を考えるのが先決だと思います。

 おそらく・・・・VBAで、小細工するより、式そのものを、たとえば、今
 =入力!A1 といった指定があると思いますけど、これを =INDIRECT("入力!A1") といった式に変更するほうが
 簡単だと思いますけど。

(β) 2017/01/04(水) 18:26


シート名を変更する前に参照している式を一旦文字列にされたら如何でしょうか

 ホーム→検索と選択→置換
 ダイアログの置換タブをクリック
 検索する文字列(N) → =
  置換後の文字列(E) → スペースキー と =

 これで式が文字列になりますので、この後参照先のシート名変更
 変更後にもう一度置換を行う
 スペースキーと=入力 を =2016  に置換

 既に参照先が2016に変化してしまった所は、同じ要領で
 2016 を 入力  に置換
 この場合、参照シート名に限らず"2016"の文字があれば"入力"に変化してしまうので1セルづつ行うのが
 無難と思います

 手作業で行う方法ですが、これをマクロで という事でしょうか?
(感Feel) 2017/01/04(水) 18:56

 手順を変えればいいんじゃないですか?

 今までの「入力」シートをコピーして、そのシートの名前を「2016」に変更する。
 ※これなら、別シートの数式は変化しません。

 その後、今までの「入力」シートをクリアでもなんでも好きなように変える。

 コードとしては↓

     Sheets("入力").Copy before:=Sheets(1)
     Sheets(1).Name = "2016"

   ’このあと、「入力」シートを新しい構成に変える。

(半平太) 2017/01/04(水) 21:20


βさん、感Feelさん、半平太さん、回答ありがとうございました。

半平太さんのおっしゃる通り手順を変更する事にしてうまく動作させることができました。

忙しい中、回答ありがとうございました。
(とーり) 2017/01/04(水) 23:27


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.