Excel VBA 質問スレッド №2018 (解決済)
別シートへの転記
投稿者 : vb初心者 投稿日時 : 2024/10/05(Sat) 08:50:38 OS : 未指定 EXCEL : 未指定
日々の記録を月報にまとめるためのVBAを見よう見まねで作成しています。
日々の記録が1、1(2)と増やすこともあるだろうと数字になっている全シートから当該の値を、抽出しようと思っているのですが、
うまく動作しません。日々のシートを選ぶことができないようなのですが。
お分かりの方、教えて欲しいです。
よろしくお願いいたします。
以下、Webからコピペしながら作成したものです。
Dim WS As Worksheet
For Each WS In Worksheets
If WS.Name <> "○" And _
WS.Name <> "☆" And _
WS.Name <> "◇" Then
Dim LastRow As Integer
LastRow = Cells(Rows.Count, 2).End(xlUp).Row + 2
WS.Select
Range("E6:H25").Select
Selection.Copy
Sheets("◇").Select
Range("B" & LastRow).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
WS.Select
Range("R6:R25").Select
Selection.Copy
Sheets("◇").Select
Range("L" & LastRow).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
・・・
日々の記録を月報にまとめるためのVBAを見よう見まねで作成しています。
日々の記録が1、1(2)と増やすこともあるだろうと数字になっている全シートから当該の値を、抽出しようと思っているのですが、
うまく動作しません。日々のシートを選ぶことができないようなのですが。
お分かりの方、教えて欲しいです。
よろしくお願いいたします。
以下、Webからコピペしながら作成したものです。
Dim WS As Worksheet
For Each WS In Worksheets
If WS.Name <> "○" And _
WS.Name <> "☆" And _
WS.Name <> "◇" Then
Dim LastRow As Integer
LastRow = Cells(Rows.Count, 2).End(xlUp).Row + 2
WS.Select
Range("E6:H25").Select
Selection.Copy
Sheets("◇").Select
Range("B" & LastRow).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
WS.Select
Range("R6:R25").Select
Selection.Copy
Sheets("◇").Select
Range("L" & LastRow).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
・・・
スポンサーリンク
[返信 1] Re : 別シートへの転記
投稿者 : ピロリ 投稿日時 : 2024/10/05(Sat) 11:09:27
■[質問] vb初心者さん(2024-10-05 08:50:38)の記事
> 日々の記録が1、1(2)と増やすこともあるだろうと数字になっている全シートから当該の値を、抽出しようと思っているのですが、
> うまく動作しません。日々のシートを選ぶことができないようなのですが。
どう上手くいかないのか分かりませんが、シート名の 1文字目が 「0」~「9」の数字なら「日々の記録シート」と判断して良いなら、下のような感じ?
■[質問] vb初心者さん(2024-10-05 08:50:38)の記事
> 日々の記録が1、1(2)と増やすこともあるだろうと数字になっている全シートから当該の値を、抽出しようと思っているのですが、
> うまく動作しません。日々のシートを選ぶことができないようなのですが。
どう上手くいかないのか分かりませんが、シート名の 1文字目が 「0」~「9」の数字なら「日々の記録シート」と判断して良いなら、下のような感じ?
Sub Sample() Dim FromSh As Worksheet 'コピー元の日々の記録シート Dim ToSh As Worksheet 'コピー先の集計シート Dim LastRow As Long Set ToSh = Worksheets("◇") 'コピー先の集計シート For Each FromSh In Worksheets If Left(FromSh.Name, 1) Like "[0-9]" Then 'シート名の1文字目が数字ならば、 LastRow = ToSh.Cells(Rows.Count, "B").End(xlUp).Row + 2 FromSh.Range("E6:H25").Copy ToSh.Range("B" & LastRow).PasteSpecial Paste:=xlPasteValues FromSh.Range("R6:R25").Copy ToSh.Range("L" & LastRow).PasteSpecial Paste:=xlPasteValues End If Next Application.CutCopyMode = False 'コピーモードの解除 End Sub
[返信 2] Re : 別シートへの転記
投稿者 : vb初心者 投稿日時 : 2024/10/05(Sat) 12:43:02
ピロリさん
説明が十分でない中で、回答ありがとうございました。
日々の記録以外のシートを除く設定がうまくできず、結果的にエラーが出続ける状況が数日続いていたのですが、
お陰様で解決しました。
「数字なら…」か。大変助かりました。
ピロリさん
説明が十分でない中で、回答ありがとうございました。
日々の記録以外のシートを除く設定がうまくできず、結果的にエラーが出続ける状況が数日続いていたのですが、
お陰様で解決しました。
「数字なら…」か。大変助かりました。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-05 17:35:19 )