|
▼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
で処理して、マクロオプションでキーを割り当てたほうが楽ですね。
参考になりました。
|
|