○第137回目 複数個所を一箇所にコピーする(その1)
コピーというのは、コピー元と貼付け先の二つが必要です。
コピーをしているとき、こことあそこと、それらをまとめて貼付けたいということがあると思います。
つまり、あるシートのここと、違うシートのあそこと、また違うシートのあそこを、一つの場所に貼り付けたい、というニーズです。これは、計算式などをデバックするときによく使います。
通常は、
1.該当箇所の大事な数字をメモしてからデバックする。
2.該当箇所をそれぞれプリントして、それらをつき合わせながらデバックする。
ということではないでしょうか。言うでもなく簡単なものは、外にださず、すべて自分の頭の中の記憶で大丈夫です。
ある程度にいくと、数値を書き出す、印刷するということが必要となってきます。
このためのものと考えていいでしょう。
一覧表になるので(必ずしもそうではないが)、その後の作業が非常に楽になります。
1.(最初の場所を指定してから実行)指定された場所の情報を取得する。
2.次の場所に移動し、範囲を指定する。
この繰り返し。
次の場所とは、ブック、シートの移動を含みます。
場所の情報とは、ブック名、シート名、範囲の座標の三つとなります。なお、貼付けの際に必要になるので、それぞれの列数をも取得しておきます。
ブックの移動、シートの移動、範囲の指定はこれまで何回もやってきたものですので、そのブロックをコピーしてつなぎ合わせるとできてしまいます(実際は、"つなぎ合わせ"というのが難しいのですが…)。
違うマクロで使うこととなるために、パブリック変数にしておいてください。さらに個数も取得しておいてください。
パブリック変数名
p_m_bkname(i)
p_m_shname(i)
p_m_xy(i) 範囲の座標
p_r_cnt(i) 範囲の列数
p_m_cnt 指定した範囲の数
次に、別のマクロで、3情報(ブック名、シート名、座標)をセルに書き込んで表示させてみてください。
また、別のマクロとすることになるため、セルに書き込んだ3情報を取得してパブリック変数に格納してみてください。
これらをまとめると、
1.場所を指定し場所の3情報を取得する
2.場所の3情報をセルに表示する
3.セルに書き込まれている3情報を取得する
ということになります。
このうち、1.はブックの移動、シートの移動と機能が多いのでちょっと大変ですね。
このあとは、取得した3情報を元に、それらの情報を一箇所に貼付けます。

0 件のコメント:
コメントを投稿