• ベストアンサー

EXCEL2002で、関数式入りのセルの計算結果の値のみを次のセルにコピーする方法

 EXCEL2002で、関数式入りのセルの計算結果の値のみを次のセルにコピーする方法について、お聞きします。  VBAを使って、ボタン一つで一発置換出来ないでしょうか? 関数式とは、外部参照で、リアルタイムで可変しますが、「ボタン押下」時という任意の一時点の値を"記録"したいのですが。  (1)関数式入りのセルの番地は、B5~B229⇒⇒⇒⇒⇒(2)計算結果の値のみをコピーするセルは、 C5~C229 という配置になります。VBAにお詳しい方であれば、「あ~あの命令文一つ使えば、簡潔に出来るのに‥‥‥」というタイプの問題ですので、VBAを、直接、書き込んで頂けないでしょうか?  何卒御、宜しくお願いします。

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

  • ベストアンサー
回答No.7

マクロの記録時に何か別の動作が紛れ込んだのかもしれませんね。 Macro1が記録されているのであれば ツール → マクロで Macro1を選んで編集ボタンを押すと、別の画面が開いて マクロの文章が表示されます。 Sub で始まる文章を下までコピーして、ここに貼り付けてみて下さい。

TRADKING
質問者

お礼

 夜遅い時間帯まで、御親切に有難う御座います。  その後、ガチャガチャとやっていましたら、偶然からかもしれませんが、ウマくいきました。御志、感謝致します。  皆様の御蔭で、何とか出来ました。  有難う御座いました。

その他の回答 (6)

回答No.6

No2 です。 ご自分でマクロの記録をさせて実行しても同じ状況になりますか? 一度試してみて下さい。 ボタン押下のタイミングのみで更新させたいのであれば、 ツール→オプションの計算方法タブで手動を選択しておきます。 記録手順 1.ツールバーを右クリックして、フォームにチェックをつけて フォームツールバーを出す。 2.ツールバーのボタンを選択して、ワークシートの任意の場所で  ドラッグしてボタンを作成し、出てきたダイアログで  新規を選択 3.F9を押してワークシートの再計算 4.正しい答えが表示されたら、B5~B229をコピー 5.C5セルを選択して右クリック→形式を選択して貼り付け→値 6.EscでB5~B229のコピー状態を解除 7.任意のセルを選択してから ツール→マクロ→記録終了をクリック これでマクロが記録されたボタンが作成できます。 これで結果がどうなるか確認してみて下さい。

TRADKING
質問者

お礼

 初心者であるが故の、稚拙な質問でありながら、細心の御心遣いでこのように 、細やかに対応して下さり、感謝の言葉に絶えません。    本当に有難う御座います。  御指摘下さった点をよく踏まえ、もう一度、直ちに実行させて頂きます。  しかし、誠に心苦しい話ではありますが、ここまでに、到達する以前の問題と して、「マクロの自動記録」で、「作業中のブック」にctrl+iのショートカット で保存した筈の「Macro1」が、御指摘頂いたマニュアルの手順通りに何回試みて も、実際には、既に、(1)関数式が入力されたセル、B5~B229の中身が全て 『値と式のクリア』を一斉に押下した状態となって、「空欄」となります。   同時に、(2)計算結果の値のみをコピーしたセルである、C5~C229まで、 同様に、値と式のクリア』を一斉に押下した状態となって、「空欄」となり「バ グっている」状態です。  既に、御紹介頂いたリンクを何度も見直し、検討を重ねたのですが、誠に不本 意ながら、何度やり直しても、このような状態が継続されます。  ANo.5さんに、御紹介頂いたリンク ​http://kiyopon.sakura.ne.jp/vba/index.htm​ ​http://hirokei-web.hp.infoseek.co.jp/vba/vba02.htm​  何か良い解決法があったら、再び教えては頂けないでしょうか?  p-applepieさんには、2度までもお答え頂きながら、誠に申し訳ありません。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

#01です。お手軽なところでは http://kiyopon.sakura.ne.jp/vba/index.htm http://hirokei-web.hp.infoseek.co.jp/vba/vba02.htm 「エクセル マクロ 自動記録」でGoogle検索すればたくさんありますよ

TRADKING
質問者

お礼

 皆様、暖かな眼差しで、非常に、親切に応接して下さり、たいへん感謝致します。  御紹介頂いたリンク、只今、確認させて頂きました。  今後のテキスト代わりに、有効活用させて頂きます。 非常に有益なリンクを御紹介下さり、「視界が開けた」感慨を抱きます。  御指摘のように、今後は、検索を活用させて頂きます。 わざわざ、私の為に、御骨折り頂き、誠に有難う御座いました。

TRADKING
質問者

補足

 直接的には、ANo.4さんへの『回答への質問』なのですが、”一番上の質問”に付いていないと、”沢山の質問の中の一部として埋もれてしまい”、見逃されてしまう為、こちらにも、失礼ではありますが、書かせて頂きました。勿論、御存知であれば、何かコメントを頂けると、幸いです。  お話だけ伺って、早合点してしまい、御礼のコメント書きに時間を費やした為に、実際の確認が遅れてしまいました。  実際、頂いた上記の記述をコピペさせて頂いたのですが、実行してみると、★ワークシート全体が、薄青色に選択された状態になるのみで、命令が実行されません。★  基本的なところで、私が間違っているのかもしれませんが、何処に原因が在るのでしょうか? 色々とVBAのテキスト等を、ひっくり返していたら、こんな時間になってしまいました。  ひとつ、「原因ではないか?」と思った点に『セルの値ではなく、関数式が直接、書き込まれてしまう為ではないか?』と思ったのですが、念の為、関数式は、「=RSS|'6971.T'!現在値」となり、外部参照でもあって、コピーする時は、値は不変・静止しています。  上記のような条件で、今一度だけVBAを考えて頂けないでしょうか? 重ね重ね申し訳ありませんが、何卒お願いします

  • t-yamada_2
  • ベストアンサー率40% (587/1460)
回答No.4

ツール - マクロ - 新しいマクロの記録自動 でB5~B229セルをコピーしC5~C229セルに形式を選択して貼り付け - 値(V)で貼り付けたものですがどうぞ。 Sub Macro1() ' ' Macro1 Macro ' 値のみコピー ' ' Range("B5:B229").Select Selection.Copy Range("C5").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("A1").Select Application.CutCopyMode = False End Sub

TRADKING
質問者

お礼

 皆様、暖かな眼差しで、非常に、親切に応接して下さり、たいへん感謝致します。  次回も、どうぞ宜しくお願いします。

TRADKING
質問者

補足

 お話だけ伺って、早合点してしまい、御礼のコメント書きに時間を費やした為に、実際の確認が遅れてしまいました。  実際、頂いた上記の記述をコピペさせて頂いたのですが、実行してみると、★ワークシート全体が、薄青色に選択された状態になるのみで、命令が実行されません。★  基本的なところで、私が間違っているのかもしれませんが、何処に原因が在るのでしょうか? 色々とVBAのテキスト等を、ひっくり返していたら、こんな時間になってしまいました。  ひとつ、★「原因ではないか?」と思った点に『セルの値ではなく、関数式が直接、書き込まれてしまう為ではないか?』★と思ったのですが、念の為、★関数式は、「=RSS|'6971.T'!現在値」となり、外部参照でもあって、コピーする時は、値は不変・静止しています。★  上記のような条件で、今一度だけVBAを考えて頂けないでしょうか? 重ね重ね申し訳ありませんが、何卒お願いします。

回答No.3

Sub test1() Range("C5:C229") = Range("B5:B229").Value End Sub こんなのでもいけるかと^^ 下のURLで勉強してね(^^)v

参考URL:
http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040831.html
TRADKING
質問者

お礼

 皆様、暖かな眼差しで、非常に、親切に応接して下さり、たいへん感謝致します。  御紹介頂いたリンク、只今、確認させて頂きました。  今後のテキスト代わりに、有効活用させて頂きます。 非常に有益なリンクを御紹介下さり、「視界が開けた」感慨を抱きます。

回答No.2

マクロ記録の結果です。 Range("B5:B229").Select Selection.Copy Range("C5").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False

TRADKING
質問者

お礼

 いち早い、回答有難うございます。非常に有難く、深く感謝致します。  皆様、本当に、素晴らしい御方ばかりです。ここ、OKWaveは、お答えくださる皆様が、たいへん博識で、レベルが高く、どんな問題でも、即レス下さる為、毎回の事ながら、たいへん助かります。  OKWaveよ、永遠なれ!万歳!! >「マクロの自動記録」について、初心者である私にも、解り易く記述した、リンクが御座いましたら、お一つご紹介頂けないでしょうか?

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

B5~B229を選択して「コピー」→C5を選択→「編集」→「形式を選択して貼り付け」→「値」 わざわざVBAを使う程のことでもないと思いますが、VBAが良いのですか?  「ツール」→「マクロ」→「新しいマクロの記録」を選択して、上記作業を行えば、その操作通りのマクロができます。

TRADKING
質問者

お礼

 いち早い、回答有難うございます。非常に有難く、深く感謝致します。  皆様、本当に、素晴らしい御方ばかりです。ここ、OKWaveは、お答えくださる皆様が、たいへん博識で、レベルが高く、どんな問題でも、即レス下さる為、毎回の事ながら、たいへん助かります。  OKWaveよ、永遠なれ!万歳!! >「マクロの自動記録」について、初心者である私にも、解り易く記述した、リンクが御座いましたら、お一つご紹介頂けないでしょうか?

関連するQ&A

  • セルに計算結果でなく、関数式が表示される

    エクセルの関数が入っているセルに、昨日から関数式自体が表示されるようになり、計算結果がでてきません。上部のバーにある「関数の引数」ウィザードボタンfxをクリックすると、ウィンドウには計算数値が表示されています。ちなみに関数は単純に別シートのセルを参照させて足し算するだけです。別なシートに、関数式をコピーしてみましたが、ひとつのセルはできても、次のセルに連動させようとすると(セル右下に表示される太十字をひっぱっる)また、結果でなく、関数式が表示されるようになってしまいます。どうしたら解決できるでしょうか?

  • EXCELの計算結果を値コピーするとおかしな値になる

    EXCEL2003を使っていますが、ふとしたことで気になることがあります。 下記のような簡単な計算とコピー作業なのですがコピーした値がおかしいのです。 ・セルA1に420.2を入力する。 ・セルB1に420.3を入力する。 ・セルC1に =A1-B1 の計算式を入れる。 ・セルD1にC1のコピーを形式選択貼り付けで”値”のみ貼り付けする。 すると、セルD1には-0.1が表示されるのですが、ワークシート上段の普段入力とかをするエリアには-0.100000000000023が表示されています。 普通は別に困らないのですが、計算結果が-0.2とかになると-0.199999999999989になりヒストグラム等では頻度のカウントがひとつ繰り上がってしまいます。 (値コピー先ではなく計算結果でヒストグラムをとっても同じ結果になります。) Officeのヘルプも一応見てみたのですが、検索文言がややこしくて見つけられませんでした。簡単なことを見逃しているかも知れませんがアドバイスお願いします。

  • EXCEL2000で1セル内の計算式の結果を表示させる関数

    EXCEL2000で1セル内の計算式の結果を表示させる関数 下記の計算結果を表示させる関数を教えて下さい 16+23+35 74 ←この結果になる関数式を教えて下さい

  • エクセルマクロで計算結果の値だけをコピーしたい

    エクセルのマクロで計算結果の値だけをコピーする方法は無いでしょうか? 私が遣りたい事は,大雑把に言えば以下の動作がしたいんです. しかし,セルに計算式が入ってしまい計算結果が残らなくて困っています. A,B,Cはセルとする A,Bを作業領域,Cを結果領域として For i = 1 to 10 A=i B=i+1 C=A+B Cの行+1 Next i

  • Excel関数コピーについて

    Excel関数を横にコピーした時に、 その前の関数の次の列から計算式を作成したいのですが可能でしょうか? D1セルには、=SUM(J2:L2)が入ります。 (B1の関数であれば、A1がC2まで計算しているのでD2からはじまります) A1セル B1セル C1セル     ・・・ =SUM(A2:C2) =SUM(D2:F2)  =SUM(G2:I2)  ・・・ 教えてください。

  • 関数計算されたセルを数値にする方法

    すいませんが、教えてください。関数計算されたセルを関数計算の状態ではなく、数値として変更することは可能でしょうか? たとえばA1セル(1),B1セル(2)があり、C1セルに=SUM(A1+B1)と入力すると画面上では3とでますが、セルの中身としては関数式の状態です。これを"3"と認識したいのですが・・・。

  • 関数の計算結果を再度関数に組み込む方法は

    例えばです。  A) セルA1に 「10」、   セルB1に「20」  、 セルC1 に 「30」    の各々の数字が入力されていて、セルD1にSUM関数を使って、合計した    数値を入力するものとします。    セルD1には、SUM関数計算結果として「60」という数字が表示される。  ここからが、質問のポイントなのですが、  B)セルE1にセルD1に表示された「60」の18倍した計算を自動計算した結果を表示することはでいないのでしょうか。   あまりうまく表現できないのですがアドバイスしていただきたい点お分かりいただけたでしょうか。   別の表現の仕方をしますと、      セルD1、SUm関数   セルA1+セルB1+セルC1のSum関数の計算結果表示      セルE1          セルD1×18                           ※セルE1には、上記の「セルD1×18」の自動計算式を入力したいのですが、       首尾よく入力できません。   あまり要領よく質問できていないかもわかりませんが、よろしくお願いします。

  • [Excel]関数の計算結果を数字に変える。

    関数で計算させた列があります。 この一部をコピーして別のシートで利用しようと考えているのですが、参照先がずれるので計算結果が出ません。 計算式は必要ないので、関数を貼り付けているセルを結果に変換するにはどうしたらいいですか?

  • 関数が入っている列で値のある最後のセルの値を返す

    お尋ねします。 関数が入っている列で式の値が入っている一番下のセルの値を調べるにはどうしたら良いでしょうか? 例      A列   1   5   2   10   3   13   4   (式の値が無いのでゼロ) B1セルにA3セルの13と言う値を返したいのですが、列に式(SUMPRODUCT関数)が入っていて、実際はA4セルのゼロが返ってきます。 またシート1~シート5 まで上記と同じ式が入っていて、シート1のA列の最後の値「13」をシート6のB1セルに値を返す場合、INDIRECT関数を使った場合、どういう式になるでしょうか? ご回答よろしくお願いします。

  • 計算結果によって、セルの値を入れ替えるようなことができますか?

    =INT(RAND()*10)を Aの列 =INT(RAND()*10)を Bの列 に表示させて、Aのセル引くBのセルを計算して答えがマイナスになったときのみ、Aのセルの値とBのセルの値を入れ替える。 といったことがしたいのですが、どなたか教えてください。

専門家に質問してみよう