• ベストアンサー

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

専門家に質問してみよう