2010年3月6日土曜日

第137回目 複数個所を一箇所にコピーする(その1)

○第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 件のコメント: