| 
    
     |  | ▼Ned さん: >▼やまP さん:
 >こんにちは。横から失礼。
 >>エクセル上で式を持ったセルをコピーして他セルで、"Shift+Ctrl+J"としても何も起こりません。
 >ShiftキーとCtrlキーを押しながらSendKeysを実行している状態になってしまっているのでしょう。
 >ですので、マクロショートカットキーとSendKeysの組み合わせは厳しいのではないでしょうか。
 >Application.OnKeyでセットされるなら、ShiftやCtrlを使わなければ良いのではないですか?
 >Jakaさんご指摘の【38684】のように{F12}キーに登録とか。
 >
 >または、
 >Sub AS_PasteValue()
 >  '値の貼り付けコマンドを実行
 >'  Application.SendKeys "%ev"
 >  On Error Resume Next
 >  CommandBars.FindControl(ID:=370).Execute
 >End Sub
 >これでできるかも。
 >できたとして、"Shift+Ctrl+J"を使いたい場合、Application.OnKeyよりも
 >[マクロ]-[オプション]でショートカットキーを設定した方が良いと思えます。
 >
 >元々SendKeysを使おうと思われたのは[元に戻す]機能を残したかったからなのですよね?
 >そうでなければ
 >On Error Resume Next
 >Selection.PasteSpecial Paste:=xlValues
 >Application.CutCopyMode = False
 >とすれば良いかもしれませんね。
 
 Nedさん>
 どうもありがとうございます。
 確かに、Shiftを押したままでは厳しいみたいです。
 おっしゃる通り、マクロで普通に処理してしまうと、Undo(元に戻す)が使えなくなることを避けるために、マクロで処理コマンドを送るだけを行おうと思いました。
 ですが、一度処理にマクロを通してしまうと、Undoは結局できないみたいで。
 
 それならば、
 >Selection.PasteSpecial Paste:=xlValues
 >Application.CutCopyMode = False
 で処理して、マクロオプションでキーを割り当てたほうが楽ですね。
 参考になりました。
 
 |  |