Excel VBA質問箱 IV

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

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


12083 / 76734 ←次へ | 前へ→

【70177】Re:上の行を書式のみをコピーして、選択した行数分だけ次の行に挿入したい
発言  kanabun  - 11/10/18(火) 17:22 -

引用なし
パスワード
   ▼げっち さん:

>行を追加したい行を選択した後、選択した行の上の行の書式のみを
>コピーしたものを、選択した行に貼り付けるマクロを組みました。

>行を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

としてみたらどうでしょう?

5 hits

【70176】上の行を書式のみをコピーして、選択した行数分だけ次の行に挿入したい げっち 11/10/18(火) 15:56 質問
【70177】Re:上の行を書式のみをコピーして、選択し... kanabun 11/10/18(火) 17:22 発言
【70178】Re:上の行を書式のみをコピーして、選択し... kanabun 11/10/18(火) 17:25 発言
【70179】Re:上の行を書式のみをコピーして、選択し... げっち 11/10/18(火) 18:55 質問
【70184】Re:上の行を書式のみをコピーして、選択し... kanabun 11/10/18(火) 21:33 発言
【70194】Re:上の行を書式のみをコピーして、選択し... げっち 11/10/19(水) 10:13 質問
【70198】Re:上の行を書式のみをコピーして、選択し... kanabun 11/10/19(水) 11:21 発言
【70200】Re:上の行を書式のみをコピーして、選択し... げっち 11/10/19(水) 12:23 発言
【70202】Re:上の行を書式のみをコピーして、選択し... SS 11/10/19(水) 13:55 発言
【70209】Re:上の行を書式のみをコピーして、選択し... げっち 11/10/19(水) 19:22 お礼
【70204】Re:上の行を書式のみをコピーして、選択し... kanabun 11/10/19(水) 15:12 発言

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