[[20201017115147]] 『Ctrlキーを押しながら1セルずつ動かす方法についax(わいきき) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Ctrlキーを押しながら1セルずつ動かす方法について』(わいきき)

Ctrlキーを押しながらセルを1マスずつ移動する方法はあるのでしょうか。
とあるコピーソフトの機能で、「コピーした物がクリップボードに溜まっていき、後からその溜まったコピーの中から1つ選んでペーストできる」という物があります。
1セルずつコピー(Ctrl+C)する時に毎回Ctrlキーから指を離してから方向キーで移動して再度Ctrlキーを押すという操作面倒なのですが、「Ctrlキーを押しながら1セルずつ動かす方法」などございますでしょうか。

< 使用 Excel:Office365、使用 OS:Windows10 >


要するに、ある特定範囲の各セルに対して
Ctrl+Cを実施したいのですね。
簡単なマクロで実現できそうです。
その特定範囲をいったん選択し、
各セルにCopyするマクロを実施すればよいでしょう。

(γ) 2020/10/17(土) 12:59


 衝突しましたがそのままアップ

 直接の回答ではありません。

 参考まで。

https://milmemo.net/excel-addin-shortcut-key
(OK) 2020/10/17(土) 13:04


 例えばこんなマクロを実行すれば、現在の選択範囲のそれぞれのセルをクリップボードにコピーします。
 Sub test()
    Dim r As Range
    For Each r In Selection
        r.Copy
    Next
 End Sub

(γ) 2020/10/17(土) 13:16


OKさんのリンク先の方法を使うなら、

標準モジュールに、

 Public Sub MoveRight()
     ActiveCell.Offset(, 1).Select
 End Sub

 Sub MoveEndRight()
     ActiveCell.End(xlToRight).Select
 End Sub

ThisWorkBookモジュールに、

 Private Sub Workbook_Open()
     Application.OnKey "^{RIGHT}", "MoveRight"
     Application.OnKey "+^{RIGHT}", "MoveEndRight"
 End Sub

Ctrl + → で右に1セル移動
Shift + Ctrl + → で本来の Ctrl + → の移動

右移動の場合だけですが、同様に {LEFT} {DOWN} {UP} でOnKeyにマクロを登録すればいいでしょう。

(hatena) 2020/10/17(土) 13:33


よく考えたら下記の方が楽かも。

標準モジュールに、

 Public Sub MoveCopyRight()
     ActiveCell.Copy
     ActiveCell.Offset(, 1).Select
 End Sub

ThisWorkBookモジュールに、

 Private Sub Workbook_Open()
     Application.OnKey "+^{RIGHT}", "MoveCopyRight"
 End Sub

Shift + Ctrl + → でコピーして右のセルへ移動

Shift + Ctrlを押したまま、→ を繰り返し押すと、コピーしながら移動します。

(hatena) 2020/10/17(土) 13:44


私の方法は矩形領域でなくても、
シフトキーやコントロールキーを使って指定した
どんな飛び地を持ち領域でも、
それぞれのセルを
一括してクリップボードにコピーできる点です。

(γ) 2020/10/17(土) 13:49


 アイデアだけでっすが。
 ユーザーフォームで作ってもよさそうですね。
 ユーザーフォームでしたら、アクティブブックに対して処理できますし、
 コントロールにアクセラレータキーを設定すればショートカットキー
 風にすることもできます。
(OK) 2020/10/17(土) 14:57

いろいろな案があるようですが、
>CtrlCtrlキーから指を離してから方向キーで移動して再度Ctrlキーを押すという操作面倒なのですが、

これは、Ctrlキーを押したり離したりするのが面倒ということですよね?
左手でCtrlキーを押したり離したりしながら右手で矢印キー(またはマウス)を操作するのが一番単純で分かりやすそうな気がしますが、それが面倒な人が果たしてマクロでやろうとするかどうか疑問です。
(名無し) 2020/10/17(土) 16:55


 >1セルずつコピー(Ctrl+C)する時に毎回Ctrlキーから指を離してから方向キーで移動して再度Ctrlキーを押すという

 私は、左手で2つのキーを押してますから、この手順がおかしいと思ってます。

 >毎回Ctrlキーから指を離してから

 押しっぱなしにする必要があるのですかね?
 であれば、お使いのソフトを作った所に聞くのがスジでは?

 通常では、Ctrlを押したまま矢印キーを押すと上下左右末端に
 アクティブセルが移動すると思いますけど。
 私が勘違いしているのでしょうか?
(Why) 2020/10/17(土) 17:29

 ちょいヒマなんで、追記してみます。

 「コピーした物がクリップボードに溜まっていき、
 後からその溜まったコピーの中から1つ選んでペーストできる」というのは、
 Officeクリップボードと同類のものであって、
 他のアプリに対しても使えるような、Windows汎用のクリップボードツールなんでしょう。

 それで、
     A列    B    C
 1行  a     b    c
 2    d     e    f
 3    g     h    i 
 のような状況で、A1:C3のセルのすべてを
 ひとつずつCtrl+Cして、そのクリップボードツールに情報を送りこみたい、と。

 その際、A1でCtrl+Cして、Ctrlキーを押したまま → キーを押すと、C1に行ってしまう。
 だから、いったん離すわけです。
 その作業を9回するの、たいへんだから、何かないか、ということなんですかね。

 その都度、Ctrl+Cを押すから大変なのであって、
 最初にまとめてA1:C3を選択して(これは至極簡単じゃないですか)、
 そして、私の言っているマクロを、クイックアクセスツールバーにでも登録しておいて、
 それを一回ポチっとすれば、9個のデータが、クリップボードツールに送られる訳ですよ。
(γ) 2020/10/17(土) 18:02

 >「コピーした物がクリップボードに溜まっていき、後からその溜まったコピーの中から1つ選んでペーストできる」
 >「Ctrlキーを押しながら1セルずつ動かす方法」

「1セルずつ動かす」
が、どういう操作なのかわかりませんが、
新しいブックを開いて、
そこに逐一コピペして溜めて、
必要に応じでドラグ&ドロップでコピペするとかしてはいかがでしょう?

あと、
コピーするのは値だけですか?
セルの書式などもですか?
それから、
エクセルのいいところは、標準に無い機能を自作できるところですが、
ご自分でそういうツールを作りたいということでしょうか?
(まっつわん) 2020/10/18(日) 14:36


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.