○第138回目 複数個所を一箇所にコピーする(その2)
今回は指定された範囲のデータを貼付けるという処理です。
場所の3情報(プラス、それぞれの場所の列数と場所の数)はすでにパブリック変数にあります。
今回の眼目はコピー・ペーストの繰り返しです。
コピーもとの場所は独立していますが、貼付け先の場所は順次移動していきます。データ、一列あき、データ、一列あき…という形式で貼付けましょう。
今回のマクロの実行前には、貼付ける先の座標にカーソルがあるという前提です。
貼付先の座標は、"コピーもとの列数+1"で移動していきますので、ちょっと気をつけてください。
貼付け処理のメイン部分は次のようになります。
mm = 0
'貼付け処理
For i = 1 To p_m_cnt
Windows(p_m_bkname(i)).Activate
Sheets(p_m_shname(i)).Select
Range(p_m_xy(i)).Copy
Windows(bkname9).Activate
Sheets(shname9).Select
Cells(gyo1, retu1 + mm).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
mm = mm + p_r_cnt(i) + 1 '間に一列あけるため
Next
貼付けた後の印刷は、すでにできている"範囲印刷"となります。
前に、"計算式の中にある場所に飛ぶ"というのがありました(場所とは計算式の中に記述されている座標ということです)。
これに合体させることを考えるのがいいと思います。
場所に飛んでいったら、その周囲のデータを取得するかどうか、取得する場合はその範囲の座標を指定します。
情報が得られたら、今回の貼付けマクロです。
これでデバックがやりやすくなること請け合いです。

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