- ベストアンサー
エクセル(VBA)でドラック&ドロップの実現
- エクセルのセルデータを大量にランダムに移動させる方法を探しています。Ctlキーを押しながらクリックするとセルの値がカットされ、2度目にクリックすると値が貼り付けられる仕組みを作りたいですが、行き詰っています。詳しい方がいらっしゃいましたら、教えてください。
- エクセルのセルデータをランダムに移動させる方法を探しています。Ctlキーを押しながらクリックするとセルの値がカットされ、2度目にクリックすると値が貼り付けられる仕組みを作りたいです。Valueを保存して、移動先のセルに設定する方法はわかるのですが、実装に行き詰っています。
- エクセルのVBAを使用して、セルデータのドラック&ドロップを実現したいです。Ctlキーを押しながらクリックするとセルの値がカットされ、2度目にクリックすると値が貼り付けられるような機能を作りたいです。具体的な実装方法について詳しい方がいらっしゃいましたら、教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
注1)下記の方法では、セルの値のみ...というのは不可能です。 注2)[ツール]-[オプション]-[編集]-[ドラッグ アンド ドロップ編集を行う] のチェックが解除されている場合はドラッグ編集自体が不可です。 セルを選択(単一エリアなら複数セルでも良い。ただし飛び飛びの範囲では 不可)すると、その周りが一回り太い黒枠で囲まれますよね? その淵にカーソルを乗せると十字の矢印カーソルに変わります。そうしたら マウスの左クリック※ したまま、 Ctrl を押しながらドラッグ → セルのコピー Shift を押しながらドラッグ → セルの挿入 Alt を押しながらドラッグ → セルの切り取り の動作になります。 ※ この時に Excel のステータスバーに上記の説明が表示されます。 ただし、Excel2002 で確認しているので、Excel97~2000 の場合は、 覚えてないので分かりません。 ご希望の動作にかなり近いものが標準で用意されているということです。 また、既に Excel で割り当て済みの上記動作を横取りするようなコードは 非常に難しい点、混乱の元になる可能性が大きい点から、オススメしません。 不可能ではないですよ。 参考までに、関数が呼び出された時点でのキーの状態は、GetAsyncKeyState API で調べられます。
その他の回答 (1)
- KenKen_SP
- ベストアンサー率62% (785/1258)
意図が良くわかりませんが、Ctrl、Alt、Shift をそれぞれ押しながら セルをドラッグしたときの動作がご希望の動作になってます。 動作の説明はステータスバーに表示されてますので、いろいろ試してみて 下さい。 なお、これを VBA で実装するのは非常に難しいです。
補足
すみません。説明が悪かったせい。もしくは、回答の内容が理解出来ていないせい。なので、もう少し具体例で補足します。 A ,B ,C ,D ,E , 1: あ, , , , , 2: , , , , , と任意のセル(この場合だと、A1)に"あ"の文字が書かれていたとします。 私は、いつもA1のセルを右クリックして、コピーして、E2のセルで値の貼り付け(A1の文字をE2に移動させる場合)、A1のセルを左クリックして、Delキーを押して書式なし(罫線を移動させたくないので)の移動をしています。コピー元のセルが結合されていたら、一度結合を解除して行っていました。VBAの限らず、簡単に行う方法ってあるのでしょうか? 教えて頂いたことを、やってみましたが、動作の説明がステータスバーに出るとのことですが、コマンドって表示がされているだけで、何も変わらないのですが?? いったい、私は何を理解していないのでしょうか? 誠に申し訳ありませんが、もう少し詳しく教えて頂けないでしょうか? 宜しくお願いいたします。
お礼
本当に有難うございます。 何とか、出来るようになりました。 エクセルの基本機能の勉強をもう一度やろうと思いました。 今後とも宜しくお願いいたします。