プロが教える店舗&オフィスのセキュリティ対策術

 EXCEL2002で、関数式入りのセルの計算結果の値のみを次のセルにコピーする方法について、お聞きします。
 VBAを使って、ボタン一つで一発置換出来ないでしょうか? 関数式とは、外部参照で、リアルタイムで可変しますが、「ボタン押下」時という任意の一時点の値を"記録"したいのですが。

 (1)関数式入りのセルの番地は、B5~B229⇒⇒⇒⇒⇒(2)計算結果の値のみをコピーするセルは、 C5~C229

という配置になります。VBAにお詳しい方であれば、「あ~あの命令文一つ使えば、簡潔に出来るのに‥‥‥」というタイプの問題ですので、VBAを、直接、書き込んで頂けないでしょうか?

 何卒御、宜しくお願いします。

A 回答 (7件)

B5~B229を選択して「コピー」→C5を選択→「編集」→「形式を選択して貼り付け」→「値」



わざわざVBAを使う程のことでもないと思いますが、VBAが良いのですか? 
「ツール」→「マクロ」→「新しいマクロの記録」を選択して、上記作業を行えば、その操作通りのマクロができます。
    • good
    • 0
この回答へのお礼

 いち早い、回答有難うございます。非常に有難く、深く感謝致します。
 皆様、本当に、素晴らしい御方ばかりです。ここ、OKWaveは、お答えくださる皆様が、たいへん博識で、レベルが高く、どんな問題でも、即レス下さる為、毎回の事ながら、たいへん助かります。

 OKWaveよ、永遠なれ!万歳!!

>「マクロの自動記録」について、初心者である私にも、解り易く記述した、リンクが御座いましたら、お一つご紹介頂けないでしょうか?

お礼日時:2007/02/10 17:42

マクロ記録の結果です。



Range("B5:B229").Select
Selection.Copy
Range("C5").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
    • good
    • 0
この回答へのお礼

 いち早い、回答有難うございます。非常に有難く、深く感謝致します。
 皆様、本当に、素晴らしい御方ばかりです。ここ、OKWaveは、お答えくださる皆様が、たいへん博識で、レベルが高く、どんな問題でも、即レス下さる為、毎回の事ながら、たいへん助かります。

 OKWaveよ、永遠なれ!万歳!!

>「マクロの自動記録」について、初心者である私にも、解り易く記述した、リンクが御座いましたら、お一つご紹介頂けないでしょうか?

お礼日時:2007/02/10 17:43

Sub test1()


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

参考URL:http://www.excel.studio-kazu.jp/mag2/backnumber/ …
    • good
    • 0
この回答へのお礼

 皆様、暖かな眼差しで、非常に、親切に応接して下さり、たいへん感謝致します。
 御紹介頂いたリンク、只今、確認させて頂きました。

 今後のテキスト代わりに、有効活用させて頂きます。
非常に有益なリンクを御紹介下さり、「視界が開けた」感慨を抱きます。

お礼日時:2007/02/10 18:05

ツール - マクロ - 新しいマクロの記録自動 で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

この回答への補足

 お話だけ伺って、早合点してしまい、御礼のコメント書きに時間を費やした為に、実際の確認が遅れてしまいました。

 実際、頂いた上記の記述をコピペさせて頂いたのですが、実行してみると、★ワークシート全体が、薄青色に選択された状態になるのみで、命令が実行されません。★

 基本的なところで、私が間違っているのかもしれませんが、何処に原因が在るのでしょうか? 色々とVBAのテキスト等を、ひっくり返していたら、こんな時間になってしまいました。

 ひとつ、★「原因ではないか?」と思った点に『セルの値ではなく、関数式が直接、書き込まれてしまう為ではないか?』★と思ったのですが、念の為、★関数式は、「=RSS|'6971.T'!現在値」となり、外部参照でもあって、コピーする時は、値は不変・静止しています。★

 上記のような条件で、今一度だけVBAを考えて頂けないでしょうか? 重ね重ね申し訳ありませんが、何卒お願いします。

補足日時:2007/02/10 23:31
    • good
    • 0
この回答へのお礼

 皆様、暖かな眼差しで、非常に、親切に応接して下さり、たいへん感謝致します。

 次回も、どうぞ宜しくお願いします。

お礼日時:2007/02/10 18:16

#01です。

お手軽なところでは
http://kiyopon.sakura.ne.jp/vba/index.htm
http://hirokei-web.hp.infoseek.co.jp/vba/vba02.htm

「エクセル マクロ 自動記録」でGoogle検索すればたくさんありますよ

この回答への補足

 直接的には、ANo.4さんへの『回答への質問』なのですが、”一番上の質問”に付いていないと、”沢山の質問の中の一部として埋もれてしまい”、見逃されてしまう為、こちらにも、失礼ではありますが、書かせて頂きました。勿論、御存知であれば、何かコメントを頂けると、幸いです。


 お話だけ伺って、早合点してしまい、御礼のコメント書きに時間を費やした為に、実際の確認が遅れてしまいました。

 実際、頂いた上記の記述をコピペさせて頂いたのですが、実行してみると、★ワークシート全体が、薄青色に選択された状態になるのみで、命令が実行されません。★

 基本的なところで、私が間違っているのかもしれませんが、何処に原因が在るのでしょうか? 色々とVBAのテキスト等を、ひっくり返していたら、こんな時間になってしまいました。

 ひとつ、「原因ではないか?」と思った点に『セルの値ではなく、関数式が直接、書き込まれてしまう為ではないか?』と思ったのですが、念の為、関数式は、「=RSS|'6971.T'!現在値」となり、外部参照でもあって、コピーする時は、値は不変・静止しています。

 上記のような条件で、今一度だけVBAを考えて頂けないでしょうか? 重ね重ね申し訳ありませんが、何卒お願いします

補足日時:2007/02/11 00:24
    • good
    • 0
この回答へのお礼

 皆様、暖かな眼差しで、非常に、親切に応接して下さり、たいへん感謝致します。
 御紹介頂いたリンク、只今、確認させて頂きました。

 今後のテキスト代わりに、有効活用させて頂きます。
非常に有益なリンクを御紹介下さり、「視界が開けた」感慨を抱きます。

 御指摘のように、今後は、検索を活用させて頂きます。
わざわざ、私の為に、御骨折り頂き、誠に有難う御座いました。

お礼日時:2007/02/10 18:11

No2 です。


ご自分でマクロの記録をさせて実行しても同じ状況になりますか?
一度試してみて下さい。

ボタン押下のタイミングのみで更新させたいのであれば、
ツール→オプションの計算方法タブで手動を選択しておきます。

記録手順
1.ツールバーを右クリックして、フォームにチェックをつけて
フォームツールバーを出す。
2.ツールバーのボタンを選択して、ワークシートの任意の場所で
 ドラッグしてボタンを作成し、出てきたダイアログで
 新規を選択
3.F9を押してワークシートの再計算
4.正しい答えが表示されたら、B5~B229をコピー
5.C5セルを選択して右クリック→形式を選択して貼り付け→値
6.EscでB5~B229のコピー状態を解除
7.任意のセルを選択してから ツール→マクロ→記録終了をクリック

これでマクロが記録されたボタンが作成できます。

これで結果がどうなるか確認してみて下さい。
    • good
    • 0
この回答へのお礼

 初心者であるが故の、稚拙な質問でありながら、細心の御心遣いでこのように

、細やかに対応して下さり、感謝の言葉に絶えません。
 
 本当に有難う御座います。

 御指摘下さった点をよく踏まえ、もう一度、直ちに実行させて頂きます。
 しかし、誠に心苦しい話ではありますが、ここまでに、到達する以前の問題と

して、「マクロの自動記録」で、「作業中のブック」に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度までもお答え頂きながら、誠に申し訳ありません。

お礼日時:2007/02/11 14:40

マクロの記録時に何か別の動作が紛れ込んだのかもしれませんね。


Macro1が記録されているのであれば ツール → マクロで
Macro1を選んで編集ボタンを押すと、別の画面が開いて
マクロの文章が表示されます。

Sub で始まる文章を下までコピーして、ここに貼り付けてみて下さい。
    • good
    • 0
この回答へのお礼

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

 有難う御座いました。

お礼日時:2007/02/12 00:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!