Excel VBA質問箱 IV

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

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


12461 / 13646 ツリー ←次へ | 前へ→

【10355】行の追加 たかみ 04/1/21(水) 10:04 質問
【10357】Re:行の追加 INA 04/1/21(水) 10:37 回答
【10358】Re:行の追加 パピー(PAPIー) 04/1/21(水) 10:42 回答
【10359】Re:行の追加 たかみ 04/1/21(水) 10:51 お礼
【10361】Re:行の追加 INA 04/1/21(水) 11:22 回答
【10363】Re:行の追加 たかみ 04/1/21(水) 11:28 質問
【10365】Re:行の追加 INA 04/1/21(水) 13:29 回答
【10366】Re:行の追加 パピー(PAPIー) 04/1/21(水) 13:45 回答
【10393】Re:行の追加 たかみ 04/1/23(金) 14:22 質問
【10396】Re:行の追加 パピー(PAPIー) 04/1/23(金) 15:51 回答

【10355】行の追加
質問  たかみ  - 04/1/21(水) 10:04 -

引用なし
パスワード
   今、家計簿を作っていて、合計の行がB〜Iの53行目にあります。
行が足りなくなった場合、コマンドボタンを押したら書式・罫線を
コピーしつつ行の追加をしたいのですができるんでしょうか?
どなたか教えてください。

【10357】Re:行の追加
回答  INA  - 04/1/21(水) 10:37 -

引用なし
パスワード
   >書式・罫線をコピーしつつ行の追加
手作業で出来る操作なので、マクロの自動記録でできませんか?

【10358】Re:行の追加
回答  パピー(PAPIー)  - 04/1/21(水) 10:42 -

引用なし
パスワード
   ▼たかみ さん:こんにちは。

次のコードを試してみてください。

Private Sub CommandButton1_Click()

  Rows(53).Insert Shift:=xlDown
  
End Sub

【10359】Re:行の追加
お礼  たかみ  - 04/1/21(水) 10:51 -

引用なし
パスワード
   ありがとうございます!追加できました!
けど追加はできたのですが、書式や罫線がコピーされずに
追加されているんですが、書式や罫線をコピーしつつ追加
することはできるんでしょうか?

【10361】Re:行の追加
回答  INA  - 04/1/21(水) 11:22 -

引用なし
パスワード
   元となる行をコピーして、行挿入する操作を
マクロの自動記録してみましたか?

【10363】Re:行の追加
質問  たかみ  - 04/1/21(水) 11:28 -

引用なし
パスワード
   ありがとうございます!マクロを使うのは自分でも考えたのですが
コマンドボタンを使って行の追加(書式や罫線もコピーして)を
してみたいのですが何か良い方法はないでしょうか?

【10365】Re:行の追加
回答  INA  - 04/1/21(水) 13:29 -

引用なし
パスワード
   >ありがとうございます!マクロを使うのは自分でも考えたのですが
>コマンドボタンを使って行の追加(書式や罫線もコピーして)を
>してみたいのですが何か良い方法はないでしょうか?

意味が分かりません。
マクロ(VBA)のことを何か勘違いしていませんか?

自動記録で作成したコードをボタンに割り当てればいいだけでしょ?

【10366】Re:行の追加
回答  パピー(PAPIー)  - 04/1/21(水) 13:45 -

引用なし
パスワード
   ▼たかみ さん:
ひょっとして、53行目の上の罫線は二重線等でしょうか?
合計の上の罫線がほかの横線と同じであれば、罫線もコピーされます。

とりあえず、罫線の事はおいておいて書式のみコピー&ペースト
してみました。
最終行が合計だとします。
コマンドボタンを押すたびに追加されていきます。

Private Sub CommandButton1_Click()

Dim L As Long
  
  L = Range("B65536").End(xlUp).Row
  
  Rows(L).Insert Shift:=xlDown

  Rows(L - 1).Copy
  Rows(L).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False

  Application.CutCopyMode = False

End Sub

なお、Rows(L).PasteSpecial の行は、『形式を選択して貼り付け』です。
INAさんの回答の様にマクロの自動記録で試してみて変更してください。

【10393】Re:行の追加
質問  たかみ  - 04/1/23(金) 14:22 -

引用なし
パスワード
   ごめんなさい、パピーさん返事が遅れてしまいました!
そしてありがとうございます!数式のコピーできました!
もう一つ聞きたいことがあるのですが、罫線もコピーするには
どうしたらよいのでしょうか?罫線は二重線ではないです。

【10396】Re:行の追加
回答  パピー(PAPIー)  - 04/1/23(金) 15:51 -

引用なし
パスワード
   ▼たかみ さん:こんにちは。

罫線を引く様にしてみました。
二重線で引くようにしていますが、
.LineStyle の定数を変更すれば、罫線のタイプが指定できます。
定数は、
 xlContinuous
 xlDash
 xlDashDot
 xlDashDotDot
 xlDot
 xlDouble
 xlSlantDashDot
 xlLineStyleNone
から選んでください。
それから、.Weight の定数を変更すれば、罫線の太さが指定できます。
定数は、
 xlHairline
 xlThin
 xlMedium
 xlThick
なお、これらの事はVBAのヘルプで確認できます。

Private Sub CommandButton1_Click()
Dim L As Long

  Application.ScreenUpdating = False
  
  L = Range("B65536").End(xlUp).Row
  
  Rows(L).Insert Shift:=xlDown

  Rows(L - 1).Copy
  Rows(L).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
  Application.CutCopyMode = False
  
  With Range("B" & L & ":I" & L).Borders(xlEdgeTop)
    .LineStyle = xlContinuous  '罫線の種類
    .Weight = xlThin      '罫線の太さ
    .ColorIndex = xlAutomatic
  End With
  With Range("B" & L & ":I" & L).Borders(xlEdgeBottom)
    .LineStyle = xlDouble    '罫線の種類
    .Weight = xlThick      '罫線の太さ
    .ColorIndex = xlAutomatic
  End With

  Range("B" & L).Select
  
  Application.ScreenUpdating = True
End Sub

別のやり方もあると思いますが、試して見て改造してください。

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