|
▼げっち さん:
>行を追加したい行を選択した後、選択した行の上の行の書式のみを
>コピーしたものを、選択した行に貼り付けるマクロを組みました。
>行を2行選択すると、2行の貼り付けを行うように選択した行の分だけ行を
>貼り付けるようにしています。
現状のコードの問題点ですが
まず、ここがおかしいです。
> RowCnt = Selection.CurrentRegion.Rows.Count - 1 '選択している行数のカウント
これでは、「選択してる行の隣接する表領域全体の行数のカウント」
になってしまいます。
たとえば、100行からなる表があって、その50行目を選択したとすると、
選択した行数は1 ですよね。現状のコードですと、100行が返ってきてます。
単に
RowCnt = Selection.Rows.Count '選択している行数のカウント
でいいような気がします。
そのため、
> For i = 1 To RowCnt
RowCnt回繰り返すのだけど、
いつも選択した行の1行上の行をCopyして、選択行に「書式貼り付け」
という処理をするコードになってます。
> Selection.Offset(-1).Copy
> Selection.PasteSpecial Paste:=xlPasteFormats
試してはないので、うまくいくかどうか定かではないのですが、
> Selection.Offset(-1).Copy
を
Selection.Offset(-RowCnt).Copy
としてみたらどうでしょう?
|
|