Excel VBA 質問スレッド No.60 (解決済)

別シートに値を転記したい

投稿者 : すごい初心者です。。     投稿日時 : 2019/05/22(Wed) 05:06:57     OS : 未指定     EXCEL : 未指定
Sub macro1()
Sheets("まとめ").Range("G5").Value = Sheets("1").Range("H38").Value
Sheets("まとめ").Range("G6").Value = Sheets("1").Range("H40").Value
Sheets("まとめ").Range("G7").Value = Sheets("1").Range("H39").Value

Sheets("まとめ").Range("G8").Value = Sheets("1").Range("J38").Value
Sheets("まとめ").Range("G9").Value = Sheets("1").Range("J40").Value
Sheets("まとめ").Range("G10").Value = Sheets("1").Range("J39").Value

Sheets("まとめ").Range("G11").Value = Sheets("1").Range("L38").Value
Sheets("まとめ").Range("G12").Value = Sheets("1").Range("L40").Value
Sheets("まとめ").Range("G13").Value = Sheets("1").Range("L39").Value
            ↓
            G46まで続く

End Sub

Sub macro2()
Sheets("まとめ").Range("H5").Value = Sheets("2").Range("H38").Value
Sheets("まとめ").Range("H6").Value = Sheets("2").Range("H40").Value
Sheets("まとめ").Range("H7").Value = Sheets("2").Range("H39").Value

Sheets("まとめ").Range("H8").Value = Sheets("2").Range("J38").Value
Sheets("まとめ").Range("H9").Value = Sheets("2").Range("J40").Value
Sheets("まとめ").Range("H10").Value = Sheets("2").Range("J39").Value

Sheets("まとめ").Range("H11").Value = Sheets("2").Range("L38").Value
Sheets("まとめ").Range("H12").Value = Sheets("2").Range("L40").Value
Sheets("まとめ").Range("H13").Value = Sheets("2").Range("L39").Value
            ↓
            H46まで続く

End Sub


上記のような感じでsheets1-31の合計をsheetsまとめに転記したいのですが、
貼り付けるセルがSheets1-31の合計欄L38L40L39と上下しています。
こつこつ入れていくのが大変で、始めたばかりでこれ以上どうしていいかわかりません。
詳しい方教えてください。

[返信 1] Re : 別シートに値を転記したい
投稿者 : やまちゃんです。     投稿日時 : 2019/05/22(Wed) 20:52:10
質問された内容は単純なループ処理にはできない厄介な内容ですが、
ループ処理を使って3行づつ処理をするサンプルマクロをつくってみました。
macro1と2はまとめて1つにしてありますが、
サブプロシージャの知識があるのであればサブプロシージャとして切り出した方がよりすっきりしたマクロになりますね。


Sub sample()

Dim sh_matome As Worksheet
Dim sh_moto As Worksheet

Dim Row_matome As Integer
Dim Col_matome As Integer
Dim Col_moto As Integer

Set sh_matome = Worksheets("まとめ")
Set sh_moto = Worksheets("1")

Row_matome = 5
Col_matome = 6 ' G列

For Col_moto = 8 To 34 Step 2 ' H~AH列

sh_matome.Cells(Row_matome, Col_matome).Value = _
sh_moto.Cells(38, Col_moto).Value
Row_matome = Row_matome + 1

sh_matome.Cells(Row_matome, Col_matome).Value = _
sh_moto.Cells(40, Col_moto).Value
Row_matome = Row_matome + 1

sh_matome.Cells(Row_matome, Col_matome).Value = _
sh_moto.Cells(39, Col_moto).Value
Row_matome = Row_matome + 1

Next


' ここからmacro2の処理
Set sh_moto = Worksheets("2")

Row_matome = 5
Col_matome = 7 ' H列

For Col_moto = 8 To 34 Step 2 ' H~AH列

sh_matome.Cells(Row_matome, Col_matome).Value = _
sh_moto.Cells(38, Col_moto).Value
Row_matome = Row_matome + 1

sh_matome.Cells(Row_matome, Col_matome).Value = _
sh_moto.Cells(40, Col_moto).Value
Row_matome = Row_matome + 1

sh_matome.Cells(Row_matome, Col_matome).Value = _
sh_moto.Cells(39, Col_moto).Value
Row_matome = Row_matome + 1

Next


End Sub

[返信 2] Re : 別シートに値を転記したい
投稿者 : すごい初心者です。。     投稿日時 : 2019/05/23(Thu) 06:44:31
■[返信 1] やまちゃんです。さん(2019-05-22 20:52:10)の記事
> 質問された内容は単純なループ処理にはできない厄介な内容ですが、
> ループ処理を使って3行づつ処理をするサンプルマクロをつくってみました。
> macro1と2はまとめて1つにしてありますが、
> サブプロシージャの知識があるのであればサブプロシージャとして切り出した方がよりすっきりしたマクロになりますね。

やまちゃんさん
質問に答えていただいてとても嬉しいです^^
本当に初心者で、本やネットを見ながら仕事に役立てればと思い
勉強していますが、つまづいて意味が分からないことだらけです((+_+))
やまちゃんさんのを早速試してみます。
本当にありがとうございました。
サブプロシージャも勉強します。

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2019-08-26 10:14:24 )

Page
Top