• ベストアンサー

エクセルで値だけを移動することはできるでしょうか?

値のみを移動したいのですが、切り取りにして貼り付けると切り取った部分の書式が消える上に、貼り付けた部分に数式も入ってしまいます。 なのでコピーして形式を選択して貼付け、値にしているのですが、そうするとコピー元の値は残ってしまいます。 なのでコピー後コピー元の値をDELキーで消しているのですが、いちいちコピーした部分に戻って範囲指定して消すというのは面倒です。 値だけが移動できるという機能があればいいのですが、そういった機能はエクセルにあるのでしょうか? マクロでそういったことができないものかといろいろ試したりしてみたのですがうまくいきません。 バージョンは2000です。 ご存知の方いたらよろしくお願いします。

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

  • ベストアンサー
  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.10

#8です。 >コピー元と貼り付け先が重なってしまった場合、貼り付け先のデーターまでが消えてしまうんです。 確かにそうなってしまいますね、改良しました。 #6の改良版 Sub test() Dim mr As Range, c As Range If Selection.Areas.Count = 2 Then Set mr = Selection.Areas(1) mr.Copy Selection.Areas(2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False With Selection For Each c In mr If c.Row < .Row Or c.Row >= .Row + .Rows.Count Then c.Value = "" ElseIf c.Column < .Column Or c.Column >= .Column + .Columns.Count Then c.Value = "" End If Next End With Else Beep End If End Sub #8のコードAの改良版 Public r As Range Sub test2() Dim c As Range If Application.CutCopyMode = xlCopy And TypeName(Selection) = "Range" Then ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False With Selection For Each c In r If c.Row < .Row Or c.Row >= .Row + .Rows.Count Then c.Value = "" ElseIf c.Column < .Column Or c.Column >= .Column + .Columns.Count Then c.Value = "" End If Next End With Set r = Selection Else Beep End If End Sub なお、Public r As Range の部分は、必ずモジュールのウィンドウ中の一番上にコピーしてください。

その他の回答 (11)

noname#4943
noname#4943
回答No.1

ちょっと質問の意味がわかりません。 >コピーして形式を選択して貼付け、値にしているのですが、そうする とコピー元の値は残ってしまいます。 >値だけが移動できるという機能があればいいのですが、 コピー元の値が残ってしまうと言いつつ、値だけを移動したいとおっしゃる・・・。 「値のみ」というのは表面上の数字だけを移動するということです。タイトルからすると形式を選択して貼り付けする方法でよいのですが、最終的にどのようにされたいのですかね?

fuka222
質問者

補足

すいません、ちょっとややこしい言い方になってしまったかもしれません。 コピー元の値は消したいんです。 そうなると切り取り貼付けになりますが、そうすると書いたような不都合が出てしまうわけです。

関連するQ&A

  • エクセル2000 VBA

    エクセル2000です。 シートをコピーして他のファイルにコピー&ペーストしようとしているのですが、シートに入っている数式までコピーされてしまうと元ファイルを参照しに行くので困っています。 次の方法として、形式を選んで貼り付けようとしてみました。 1) 値 2) 書式 3) 入力規則 の順序で貼り付けていくと、手動では出来るのですが、それをマクロで記録してから実行すると、一番最後の入力規則の部分で停止してしまいます。 数式以外のものはコピーしたいのです。 どなたかご存知でしたらよろしくお願いします。

  • 数式のみコピー / 書式のみ保護

    excel 2003 および 2007 を利用しています。 今、他の人にデータを記入してもらうためのシートを作成しているのですが、なかなかうまくいかないため、質問させていただきます。 シートには既にこちらでシートに条件付き書式を設定しています。 データは相手に入力して貰うのですが、相手がデータを切り取り・貼り付けをするため、条件付き書式も移ってしまうため、表示がめちゃくちゃになってしまいます。 相手の方が、「切り取り・形式を指定して貼り付け→数式」をやってもらえれば良いのですが、これでは相手の方の負担が多くなってしまいます。 そこで、ctrl+Vに[形式を指定して貼り付け→数式]のマクロを貼り付ける方法も考えたのですが、それたとctrl+zによる[元に戻す]も使えなくなってしまいます。 そこで (1)「数式のみをコピー」のマクロ (2)書式のみをロックして、条件付き書式および書式をコピーできない用にする方法 (3)ctrl+zも考慮にいれたマクロ など、方法を考えてみたものの、自分のスキルでは出来ませんでした。 何か良い方法はございますでしょうか?よろしくお願いします。

  • エクセルでのコピー方法

    エクセル97を使用しています。値はコピーせずに数式と書式だけコピーしたいのですがどうしたらいいですか?「形式を選択して貼り付け」をしても入力した値が入ってしまいます。できないのなら数式と書式だけ残して値だけ削除する方法があれば教えてください。

  • エクセルのデータ移動で

    いつもお世話になります。  エクセルで罫線はそのままでセルのデータを移動する場合、コピーであれば「値のみ」移動できるのですが、切り取り(元のセルは空白に変更)の場合は、どうしても罫線も一緒に切り取られてしまいます。  罫線は決められたものため変更できないのですが、データだけは切り取って移動したいのです。(コピーの値のみ移動であれば元のセルをデリートする手間が残ります。)  いろいろ調べましたがどうしてもわかりません。  どなたかお詳しい方ご教示ください。

  • エクセル・セルの値のみをコピーすることについて

    セルの値のみをコピーするには、「形式を選択して貼り付け」の「値」を選ぶことで可能なことはわかります。 しかし、値が貼りついた後にEnterキーを押すとその値がすべてをコピーしたように変わってしまいます。 例えば、元のセルに関数があればその関数もコピーされてしまいます。 Enterキーではなく、Escキーを押すと問題なく値のみが貼りつきます。 この現象を設定等を変えることによって、Enterキーを押しても値のみを貼りつけるようにすることは可能でしょうか? エクセル2000、2003、2007でも同様の現象がおきます。 よろしくお願いします。

  • EXCELで値のコピーをキーボードのみで行いたい

    あるセルに数式が入っていて、そこに計算結果があったとします。そのセルをコピーして、値を別のセルに貼付けたいのですが、通常は形式を選択して「値のみ」にチェックを入れて貼り付けますが、通常のコピペのように「CTRL+C」→「CTRL+V」のように、キーボード操作のみで値のみの貼付けを行う方法はありませんか?もしくは、ツールメニューはないですか?書式コピーのツールメニューはあるのですが、値コピーは見つけられませんでした。よろしくお願いします。

  • エクセル関数で検索した結果の値だけ表示したい

    エクセルのセルに値を探すvlook関数を入力していますが、そのままグラフや集計表を作ったり、移動させたりと色々編集したいので値を探した後、数式を値に変えたいのです。 =IF(ISNA(VLOOKUP(D6,**!$B:$E,4,FALSE)),"",VLOOKUP(D6,**!$B:$E,4,FALSE))のような値が見つからなかった時は空白になる数式が入っています。 値が見つかった場合、「コピー」して「形式を選択して貼付」のような「値」だけにする方法ありませんか? VBAは初心者でネットを見ながら作れる程度です。 イベントで実行するマクロなど調べてはみたのですが、値が見つかったら実行するマクロや空白でなくなったら実行するマクロなど作れたらと思っています。 詳しい方どうか教えて下さい。

  • エクセル2003 数式を値で挿入する方法 

    EXCEL2003 VLOOKUPでだした値と書式を 他シートに挿入したい。 VLOOKUPで作成した表を 形式で選択 値で貼り付けではなく 挿入したい のです。   現在 値の行列だけ 行挿入をし 形式選択で値を貼り付け 値と元の書式を選択して行列を貼り付けています。 これをマクロ以外でできる方法はないでしょうか? よろしくお願いします。

  • エクセル2010 マクロで値のみコピー

    こんばんは、エクセル2010を使っています。 マクロでデータを値のみをコピーしたいのですが、うまくいきません。 文は 以下の様なものです。 Sub ボタン1_Click() Worksheets("Sheet4").Range("e1").Copy Worksheets("sheet2").Range("b1").PasteSpecial Paste:=xlValues End Sub マクロの画面を閉じようとした時に、Pasteの部分が選択され  コンパイルエラー 修正候補:ステートメントの最後 と言うダイアログボックスが出てしまいます。 ご存知の方教えて頂けないでしょうか、よろしくお願いします。 ※ ちなみに Worksheets("Sheet4").Range("e1").Copy Worksheets("sheet2").Range("b1")  ならちゃんとコピーされるのですが、コピー元の数式がコピーされるので、値のみをコピーしたいのです。

  • Excelで、値や書式、行幅、行高はそのままセルの数式とリンク先を削除してコピーしたい

    Excelで、セルの数式とリンク先を削除し、シートの内容(値と書式、列幅、行高)をそのままコピーしたいです。貼り付けオプションの「値と元の書式」を指定してコピーし、さらに「元の列幅を保持」を指定しても、行高が変わってしまったままです。 値と書式、列幅、行高はそのまま、数式とリンク先を削除して、新しいシートにデータを貼り付ける方法はありますでしょうか?

専門家に質問してみよう