VBATips

設定シートから任意の行・名称で行を追加する【ExcelVBA】

開発時によく使う処理です。
設定を可変にしたい場合など、ユーザー目線に立った開発を心掛けています。

ループ処理を可変で行う

上記のようにB列から最終列まで可変の処理をする場合があります。
今回は「集計」を30行目に追加、「担当者」を31行目に行追加の2つだけですが、
今後増えたり、減ったりする可能性は否定できません。

わざわざ、そのような追加修正(費用もらったとしても)は無駄だと思うので、
当方ではユーザー目線に沿った開発をします。(費用もらったとしても面倒ともいう)

ループ処理を可変で行うサンプルコード

'■行追加処理
Public Function call_InsertRow(ws As Worksheet, COL_START As Long, SETTING_ROW As Long)
    Dim wsSetting As Worksheet: Set wsSetting = ThisWorkbook.Worksheets("Setting") '★ここを手動で変更する
    
    '■Settingシートを最終列まで処理する
    Dim c As Long
    For c = COL_START To Call_LastColWs(SETTING_ROW, wsSetting) Step 2
        Dim tRow As Long: tRow = wsSetting.Cells(SETTING_ROW, c)
        ws.Rows(tRow).Insert                                      '30行目に行追加
        ws.Cells(tRow, 1) = wsSetting.Cells(SETTING_ROW, c + 1)   '30行目のA1セルに「集計」の文字を追加
    Next
End Function

注意点

  • Call_LastColWsはこちらの記事参照。
  • 実際には行を追加すると基準の行は異なってくるので、若い行から記入は必要です。

関連記事

コメント

タイトルとURLをコピーしました