Excel2013のVBAについてです。
入力シートのA列に抽出用のNo.、B列に職員番号、C列に正規の有無、D列に◯×と記入した表があります。(※抽出番号はダブりなし、職員番号は同じ番号が複数個あります。)
その際に、C列が正規で、且つD列が◯の職員の抽出番号を、出力シートA4から一定間隔(5行間隔)で出力するVBAを作りました。
---------
Set s1 = Worksheets("入力シート")
Set s2 = Worksheets("出力シート")
c = Array(4, 9, 14, 19, 24, 29, 34, 39, 44, 49) '貼り付ける行番号(5から50行へ5つ間隔で)
For i = 1 To s1.Cells(s1.Rows.Count, 2).End(xlUp).Row
If s1.Cells(i, 3).Value = "正規" And s1.Cells(i, 4).Value = "◯" Then '検索条件
n = s1.Cells(i, 2).Value - 1
c(n) = c(n) + 1
s2.Cells(c(n),1).Value = s1.Cells(i, 1).Value '貼付け
End If
Next i
---------
この際に職員番号が5つ以内であれば、5つ間隔に収まるので良いのですが、5つを超えた場合に、はみ出た数字が、次の職員番号に上書きされてしまいます。
もし、職員番号が5つを超えた場合、6以降の数字を次のセルへ貼り付けるような命令はできますでしょうか。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんんちは!
細かい検証はしていませんが・・・
Sub Sample1()
Dim i As Long, cnt As Long
Dim wS As Worksheet
Set wS = Worksheets("出力シート")
With Worksheets("入力シート")
For i = 1 To .Cells(Rows.Count, "B").End(xlUp).Row
If .Cells(i, "C") = "正規" And .Cells(i, "D") = "○" Then
cnt = cnt + 1
wS.Cells(cnt * 5 - 1, "A") = .Cells(i, "A")
End If
Next i
End With
End Sub
こんな感じをお望みなのでしょうか?
※ 質問文では
>A4から一定間隔(5行間隔)で
とありますが、コードのコメントには
>'貼り付ける行番号(5から50行へ5つ間隔で)
となっていますので、質問文通り
上記コードはA4 → A9 → A14 ・・・
となります。
5行目から始める場合は、コード内の
> wS.Cells(cnt * 5 - 1, "A") = .Cells(i, "A")
を
>wS.Cells(cnt * 5, "A") = .Cells(i, "A")
に変更してみてください。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
特定の文字を含むシートだけマ...
-
同じ作業を複数のシートに実行...
-
excelのマクロで該当処理できな...
-
【Excel VBA】Worksheets().Act...
-
ExcelVBA シート名を複数セルか...
-
エクセルのシート名変更で重複...
-
【VBA】シート名に特定文字が入...
-
実行時エラー1004「Select メソ...
-
ブック名、シート名を他のモジ...
-
ExcelVBA:複数の特定のグラフ...
-
別のシートを参照して計算する方法
-
ExcelのVBAのマクロで他のシー...
-
VBAで指定シート以外の選択
-
【エクセル】オプションボタン...
-
シート名の一部を変更する方法...
-
VBAで同じシート名のコピー時は...
-
VBA 入力月で該当シートを選択...
-
ListViewの画面の更新
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
同じ作業を複数のシートに実行...
-
ブック名、シート名を他のモジ...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのシート名変更で重複...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】Worksheets().Act...
-
Excelマクロのエラーを解決した...
-
エクセル・マクロ シートの非...
-
VBAで同じシート名のコピー時は...
-
ExcelのVBAのマクロで他のシー...
-
【VBA】色のついたシート名を取得
おすすめ情報