こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

【エクセル】数式だけコピーする方法

はじめまして。

・エクセルのファイルが10あります。
・ファイル(シート)の内容は、入力されているデータ(数値)は違うものの、フォーマットは全て一緒です。
・ちなみに、現在のシートには数式は一切含まれていません。
・そのシートの決まった数百カ所に、新たに数式を記述し、データの足し算引き算などをしたいと思います。
・なお、数式を入れていく決まった箇所は、同じ行や列ではなくてバラバラの行や列にになっております。
・10シートあるため全てに数式を記述していったら膨大な作業になります。なので、ひとつのシートに数式をいれて完成させたら、他のシートとフォーマットは全く一緒なので、完成したシートの数式だけを他の9ファイルに一気にコピーしたいと考えてます。

現在、形式を選択して数式だけの貼り付けを行ってみても、データ(数値)も一緒に変化してしまいます。

どのようにすればよいか、途方に暮れておりますので、アドバイスを頂ければと思います。

投稿日時 - 2005-10-25 15:07:19

QNo.1734974

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

こんばんは。

>・なお、数式を入れていく決まった箇所は、同じ行や列ではなくてバラバラの行や列にになっております。

それは、一定の列や行ではない、っていうことですね。

マクロは、望まれているのかは分りませんが、簡単なコードで書くと以下のようなものでもよいかと思います。式の元となるシート(Sheet1)としますね。そのブックの[標準モジュール]に以下のコードを貼り付けます。

次に、コピーするブックを開いて、ワークシート上から、Altキーを押しながら、F8 で、マクロダイアログを開きます。

その窓の中から、「ブックの名前!CopyFormulas」 という名前をクリックすればよいです。

'標準モジュール登録
'-----------------------------------
Sub CopyFormulas()
Dim Wb As Workbook
Dim sh As Worksheet
Dim rng As Range
Dim c As Range
 Set Wb = ActiveWorkbook
 Set rng = ThisWorkbook.Worksheets("Sheet1").UsedRange.SpecialCells(xlCellTypeFormulas)
'Sheet1ではなかったら、書き換えてください。
 For Each sh In Wb.Worksheets
  If Not (sh.Name = ThisWorkbook.Worksheets("Sheet1").Name _
   And ThisWorkbook.Name = Wb.Name) Then
   For Each c In rng.Cells
    sh.Range(c.Address).FormulaLocal = c.FormulaLocal
   Next c
  End If
 Next
End Sub

'----------------------------------------
元の式のあるシートは、必ず数式が入っていないと、このマクロはエラーを出します。

投稿日時 - 2005-10-25 22:09:08

ANo.3

>フォーマットは全て一緒です といっておきながら
>数式を入れていく決まった箇所は、同じ行や列ではなくてバラバラの行や列にになっております
はどう解したらよいのでしょう。
式を張りつけて有効なのは、頭のイメージで同じというのでなく、式を入れる行列が相互で同じ位置でないと値がおかしくなるのは値前ではないでしょうか。
シート間で、それ(式を入れる行と列)を統一してから、貼り付ければ良いのではないですか。
勘違いであればお許しください。

投稿日時 - 2005-10-25 21:12:32

ANo.2

ちょっと面倒ですが、数式のみのシートを作成します。
まず数式のあるシートをコピーして、新しいシートに貼り付けます。
F5キーを押して「セル選択」で「定数」を選択して「OK」
DELETEキーで定数(文字、数値)をすべて削除してください。
このシートをコピーして、別のシートに「編集」「形式を選択して貼り付け」で「空白セルを無視する」で「OK」で数式のみコピーできます。

投稿日時 - 2005-10-25 15:35:27

お礼

ありがとうございます。
その方法でもイケそうですね。
今は以下の方法を思いついたので、やってみてます。
・10ファイルのシートを全てひとつのシートにあつめる
・シートを全て選択して、ひとつのシートに数式を入れていく
・そうすると全シートの同じところに数式が入る
・それを、10ファイルに再び戻す

という感じです。
もっと効率のよいやり方があるかもしれませんが、
とりあえず、目的のことは達成出来そうです。
ありがとうございました。

投稿日時 - 2005-10-25 15:47:40

ANo.1

シートの複写では駄目ですか?

投稿日時 - 2005-10-25 15:11:11

お礼

早速のご回答ありがとうございます。
シートの複写をしますと、何千行に渡るデータが消えてしまうので、ちょっと難しいです。。。

投稿日時 - 2005-10-25 15:34:47

あなたにオススメの質問