参照を更新せずに貼り付ける(Microsoft Excel)
ワークシートで作業しているときに、ある場所から別の場所に情報をコピーおよび移動しているときに、Excelが選択範囲内のすべての参照を変更せずに、選択範囲をコピーまたは移動する方法があるかどうか疑問に思うかもしれません。もちろん、答えはそれが依存するということです。 (Excelのことだけが好きではありませんか?)Excelで選択範囲をコピーおよび移動する方法を見てみましょう。
選択範囲をコピーする場合、Excelは、選択範囲を貼り付けると、選択範囲内のすべての相対参照を更新します。もちろん、解決策は、コピーアンドペーストを行う前に、選択範囲内のすべての参照が絶対であることを確認することです。手作業で数式を変更するのは面倒です。次のマクロを使用して、選択したすべての数式を完全に同等のものに変換できます。
Sub ConvertToAbsolute() Dim c As Variant Application.ScreenUpdating = False For Each c In Selection c.Value = Application.ConvertFormula(c.Formula, _ xlA1, , xlAbsolute) Next c Application.ScreenUpdating = True End Sub
このマクロを実行すると、Excelが参照を更新しなくても、選択範囲をコピーして貼り付けることができます。貼り付けが完了したら、範囲を選択して次のマクロを適用することにより、選択範囲内の(および元の範囲内(まだ存在する場合は元の範囲内))参照を変更できます。
Sub ConvertToRelative() Dim c As Variant Application.ScreenUpdating = False For Each c In Selection c.Value = Application.ConvertFormula(c.Formula, _ xlA1, , xlRelative, c) Next c Application.ScreenUpdating = True End Sub
このマクロは、選択した範囲内のすべての数式をそれらの相対的な同等のものに変更します。これはすべての数式に影響することに注意してください。つまり、範囲内の数式に相対参照と絶対参照の両方が含まれている場合、このマクロを実行すると、それらはすべて相対参照になります。
選択範囲を移動する場合、Excelは移動中のセル参照を更新しません。範囲を選択してキーボード(Ctrl + Xを押して切り取り、次にCtrl + Vを押して選択範囲を貼り付ける)またはマウス(選択範囲を新しい場所にドラッグ)を使用して移動できます。
いずれの場合も、Excelは、更新せずに、選択範囲内の参照をまったく同じ(相対的かどうか)のままにします。
これまで、コピーまたは移動される選択範囲内の参照を使用してExcelが何を行うかについて説明してきました。選択した情報への参照はどうですか?コピーする場合、Excelは元の範囲を指す参照を残します。選択範囲を移動する場合、Excelは、相対的か絶対的かに関係なく、その選択範囲への参照を更新します。移動中に情報を更新したくない場合の解決策は、範囲のコピーを作成してから、元の情報を削除することです。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2033)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link:/ excelribbon-Pasting_without_Updating_References [参照を更新せずに貼り付け]
。