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

解決済みの質問

EXCEL2003 書換えたセルを元に戻すマクロ

お世話になります。

質問に関してですが、次のような内容になります。

セルB2:J2までの各セルに数式が入っており、セルL2に入力された内容によって各セルにデータが表示されるような物があります。
例えば、B2のセルのデータ内容を書換えるとします。通常であれば数式によりデータが表示されている為、データを書換える為には数式を消さなければなりません。
そこで、内容を書換える為にマクロを組んでおり、コマンドボタンを押すと、セルの値のみをコピーしてセルに表示させています。(アクティブセルをコピー→形式を選択して貼付け→値のみを貼付ける、という動作をマクロにしています)

この書換えた内容を元に戻す(元の数式の入ったセルに戻す)為のマクロの組み方について質問があります。

書換える前のセルの数式をセルB250:J250に入れているのですが、
セルB2の内容を書換える場合はセルB250、セルG2の内容を書換えるにはセルG250のように
アクティブセルの位置によって、同じ列の数式を選択して貼付けるようにするにはどうすればいいでしょうか?

投稿日時 - 2013-06-17 10:28:11

QNo.8137526

困ってます

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

要するに、
アクティブ列の250行目の式を、アクティブセルに「数式を貼り付け」
してやれば良いんですよね?


例えば、ごく簡単に考えて

Sub myUndo()
    Cells(250, ActiveCell.column).copy
    ActiveCell.PasteSpecial Paste:=xlFormulas
    Application.CutCopyMode = False
End Sub

コレだけで良いと思いますが、いかがでしょう。

投稿日時 - 2013-06-17 13:06:35

お礼

ありがとうございます!

スゴク単純な事でしたね。。
期待通の結果になり安心しました!

投稿日時 - 2013-06-17 13:13:52

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

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

回答(2)

ANo.1

>書換える前のセルの数式をセルB250:J250に入れている

例えばB2:J2の式を250行にコピーしといたとか「ではなく」,2行目に入るべき数式の「文字通り」が250行に待避してあるとします。

作成例:
sub macro1()
 if application.intersect(activecell, range("B2:J2")) is nothing then exit sub
 activecell.formula = cells(250, activecell.column).formula
end sub

投稿日時 - 2013-06-17 11:03:02

お礼

ありがとうございます。

投稿日時 - 2013-06-17 13:14:16

あなたにオススメの質問