重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (8件)

コピーコマンドを掛けるとセル内の「すべて」がWindowsの


領域のクリップボードに積み込まれます。

「貼り付け」をすればその「すべて」が貼り付きます。

コピー元が点滅しているのは、まだクリップボードにあるという事なので、
何回でも貼り付けられます。

クリップボードから消去するにはEscを押さなければなりません。

次のデータを「コピー」すると内容が積み変わります。

「貼り付け」の代わりにエンターを押すと、「貼り付け」と同時にEscを
押したのと同じになります。

「形式を選択して貼り付け」を開くと、「すべて」になっていますが、
これは通常の「貼り付け」と同じ事です。

「値」や「書式」など選択するとセル内の、指定した情報だけを貼り付けることができます。

ところが、折角指定して貼り付けたのに、エンターを押すという事は「すべて」を
貼り付けてしまうのです。

ですから、終わるときはEscを使う訳です。

「コピー」コマンドを掛けるときに、内容を指定してクリップボードに
積み込めれば楽なのでしょうが、それはできないのです。
    • good
    • 0
この回答へのお礼

詳しいご解説ありがとうございます。
よく理解できました。

お礼日時:2010/12/31 11:37

>>アセンブラ等の知識が必要ですが、できますか?)


>はい、できます。

Excelを逆アセンブラするという意味でしょうか。それはいくらなんでも、それが出来れば、私などは、もうVBAはとうに離れていますね。少しはアセンブラというか、昔は、フリーソフトのコンパイラーもあったので、やったことはありますが、今は、過去の思い出として本棚に本を飾っているだけです。

Win32 APIというものもあるけれども、そういうダイレクトな質問がでれば、回答もついたかと思いますが、それも微妙な内容の気がします。

もちろん、どのキーを押したかという記録は取れますが、通常、貼り付けなら[貼り付け]というコマンドに対して、貼り付けをするわけで、その時に、ユーザーは、値貼り付けにするのか、すべてを貼り付けるか、選択するわけですから、値貼り付けにする時に、Application.CutCopyMode = False を送ってあげればすればよいと思います。簡単な話だと思います。

>「コピー」コマンドを掛けるときに、内容を指定してクリップボードに積み込めれば
それは、Office に儲けられているClipBoard オブジェクトに入れれば、テキストしか入りませんから可能ですが、ふつうは、コピーした後に、吐き出す時に区分けします。

(1)
一般的には、「値の貼り付け」なら、コマンドボタンがありますから、ユーザー設定から探し出して、ツールバーの上にドラッグして貼りつけてあげます。

(2)VBAでショートカットを置けば、値貼り付けが実現しますね。
例えば、Ctrl + Shift + V とか分けてあげればよいです。

Sub Auto_Open()
  Call SetKey
End Sub

Sub SetKey()
 Application.OnKey "^+v", "myPastePr" 'Ctrl+Shift+v
End Sub

Private Sub myPastePr()
 If Application.CutCopyMode Then
   Selection.PasteSpecial xlPasteValues
   Application.CutCopyMode = False
 End If
End Sub

(3) 既存のひとつのブックに対してなら、こうすれば、Esc を押したのと同じになります。しかし、これは、値貼り付けでなくても、同じようになってしまいます。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 Application.CutCopyMode = False
End Sub

すべてのブックに搭載するなら、PERSONAL.XLS(b)で、Class でインスタンスを設けます。

私個人は、(1)の値の貼り付けボタンをツールバーに貼り付けていますが、右クリックメニュー("Cell") にも、独自に入れています。
Win32API の IsClipboardFormatAvailableで、内容を確認して、貼り付けを区分けしています。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
勉強してみます。

お礼日時:2011/01/02 22:53

>コピー元のセルが点滅するのを消すために、通常どうしているのですか?


Escキーを押せばよいです。
Enterを押すのは、貼り付け後下のセルに自動移動させるためですか。
それならEscキーを押したあと、Enterですね。
    • good
    • 0
この回答へのお礼

度々のご回答ありがとうございます。
>Enterを押すのは、貼り付け後下のセルに自動移動させるためですか。
ただ、Enterキーは大きいので押しやすかったからです。

お礼日時:2010/12/31 15:53

No4のTohru999です。


詳しい解説はNo5のinu-cyanさんが答えてくれていますので、略ということで...

もし改造という方法を選択するならば、ライセンスの問題はありますが、がんばればできるでしょう。
簡単に書いておくと、
エクセルに送られるWindowMessageをフックして、
エクセルでコピー状態の場合に、Enterキーが押されたかどうかを判定。
その時にエクセルの選択されているセルに値のみを貼り付ける。

という処理をすればできると思います。

アセンブラとWindowsの仕組み(WindowMessage等)が理解できていれば、できるでしょうが
個人的には、そこまでしてやる事ではないと思います。

以上、余談でした。
    • good
    • 0
この回答へのお礼

ありがとうございます。
頑張ってみます。

お礼日時:2010/12/31 15:51

他の方が回答しているように、エクセルの仕様です。


これを変えるにはマイクロソフトに「仕様を変えて下さい」と、お願いするしかありません。
(あ~そうですか。とかで聞き流されるぐらいだと思いますが)
また、No2さんへのお礼に、「誰かはEnterキーを押しています」と書いていますが、
そういった仕様なので、誰もEnterキーを押して値のみをコピーできません。
(エクセルを改造すればできますが、そこまでしないorできないです)

それとも、頑張って改造してみますか?
(アセンブラ等の知識が必要ですが、できますか?)

この回答への補足

>また、No2さんへのお礼に、「誰かはEnterキーを押しています」と書いています>が、
>そういった仕様なので、誰もEnterキーを押して値のみをコピーできません。
私が言いたいのは、私のようにエンタキーを押して、疑問に思っている人は他にもいるということです。

補足日時:2010/12/31 11:41
    • good
    • 0
この回答へのお礼

>アセンブラ等の知識が必要ですが、できますか?)
はい、できます。

お礼日時:2010/12/31 11:36

貼り付け後何故Enterするのでしょうか。


値の貼り付け後も、コピーモードが生きています(コピー元のセルがチカチカしている)よね。
この状態でEnterするということはもう一度同じ場所に全てのコピーをすることになります。
通常の全て貼り付けの時も、貼り付けボタンの代わりに、Enterでも貼り付けが出来るのです。
    • good
    • 0
この回答へのお礼

コピー元のセルが点滅するのを消すために、通常どうしているのですか?

お礼日時:2010/12/31 10:32

> しかし、値が貼りついた後にEnterキーを押すとその値がすべてをコピーしたように変わってしまいます。



そのような仕様です。
だから「値貼付け」の際は誰もEnterキーを押しません。
    • good
    • 0
この回答へのお礼

>だから「値貼付け」の際は誰もEnterキーを押しません。
コピー元のセルが点滅するのを消すためにエンターキーを押してます。
誰かはEnterキーを押しています。

お礼日時:2010/12/31 10:31

どの様な手順でhりつけているのですか?


こちらではメニューから操作しますが、全てマウス操作で貼り付けできますので、enterキーなど使ったことが有りませんが。
    • good
    • 0
この回答へのお礼

コピー元のセルが点滅するのを消すためにエンターキーを押してます。

お礼日時:2010/12/31 10:27

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