• ベストアンサー

Excel2003で式のコピー

下記質問のやり直しです。 http://oshiete1.goo.ne.jp/qa5310983.html 実際に使用する式の作成のためにサンプル表を作って練習してます。 A1(=$B$1*5+$C$1/5+$D$1+10) B1(5) C1(60)   D1(20)                     B2(=B1*5) C2(=C1/5) D2(=D1+10) 目的はA1に=$B$1*5+$C$1/5+$D$1+10を貼り付けたいのです。B2,C2,D2の式を順番にA1に貼り付けたいのですが、絶対参照は置いといて、B2はクリック、コピー、形式選択、数式でA1に=B1*5は貼り付け出来ますがC2、D2を追加で貼り付け出来ません。A1に手入力ではなく、作成済みの式をコピーする方法が知りたいです。 又、作成済みの式の相対参照を一括で絶対参照に変更するにはどうしたら良いのでしょうか? どうぞ宜しくご教示下さい。

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

先の質問ではよく理解できませんでしたが 作業列を利用してるんだけど作業列を削除したいので そこにある式をA1にコピーしたいと言うことですね。 > 式の相対参照を一括で絶対参照に変更するにはどうしたら 式のセルの指定(B1とか)を選択してF4を押してください。 > A1に手入力ではなく、作成済みの式をコピーする方法が知りたいです。 先にコピーしたいセルの式のイコール以外をコピーしてからA1を選択し貼り付けていきます(セルをダブルクリックしてコピー作業をします) もしくは ALTとF11を同時に押してVBEを起動します。 左のSheet1をダブルクリックします 左に現れた白い画面に 以下のコードを貼り付けます ツール→マクロ→マクロで sheet1.test というのを実行します。 注意:セルの指定をしているところは実際にセルにあわせてください。 Sub test() Dim MyRange As Range Range("A1").Formula = Range("B2").Formula For Each MyRange In Range("B2:D2") Range("A1").Formula = Range("A1").Formula & "+" & Right(MyRange.Formula, Len(MyRange.Formula) - 1) Next End Sub

sapporolov
質問者

お礼

式の=より後ろをドラッグして、F4を押せば絶対参照になりました。 有難う御座いました。

sapporolov
質問者

補足

有難う御座いました。判りにくい質問で申し訳御座いませんでした。 >式のセルの指定(B1とか)を選択してF4を押してください。 これは式を作成する時の作業ですね。出来上がってる式で相対参照のものを絶対参照に変更する方法はあるのでしょうか? マクロに付いてはもう少し調べてから疑問点は追加質問致します。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

>作成済みの式の相対参照を一括で絶対参照に変更するにはどうしたら良いのでしょうか 余りやったことはなかったが(ということは、たくさん関数の回答しているので、一般的に余りニーズが無いということ)やってみると 例 A2に=A1+B1 と入れる A2を選択して、数式バー部で、全ての文字を選択して、F4キー =$A$1+$B$1 なった。 複数セルを1度に絶対番地化は出来ないようだ。 ーー >B2(=B1*5) C2(=C1/5) D2(=D1+10)から A1(=$B$1*5+$C$1/5+$D$1+10) の式作る そう考えないで普通はA1に=B2+C2+D2と入れると思うよ。 =B$1*5+$C$1/5+$D$1+10 とする必要性は何か。どちらが判りやすいかともいえないと思うし。 私が前の説明に書いたように、関数で値が出ているセルの、手入力 で入力されているせるも、それらを次の段階で式に使うときは、同じ扱いです。 どうしても式を残すなら 数式バー部で、順次コピー張り付けするほかない C2に=A1+A2 C3に=A2+B2 の時 C2を選択、数式バーブで全ての文字を選択して、CTRL+V ESC C6を選択 CTRL+V  =A1+A2になる。 C3を選択、数式バーブで=を除い他部分を選択して、CTRL+V C6を選択 最後尾の次に+を入力 CTRL+V  ENTER で =A1+A2+A2+B2 の式が出来る。 これ以上はVBAを使わないと、簡単な方法はないと思う。 ーー 今ひとつ、質問の目的が、つかめていないかもしれない。

sapporolov
質問者

お礼

皆さん、有難う御座いました。 Excelの理解不足なのでしょうが、もっと簡単な処理で解決できる問題かと思ってました。 お世話になりました。

  • shorun
  • ベストアンサー率42% (133/310)
回答No.5

A1にその式を入力しなければならない理由を私が知る必要ありませんが 何か事情がお有りなのでしょうね。 私なら特に理由がないので合計値を求めるために、先ず次の式を入力します。  =B2+C2+D2     または  =SUM(B2:D2)  「この方がB2C2D2*****K2など多数の場合に =SUM(B2:K2)で入力簡単」 次にもし必要なら、欄外またはA2に註として、「A1はB2からD2の合計」と表示します。 このメリットは もし必要があってA1の式の内容を見た場合に =B1*5+C1/5+D1+10 では一目でB2からD2の合計であるとは全くわかりません。 =SUM(B2:D2) なら一目瞭然で合計だと理解できます。 更にB2,C2,D2をクリックすればそれぞれ B1*5,C1/5,D1+10であることも確認できます。 以上質問に対する直接の答えになっておりませんが参考までに。

回答No.4

マクロでやらないなら以下のような手順でしょうか。 (1)対象シートをコピーします。以下、コピーしたシートでの作業です。 (2)2行目を選択して「編集」-「検索」で「検索と置換」を表示し、置換タブで検索する文字列に「=」、置換後の文字列に何も入力せず「すべて置換」を実行。  #これによって各セルに”=”なしの式の文字列が表示されます。 (3)B3に「=B2」を入力し、C3:K3を選択して「=B2 & "+" & C2」をCtrl+Enterで入力。  #これによってK3に各式を+した文字列が作成されます。 (4)K3をコピーしてA1に値貼り付けし、先頭に「=」を付け加える。 (5)A1の式を編集状態にし、文字列全体を選択してF4で絶対参照に変換する。 (6)この式をコピー元のシートのA1にコピペします。 以上です。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

再度訂正 For Each MyRange In Range("B2:D2") ↓ For Each MyRange In Range("C2:D2")

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

訂正です 左に現れた白い画面に ↓ 右に現れた白い画面に

関連するQ&A

  • EXCEL2007について質問です

    $B4*C$1の数式をコピーするとき、以下の質問に答えてください。 質問1:$B4のように列は絶対参照・行は相対参照の組み合わせの場合は、B(列)は絶対参照だからBを必ず参照し、行は相対参照だから数式が入力(コピー)されたセルを基準として、数式が入力された行と同じ行のセルを参照する。 つまり上記から、$B4をコピーする場合、必ず「B列の中で数式が入力された行と同じ行を参照する」、こういうことでしょうか? 質問2:C$1のように、列は相対参照・行は絶対参照の組み合わせは、C(列)は相対参照だから数式を入力(コピー)した位置を基準として、数式が入力された列と同じ列のセルを参照し、$1は絶対参照だから、必ず1行目を参照する。 つまり上記から、C$1をコピーする場合は、必ず「数式を入力セルと同じ行番号の1行目を参照する」、こういうことでしょうか?

  • EXCEL2007の条件付き書式について

    数式にて条件を指定したのですが、 数式、適用先ともに参照する箇所を相対参照にして式を入力し終えるのですが、 コピーがうまくいかないので条件付き書式の設定を見ると絶対参照に戻ってしまっています。 何度相対参照に修正しても絶対参照に戻ってしまいコピーが出来ません。 条件付き書式を相対参照にしてコピー出来る様にする方法を教えて頂けないでしょうか。 よろしくお願いいたします。

  • 【Excel】数式のコピー

    Excel2003を使用しています。 他人が作成した表の行数を増やして、数式もコピーしたいのですが、その数式は別シートを参照していて、行・列が連続していないので、単純にコピー → 貼り付けでは、正しい数式を貼り付けることができません。 現在は、とりあえず、コピー&貼り付けした後に、数式を修正しているのですが、規則性があるので、手作業で数式を修正する以外に何か良い方法はないでしょうか? Sheet1…参照するシート Sheet2…数式が入力されているシート Sheet2に入力されている数式は  C7 = Sheet1!B7  D7 = Sheet1!C7  E7 = Sheet1!D7  F7 = Sheet1!E7  G7 = Sheet1!F7  H7 = Sheet1!G7  I7 = Sheet1!B8  J7 = Sheet1!C8  K7 = Sheet1!D8     :     :  C16 = Sheet1!B25  D16 = Sheet1!C25  E16 = Sheet1!D25  F16 = Sheet1!E25  G16 = Sheet1!F25  H16 = Sheet1!G25  I16 = Sheet1!B26  J16 = Sheet1!C26  K16 = Sheet1!D26 以上が1ページ分で、C列~H列、I列~K列はそれぞれ参照する行が1行おきになっています。 Sheet1の1ページは26行ありますので、2ページ目のSheet2の数式は  C17 = Sheet1!B33  から始まり  D17 = Sheet1!C33     :     :  H17 = Sheet1!G33  I17 = Sheet1!B34  J17 = Sheet1!C34  K17 = Sheet1!D34     :     :  K26 = Sheet1!D52  までが、2ページ目となり、これが下方向へ続いています。 これらの数式を変更することなどで、コピー&貼り付けができないかと思い、質問させていただきました。 説明がわかりづらくて、申し訳ありませんが、よろしくお願いします。

  • 【Excel】まったく同じ式をコピーするには?

    エクセルで、  たとえばA1のセルが「=A2」  だったとします。  A1のセルをコピーして、たとえばC4で貼り付け  をするとC4の中身は「=C5」となってしまいます。 C4の中身も「=A2」のようにまったく同じ式に コピーする方法はありますか? 形式を選択して貼り付け等でもないような気がします。 ※式に「$」をつけるという方法はダメです。  ($をつけない式をコピーしたいからです) ※ツールバーのところの式をコピーする方法も  だめです。  (実際は多数のセルを一括でコピーしたいため) よろしくお願いします。

  • excel2000でのコピー

    excelで数式のコピーについてです。 たとえば、セルA2に「=A1+B1」を計算させて、その数式をセルB2にコピーするとします。その場合、セルB2にコピーした数式は「=B1+C1」というようにセルの指定も自動的に1つずれてしまいますが、あくまでもセルB2にセルA2と全く同じ数式をコピーしたい場合はどのようにしたらよいのでしょうか?

  • エクセルで数式をコピーする時のセル番地

    エクセルでは相対参照が働き、セル内の数式をコピーすると それに伴って数式内のセル番地が変化します。 普通は、例えばA1に=B1+C1という計算式が入っていて、 A1から下方向にコピーをすると A2→=B2+C2 A3→=B3+C3 となりますが、ここで A2→=B4+C4 A3→=B7+C7 という風に、コピーする行は1行ずつだけど 数式内のセル番地は3個飛びごとにするといった設定はできるのでしょうか。

  • Excel 行列入れ替えて数式をコピーしたい

    Excelのすばらしい機能に相対参照を使った連続コピーがあります。例えば、=A1 を横方向にコピーすると =B1 =C1 ・・となり、縦方向だと=A2 =A3 ・・となります。 ところで、これを横方向にコピーしたとき =A2 =A3 ・・、縦方向に=B1 =C1 ・・になる方法ってないでしょうか? 「形式を選択して貼付け」の[行列を入れ替える]では『値』では有効なのですが『数式』だとうまくいきません。数式で行列入替する方法を教えて下さい。

  • VBAで複数の数式セルを最終行までコピーするには?

    エクセルで下記のような表を作成しています。    A   B   C   D 1 項目1 数式 数式 数式 2 項目2 3 項目3   ・   ・   ・ B1~D1の数式は項目1を参照したものです。 この時、2行目以下~最終行まで数式をコピーするには、 どのようなVBAを書けばよいでしょうか? よろしくお願い致します。

  • Excel 数式の相対参照について

    相対参照を使い、ドラッグによる数式のコピーを 試みたいのですが、例えば・・・ C1にA1を表示させる=A1という式を入れます。 次にC2にA3を表示させる=A3という式を入れます。 次にC3にA6を表示させる=A6という式を入れます。 このような3の倍数での条件(a1,a3,a6,a9・・・) で数式のコピーを試みた場合、この条件でコピーできません。 同様なケースで・・・ C2にA1を表示させる=A1という式を入れます。 次にC3にB1を表示させる=B1という式を入れます。 次にC4にC1を表示させる=C1という式を入れます。 このようなアルファベット順での条件(A1,B1,C1・・・) で数式のコピーも同様で、できません。 他に、このような条件を満たす方法はありませんか?

  • エクセルで数式をコピーしたときに..

    このような表があります。 ....A......B.......C......D 1 ........ 100 200 300 2 100 3 200 4 300 縦×横の表を作成したいのですが、 B2を=B1*A2と入力します。 そしてこの数式をC3にコピーするとC2*B3になってしまいます。 これをコピーした時に、C1*C3にしたいのですが、 横軸はいつも1の行、縦軸はいつもAの列になるように 数式のコピーはできないでしょうか?   

専門家に質問してみよう