[[20220816130535]] 『空白行の追加について』(はまち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『空白行の追加について』(はまち)

空白行が3行以下になったら5行空白を増やすようにしたいです。
※B列の13行目〜17行目には=B12+1〜=B+16が入っていて
 他の列にはプルダウンが入っているので
 空白行をコピーして5行挿入としたいのですが
 どうにもうまくいかないです。

 考えた方法は
 B12から次の空白までの行を数え
 C12から次の空白までの行を数えます。
 C列の方がB列より空白セルが多い状態なので
 B列の行数ーC列の行数の差が3行以下なら
 C列の行数+1の行をコピーして
 その下に5行貼り付けるようにと考えました。

 作成してマクロかけてみるとうまくいきません。
 皆さんのお知恵を拝借出来ないでしょうか。
 よろしくお願いいたします。

作成した式は
Sub 行の挿入()

    Dim l As Long
    Dim m As Long
    Dim n As Integer
    Dim o As Integer

    l = Cells(12, 2).End(xlDown).Row
    m = Cells(12, 3).End(xlDown).Row

    n = l - m
    o = l + 1

    If n <= 3 Then
 ' 行をコピー
    Rows(l).Copy
' 貼り付け
    Rows(o).PasteSpecial (xlPasteAll)
    Rows(o).PasteSpecial (xlPasteAll)
    Rows(o).PasteSpecial (xlPasteAll)
    Rows(o).PasteSpecial (xlPasteAll)
    Rows(o).PasteSpecial (xlPasteAll)
' コピーモードを解除
    Application.CutCopyMode = False

    End If

End Sub

でマクロをかけると
下図?@が下図?Aになるようにしたいと考えています。

下図?@

     |[B]  |[C]   |[D]     |[E]     |[F]  |[G] |[H]  
 [10]|No  |商品名|入荷  |発送   |単価 |数量|合計 
 [11]|      |本日分|     |    |   |    |
 [12]|1   |りんご|8/10  |8/11    |  190|   2|  380
 [13]|2     |ばなな|8/10  |8/11    |  200|   0|    0
 [14]|3     |みかん|8/10  |8/11    |  300|   2|  600
 [15]|4     |   |     |    |   |    |
 [16]|5     |   |     |    |     |    |
 [17]|6     |   |        |    |     |    |
 [18]|      |在庫品|期限   |値引き |単価 |数量|合計
 [19]|1     |りんご|8/15   |8/14   |  100|   2|  200
 [20]|2     |ばなな|8/15   |8/14   |  100|   6|  600
 [21]|3     |みかん|8/15   |8/14    |  150|   3|  450
 [22]|4     |   |    |        |     |    |
 [23]|5     |   |    |        |     |    |
 [24]|      |処理品|期限   |廃棄日  |単価 |数量|合計
 [25]|1     |りんご|8/20   |8/20    |    0|   5|    0

下図?A

     |[B]  |[C]   |[D]     |[E]     |[F]  |[G] |[H]  
 [10]|No  |商品名|入荷  |発送   |単価 |数量|合計 
 [11]|      |本日分|     |    |   |    |
 [12]|1   |りんご|8/10  |8/11    |  190|   2|  380
 [13]|2     |ばなな|8/10  |8/11    |  200|   0|    0
 [14]|3     |みかん|8/10  |8/11    |  300|   2|  600
 [15]|4     |   |     |    |   |    |
 [16]|5     |   |     |    |     |    |
 [17]|6     |   |        |    |     |    |
 [18]|6     |   |        |    |     |    |
 [19]|6     |   |        |    |     |    |
 [20]|6     |   |        |    |     |    |
 [21]|6     |   |        |    |     |    |
 [22]|6     |   |        |    |     |    |
 [23]|      |在庫品|期限   |値引き |単価 |数量|合計
 [24]|1     |りんご|8/15   |8/14   |  100|   2|  200
 [25]|2     |ばなな|8/15   |8/14   |  100|   6|  600
 [26]|3     |みかん|8/15   |8/14    |  150|   3|  450
 [27]|4     |   |    |        |     |    |
 [28]|5     |   |    |        |     |    |
 [29]|      |処理品|期限   |廃棄日  |単価 |数量|合計
 [30]|1     |りんご|8/20   |8/20    |    0|   5|    0

< 使用 Excel:Excel2016、使用 OS:Windows10 >


空白追加の前に、
項目の相違する表を縦に並べる事がナンセンスかと。
空白を入れる意図を開示すれば、様々なアドバイスがあると思いますよ。

(tkit) 2022/08/16(火) 13:44


もともとが、縦型で利用しているもので
フォーマットの変更が出来ず
行を追加で対処していかなければならない状態です。
最初のNo1〜はどんどん追記していくようになっており
そこにあらたに追記したい状態です。

分りにくくて申し訳ございませんがよろしくお願いいたします。

それと文字化けと2番目の図のNoが間違えていたので正しい図を追記します。

下図1

     |[B]  |[C]   |[D]     |[E]     |[F]  |[G] |[H]  
 [10]|No  |商品名|入荷  |発送   |単価 |数量|合計 
 [11]|      |本日分|     |    |   |    |
 [12]|1   |りんご|8/10  |8/11    |  190|   2|  380
 [13]|2     |ばなな|8/10  |8/11    |  200|   0|    0
 [14]|3     |みかん|8/10  |8/11    |  300|   2|  600
 [15]|4     |   |     |    |   |    |
 [16]|5     |   |     |    |     |    |
 [17]|6     |   |        |    |     |    |
 [18]|      |在庫品|期限   |値引き |単価 |数量|合計
 [19]|1     |りんご|8/15   |8/14   |  100|   2|  200
 [20]|2     |ばなな|8/15   |8/14   |  100|   6|  600
 [21]|3     |みかん|8/15   |8/14    |  150|   3|  450
 [22]|4     |   |    |        |     |    |
 [23]|5     |   |    |        |     |    |
 [24]|      |処理品|期限   |廃棄日  |単価 |数量|合計
 [25]|1     |りんご|8/20   |8/20    |    0|   5|    0
下図2
     |[B]  |[C]   |[D]     |[E]     |[F]  |[G] |[H]  
 [10]|No  |商品名|入荷  |発送   |単価 |数量|合計 
 [11]|      |本日分|     |    |   |    |
 [12]|1   |りんご|8/10  |8/11    |  190|   2|  380
 [13]|2     |ばなな|8/10  |8/11    |  200|   0|    0
 [14]|3     |みかん|8/10  |8/11    |  300|   2|  600
 [15]|4     |   |     |    |   |    |
 [16]|5     |   |     |    |     |    |
 [17]|6     |   |        |    |     |    |
 [18]|7     |   |        |    |     |    |
 [19]|8     |   |        |    |     |    |
 [20]|9     |   |        |    |     |    |
 [21]|10    |   |        |    |     |    |
 [22]|11    |   |        |    |     |    |
 [23]|      |在庫品|期限   |値引き |単価 |数量|合計
 [24]|1     |りんご|8/15   |8/14   |  100|   2|  200
 [25]|2     |ばなな|8/15   |8/14   |  100|   6|  600
 [26]|3     |みかん|8/15   |8/14    |  150|   3|  450
 [27]|4     |   |    |        |     |    |
 [28]|5     |   |    |        |     |    |
 [29]|      |処理品|期限   |廃棄日  |単価 |数量|合計
 [30]|1     |りんご|8/20   |8/20    |    0|   5|    0
(はまち) 2022/08/16(火) 14:01

>空白行が3行以下になったら5行空白を増やす

空白行が0行という場合もあるのでしょうか?

(マナ) 2022/08/16(火) 14:04


マナ様
ご返信ありがとうございます。
空白行が0行になることはないという考えで問題無いです。
(はまち) 2022/08/16(火) 14:13

一例
 Sub test()
    Dim r As Range
    Dim n As Long

    Set r = Columns(2).SpecialCells(xlCellTypeFormulas).Areas(1)
    Set r = r.Columns(2).SpecialCells(xlCellTypeBlanks)

    n = r.Count
    If n <= 3 Then
        With r(n).EntireRow
            .Copy
            .Offset(1).Resize(5).Insert
        End With

    End If

 End Sub

(マナ) 2022/08/16(火) 14:42


マナ様

ありがとうございます。
考えていた通りの動きました。
本当に助かりました。
ありがとうございます。
(はまち) 2022/08/16(火) 15:39


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.