Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1748 / 13646 ツリー ←次へ | 前へ→

【72185】ファイル間で、セルの位置を指定しながら、連続でコピー ANA 12/6/15(金) 14:23 質問[未読]
【72186】Re:ファイル間で、セルの位置を指定しなが... rabbit 12/6/16(土) 10:47 発言[未読]
【72189】Re:ファイル間で、セルの位置を指定しなが... ANA 12/6/18(月) 9:49 回答[未読]
【72195】Re:ファイル間で、セルの位置を指定しなが... rabbit 12/6/19(火) 6:35 発言[未読]

【72185】ファイル間で、セルの位置を指定しながら...
質問  ANA  - 12/6/15(金) 14:23 -

引用なし
パスワード
   手作業の手順で書くと

 シートAのセルを選択
 CTRL+C
 シートBのセルを選択
 CTRL+V

これを繰り返します


同じ内容を複数のファイルに入力しなければならなくて、
それを簡単に入力できるようにしたいのです。

セルが違う形で結合されていて、範囲指定のコピペでは、
貼り付けられないセルもあるので、1つずつのセルで処理したいです。
(3つのセルで結合されている値を、4つのセルで結合されているセルにコピーするなど)

既にできているファイルに対して処理したいので、アドイン化して、
ファイルには依存しないようにしたいです。

”セルを選択”については、セルの配置が規則的な場合は、
コピー後、自動でセルを移動するようにします。


私がやろうとした方法は、
2つのファイルを並べて表示させ、また、ユーザーフォームで、COPYボタンを表示させておき、

 シートAのセルを選択
 シートBのセルを選択
 COPYボタンを押して、コピペ
 (セルの並びに規則性があるときは、対象セルを移動。
   →これもユーザーフォームの中で設定しています。)

という、処理をさせようとしました。


ところが、アクティブで無いファイルは、アクティブセルの強調表示が切れてしまい、
どこからコピーするのか、あるいは、どこへコピーするのか、が見えなくなって、
COPYされるまで、結果がわからないので、かなり、使い勝手が悪いです。
(と言うより、使えないです)

仕方が無いので、対象セルに半透明のBOXを置いて、目印にしようとしたのですが、
セルを選び直したときに、BOXを移動させるイベントを発生させることができません。
(Worksheet_SelectionChange を使おうとしたのですが、シートに記述しなければならないので、あきらめました。)


と言うところで、行き詰っています。

わりと、需要のある内容だと思いましたので、どなたかか、やったことは無いでしょうか。
私の考えた方法とは違っても構わないので、うまい方法がありましたら、アドバイスをお願いします。

【72186】Re:ファイル間で、セルの位置を指定しな...
発言  rabbit  - 12/6/16(土) 10:47 -

引用なし
パスワード
   ▼ANA さん:
>ところが、アクティブで無いファイルは、アクティブセルの強調表示が切れてしまい、
>どこからコピーするのか、あるいは、どこへコピーするのか、が見えなくなって、
>COPYされるまで、結果がわからないので、かなり、使い勝手が悪いです。
>(と言うより、使えないです)

こんにちは。

問題は、貼り付け先のBookをアクティブにしたときに、
どこのセル範囲をコピーしたものかがわからなくなってしまう、
ということですか?
それなら、
・特定の塗りつぶし色をつけてから
・コピー
するようにすれば、貼り付け先の特定の際にも、参考にできるでしょう。

セル範囲が連続しているなら、2色くらいを交互に使うとか。
塗りつぶし+コピーをマクロボタンに登録しておけばいいでしょう。 
(塗りつぶしなんてできないということなら、
 作業用に、コピーしたものを用意すればいいんじゃないですか?)

また、されたいことは、一つのファイルを、複数のファイルに同様なかたちで
コピーペイストすることですから、
マクロコードを一つ作成すれば、その繰り返しです。
そして、
・コピー・ペイスト もしくは
・(結合セル対策のために)値だけセットする
コードは、セル範囲だけが変わるだけですから、
要は、それらのセル位置を、どこかの紙にメモっておいて、
それをコードに埋め込めばいいんじゃないでしょうか。

【72189】Re:ファイル間で、セルの位置を指定しな...
回答  ANA  - 12/6/18(月) 9:49 -

引用なし
パスワード
   rabbitさん

こんにちは。回答ありがとうございます。

>どこのセル範囲をコピーしたものかがわからなくなってしまう、
>ということですか?
その通りです。

ご提案いただいた方法だと、

1.コピー元のセルを選択
2.塗りつぶしボタンを押す
3.コピー先のセルを選択
4.コピーボタンを押す

の4アクションになります。

このうち、2を行わずに、1のアクションだけで、
塗りつぶしをする方法は無いでしょうか。

と言うのは、例えば、コピー元は、行方向に2つ飛びに
コピー先は、列方向に3つ飛びに、といった規則性がある場合に、
コピーボタンを連打するだけで、必要な入力が済むようにしたいのです。

と、書いたところで、連続の時は、コピー元の塗りつぶしを
自動で動かしてやれば良いと気づきました。
初回だけ、4アクション。
2回目からは、1〜2アクションでできそうです。

規則性が無い時は、諦めて4アクションしかないですかね・・・

コピー先には規則性があって、コピー元には規則性が無いという
パターンもあるので、フォーカスの移動はイベントにできないのです。

ともかく、ちょっと、見えてきたので、試してみたいと思います。
ありがとうございます

ちなみに、私が塗りつぶしではなく、ボックスを選んだのは、
・最初から塗りつぶししてある可能性がある。
・セルを動かしたときに、色を戻す作業が必要ない。
 (ボックスなら、新しい座標に直すだけでよい。)
からです。

【72195】Re:ファイル間で、セルの位置を指定しな...
発言  rabbit  - 12/6/19(火) 6:35 -

引用なし
パスワード
   > 同じ内容を複数のファイルに入力しなければならなくて、
これは、
 AファイルをB1ファイルにコピーする作業を、
 B2ファイル、・・・・,Bnファイルにも同じように情報書き込みするので、
 それをマクロで実行したい、
ということかと考えていました。
それなら、作業用の汚してもよいブックをコピーで作っておいて、
コピーする位置の決定だけに専念すればいいと考えましたが、
どうもそういう話ではなさそうでした。

どこまでコピーペイストしたかの印をつけたい、
しかも既存の書式とは別体系で、という話でしたか?
目立たせたいが、既存の書式には影響させたくない、
しかも簡単な方法で、と言った話ですよね。

点滅する点線が、直前のコピー領域を示すものとして提供されています。
そうした作業にはその機能で間に合うと思いましたが、
どのような点が不満足なのか、私には判りませんでした。

私の力及ばずですね、頑張って下さい。

1748 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free