[[20150420093413]] 『シート間のコピペのマクロ。列をひとつずらし、ペ』(ぺもと) ページの最後に飛ぶ

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

 

『シート間のコピペのマクロ。列をひとつずらし、ペーストする場所は同じになるようなマクロを作りたいです。』(ぺもと)

マクロ VBAについて質問です。

毎月のデータを入力するためにマクロを作成したいと思っています。
シート2のデータからシート1に貼り付けていく作業です。
1つの月のデータをコピペするマクロは作成できました(以下記載。できればこれもすっきりさせたいです…。)

Sub Macro1()
'
' Macro1 Macro
'

'

    Sheets("入力").Select
    Range("C5:C23").Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("D5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("入力").Select
    Range("C28:C46").Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("J5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("入力").Select
    Range("O5:O23").Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("F5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("入力").Select
    Range("O28:O46").Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("L5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("目標").Select
    Range("B4:B22").Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("C5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("目標").Select
    Range("B27:B45").Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("I5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("前年同期").Select
    Range("C5:C23").Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("H5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("前年同期").Select
    Range("C28:C46").Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("N5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

毎月行いたいので、1月〜12月それぞれのマクロを作るしかないのかな…と行き詰っています。
以下私の理想です。

データは各月分あるので、翌月のデータは隣の列にあります。なので、ボタンを押すだけで、右隣の列のデータを貼り付けられるマクロの方法が知りたいです。
貼り付ける先は同じセルです。

どうか知恵をお貸しくださいませ。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 一つのコピーは
    Sheets("入力").Range("C5:C23").Copy
    Sheets("住宅資金").Range("D5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 のようにかけます。

 ずらしたいのがコピー元か、コピー先かわかりませんが、コピー元を m 列ずらすのであればであれば
    m = Month(Date) - 1
    Sheets("入力").Range("C5:C23").Offset(0, m).Copy
    Sheets("住宅資金").Range("D5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 のようにかけます。

 mを入力で指定するか、月々変更するような修正でできないでしょうか。
(Mook) 2015/04/20(月) 10:23

早速のお返事ありがとうございます。
マクロがすっきりしました。感謝です。

ずらしたいのはコピー元です。
やはり、1つ1つの月ごとに別のマクロを作成するしかないですか?

1つのマクロ(ボタン使用)で12か月分できるような夢のようなものはないですか?
(1回押したら次の月のマクロに変わる…みたいな……。)
(ぺもと) 2015/04/20(月) 10:47


例えば、住宅資金シートのB2セルに月を入力して、
以下のマクロを実行すれば、指定月のデータを取得できるかな?

Sub Macro1()
Dim wkm As Integer

    Sheets("住宅資金").Select
    wkm = Range("B2")

    Sheets("入力").Select
    Range(Cells(5, wkm + 2), Cells(23, wkm + 2)).Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("D5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("入力").Select
    Range(Cells(28, wkm + 2), Cells(46, wkm + 2)).Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("J5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("入力").Select
    Range(Cells(5, wkm + 14), Cells(23, wkm + 14)).Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("F5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("入力").Select
    Range(Cells(28, wkm + 14), Cells(46, wkm + 14)).Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("L5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("目標").Select
    Range(Cells(4, wkm + 1), Cells(22, wkm + 1)).Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("C5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("目標").Select
    Range(Cells(27, wkm + 1), Cells(45, wkm + 1)).Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("I5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("前年同期").Select
    Range(Cells(5, wkm + 2), Cells(23, wkm + 2)).Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("H5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("前年同期").Select
    Range(Cells(28, wkm + 2), Cells(46, wkm + 2)).Select
    Selection.Copy
    Sheets("住宅資金").Select
    Range("N5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
(コヨーテひな) 2015/04/20(月) 10:52

 コヨーテひなさんのコードを簡略化してみました(勝手にすいません)

 Sub Macro1()

     Dim wkm As Long

     wkm = Sheets("住宅資金").Range("B2")

     With Sheets("入力")
          Sheets("住宅資金").Range("D5:D23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
          Sheets("住宅資金").Range("J5:J23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
          Sheets("住宅資金").Range("F5:F23").Value = .Range(.Cells(5, wkm + 14), .Cells(23, wkm + 14)).Value
          Sheets("住宅資金").Range("L5:L23").Value = .Range(.Cells(28, wkm + 14), .Cells(46, wkm + 14)).Value
     End With

     With Sheets("目標")
          Sheets("住宅資金").Range("C5:C23").Value = .Range(.Cells(4, wkm + 1), .Cells(22, wkm + 1)).Value
          Sheets("住宅資金").Range("I5:I23").Value = .Range(.Cells(27, wkm + 1), .Cells(45, wkm + 1)).Value
     End With

     With Sheets("前年同期")
          Sheets("住宅資金").Range("H5:H23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
          Sheets("住宅資金").Range("N5:N23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
     End With

 End Sub
(se_9) 2015/04/20(月) 11:14

se_9さん

簡略化、ありがとうございます。

本当に勉強になります。
(コヨーテひな) 2015/04/20(月) 11:18


コヨーテひなさんもse_9さんもありがとうござます。

"例えば、住宅資金シートのB2セルに月を入力"というのは、
入力シートのC4セルに月を入力してもよいのでしょうか?
ちなみに、月別のデータは4月始まりの3月終わりという並びになってます。

お二人が教えてくださったマクロを実行しましたが、「型が一致しません」と出ます。
どこを直したらよいでしょうか…何度もすみません。
(ぺもと) 2015/04/20(月) 12:03


以下で動くと思いますが、格好悪いので、達人の助けを借りたいです。
テーブルの設定の仕方がよくわかりません。

 Sub Macro1()

    Dim wkm As Long
    Dim wkn As Long
    Dim wkt(12) As Variant

    wkn = Sheets("入力").Range("C4")
    'この部分の設定の仕方がよくわかりません
    wkt(1) = 10
    wkt(2) = 11
    wkt(3) = 12
    wkt(4) = 1
    wkt(5) = 2
    wkt(6) = 3
    wkt(7) = 4
    wkt(8) = 5
    wkt(9) = 6
    wkt(10) = 7
    wkt(11) = 8
    wkt(12) = 9

    wkm = wkt(wkn)

    With Sheets("入力")
         Sheets("住宅資金").Range("D5:D23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("J5:J23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
         Sheets("住宅資金").Range("F5:F23").Value = .Range(.Cells(5, wkm + 14), .Cells(23, wkm + 14)).Value
         Sheets("住宅資金").Range("L5:L23").Value = .Range(.Cells(28, wkm + 14), .Cells(46, wkm + 14)).Value
    End With

    With Sheets("目標")
         Sheets("住宅資金").Range("C5:C23").Value = .Range(.Cells(4, wkm + 1), .Cells(22, wkm + 1)).Value
         Sheets("住宅資金").Range("I5:I23").Value = .Range(.Cells(27, wkm + 1), .Cells(45, wkm + 1)).Value
    End With

    With Sheets("前年同期")
         Sheets("住宅資金").Range("H5:H23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("N5:N23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
    End With

 End Sub
(コヨーテひな) 2015/04/20(月) 15:05

スマートになりました。

Sub Macro1()

    Dim wkm As Long
    Dim wkn As Long
    Dim wkt As Variant
  
    wkn = Sheets("入力").Range("C4")
  wkt = Array(0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    wkm = wkt(wkn)

    With Sheets("入力")
         Sheets("住宅資金").Range("D5:D23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("J5:J23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
         Sheets("住宅資金").Range("F5:F23").Value = .Range(.Cells(5, wkm + 14), .Cells(23, wkm + 14)).Value
         Sheets("住宅資金").Range("L5:L23").Value = .Range(.Cells(28, wkm + 14), .Cells(46, wkm + 14)).Value
    End With

    With Sheets("目標")
         Sheets("住宅資金").Range("C5:C23").Value = .Range(.Cells(4, wkm + 1), .Cells(22, wkm + 1)).Value
         Sheets("住宅資金").Range("I5:I23").Value = .Range(.Cells(27, wkm + 1), .Cells(45, wkm + 1)).Value
    End With

    With Sheets("前年同期")
         Sheets("住宅資金").Range("H5:H23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("N5:N23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
    End With

 End Sub

(コヨーテひな) 2015/04/20(月) 16:20


コヨーテひなさんありがとうごさいます!

また質問なのですが…
このマクロで、どうやったら次の月のデータになるのでしょうか…?
ボタンを作って押すんでしょうか?
うーん…かなりの初心者ですみません。
(ぺもと) 2015/04/20(月) 17:34


現在がどの月を指しているのかの基準が解りませんので、
月指定ということで作った物になります。

常に4月を基準に、ボタンを押すたびに一月づつ進むように
するのであれば出来ます。

(コヨーテひな) 2015/04/21(火) 08:30


または、ファイルを開くと当月を基準として、進めていくことも可能です。
(コヨーテひな) 2015/04/21(火) 08:39

以下は、ファイルを開くと当月の値が設定されて、どこかのシートに
ボタンを設定して、そのボタンに、Next_Monthのマクロを割り当てれば、
次々と月が更新されます

入力シートのC4セルに処理した月を保管しています。

 Sub auto_open()

    Dim wkm As Long
    Dim wkn As Long
    Dim wkt As Variant
    Dim dt As Date
    Dim mi As Integer

    dt = Date
    mi = Month(dt)

    wkt = Array(0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    wkm = wkt(mi)
    Sheets("入力").Range("C4") = wkm

    Call Macro1(wkm)

 End Sub

  Sub Next_Month()

    wkm = Sheets("入力").Range("C4") + 1
    If wkm = 13 Then
        wkm = 1
    End If
    Sheets("入力").Range("C4") = wkm

    Call Macro1(wkm)

 End Sub

  Sub Macro1(ByVal wkm As Long)

    With Sheets("入力")
         Sheets("住宅資金").Range("D5:D23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("J5:J23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
         Sheets("住宅資金").Range("F5:F23").Value = .Range(.Cells(5, wkm + 14), .Cells(23, wkm + 14)).Value
         Sheets("住宅資金").Range("L5:L23").Value = .Range(.Cells(28, wkm + 14), .Cells(46, wkm + 14)).Value
    End With

    With Sheets("目標")
         Sheets("住宅資金").Range("C5:C23").Value = .Range(.Cells(4, wkm + 1), .Cells(22, wkm + 1)).Value
         Sheets("住宅資金").Range("I5:I23").Value = .Range(.Cells(27, wkm + 1), .Cells(45, wkm + 1)).Value
    End With

    With Sheets("前年同期")
         Sheets("住宅資金").Range("H5:H23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("N5:N23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
    End With

 End Sub
(コヨーテひな) 2015/04/21(火) 09:59

おはようございます。
なるほど。形になってきました!
入力シートのC4には、「4月」と入れてもできますか?「4」だけのほうがよいですか?

それと…
入力シートのO5:O23から、住宅資金のF5へのコピペと、
入力シートのO28:O46から、住宅資金のL5へのコピペは、月が変わっても固定にしたいです。

可能でしょうか。何度も何度もすみません。ありがとうございます。
(ぺもと) 2015/04/21(火) 10:52


入力シートのC4には、「4月」と入れてもできますか?「4」だけのほうがよいですか?

すみません、意味不明な質問でした><無視してください。

そして、追加で質問です。
処理した月を保管するセルが1から始まるのですが、4から始まることは可能ですか?
(ぺもと) 2015/04/21(火) 11:11


こちらに差し替えてtください

Sub auto_open()

    Dim wkm As Long
    Dim wkn As Long
    Dim wkt As Variant
    Dim wks As Variant
    Dim dt As Date
    Dim mi As Integer

    dt = Date
    mi = Month(dt)

    wkt = Array(0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    wks = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    wkm = wkt(mi)

    Call Macro1(wkm)

    Sheets("入力").Range("C4") = wks(mi)

 End Sub

  Sub Next_Month()
    Dim wks As Variant
    Dim dt As Date
    Dim mi As Integer

    wks = Array(0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    If Sheets("入力").Range("C4") = 12 Then
        wkm = 10
    Else
        wkm = wks(Sheets("入力").Range("C4") + 1)
    End If

    Call Macro1(wkm)

    wks = Array(0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3)
    Sheets("入力").Range("C4") = wks(wkm)

 End Sub

  Sub Macro1(ByVal wkm As Long)

    With Sheets("入力")
         Sheets("住宅資金").Range("D5:D23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("J5:J23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
         Sheets("住宅資金").Range("F5:F23").Value = .Range(.Cells(5, 15), .Cells(23, 15)).Value
         Sheets("住宅資金").Range("L5:L23").Value = .Range(.Cells(28, 15), .Cells(46, 15)).Value
    End With

    With Sheets("目標")
         Sheets("住宅資金").Range("C5:C23").Value = .Range(.Cells(4, wkm + 1), .Cells(22, wkm + 1)).Value
         Sheets("住宅資金").Range("I5:I23").Value = .Range(.Cells(27, wkm + 1), .Cells(45, wkm + 1)).Value
    End With

    With Sheets("前年同期")
         Sheets("住宅資金").Range("H5:H23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("N5:N23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
    End With

 End Sub
(コヨーテひな) 2015/04/21(火) 11:43

ありがとうございます!
思い通りのマクロができあがりました!
作業スピードが上がります。

大変お世話になりました。
(ぺもと) 2015/04/21(火) 11:57


おはようございます。
すみません、また新たな問題が発生したため質問させていただきます。
上記のとおり、コヨーテひなさんに教えていただいたマクロをもとに、私なりにアレンジしてみたのですが、よくわかりませんでした。
というのも、新たにコピペしたいセルがでてきたのです。

Sub auto_open()

    Dim wkm As Long
    Dim wkn As Long
    Dim wkt As Variant
    Dim wks As Variant
    Dim dt As Date
    Dim mi As Integer

    dt = Date
    mi = Month(dt)

    wkt = Array(0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    wks = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    wkm = wkt(mi)

    Call Macro1(wkm)

    Sheets("住宅資金").Range("D2") = wks(mi)

 End Sub

  Sub Next_Month()
    Dim wks As Variant
    Dim dt As Date
    Dim mi As Integer

    wks = Array(0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    If Sheets("住宅資金").Range("D2") = 12 Then
        wkm = 10
    Else
        wkm = wks(Sheets("住宅資金").Range("D2") + 1)
    End If

    Call Macro1(wkm)

    wks = Array(0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3)
    Sheets("住宅資金").Range("D2") = wks(wkm)

 End Sub

  Sub Macro1(ByVal wkm As Long)

    With Sheets("入力")
         Sheets("住宅資金").Range("D5:D23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("J5:J23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
         Sheets("住宅資金").Range("F5:F23").Value = .Range(.Cells(5, 15), .Cells(23, 15)).Value
         Sheets("住宅資金").Range("L5:L23").Value = .Range(.Cells(28, 15), .Cells(46, 15)).Value
    End With

    With Sheets("目標")
         Sheets("住宅資金").Range("C5:C23").Value = .Range(.Cells(4, wkm + 1), .Cells(22, wkm + 1)).Value
         Sheets("住宅資金").Range("I5:I23").Value = .Range(.Cells(27, wkm + 1), .Cells(45, wkm + 1)).Value
    End With

    With Sheets("前年同期")
         Sheets("住宅資金").Range("H5:H23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("N5:N23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
    End With

 End Sub

これに加えて、
・入力シートのT5:T23を、住宅資金シートのO5:O23に貼り付け
・入力シートのT28:T46を、住宅資金シートのP5:P23に貼り付け
・前年同期シートのT5:T23を、住宅資金シートのQ5:Q23に貼り付け
いずれも、前回教えていただいたものと同様に、ボタンを押すごとにコピー元が4月〜3月の順番で1つずつ移動し、貼付先は変わらない

というマクロを作成したいと考えています。
努力をしてみましたが手立てが見つからず、再びこちらでご助言をいただきたいと思いました次第でございます。
よろしくお願いいたします。
(ぺもと) 2015/04/23(木) 10:05


以下の部分だけ差し換えてください。

 Sub Macro1(ByVal wkm As Long)

    With Sheets("入力")
         Sheets("住宅資金").Range("D5:D23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("J5:J23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
         Sheets("住宅資金").Range("F5:F23").Value = .Range(.Cells(5, 15), .Cells(23, 15)).Value
         Sheets("住宅資金").Range("L5:L23").Value = .Range(.Cells(28, 15), .Cells(46, 15)).Value
         Sheets("住宅資金").Range("O5:O23").Value = .Range(.Cells(5, wkm + 19), .Cells(23, wkm + 19)).Value
         Sheets("住宅資金").Range("P5:P23").Value = .Range(.Cells(28, wkm + 19), .Cells(46, wkm + 19)).Value
    End With

    With Sheets("目標")
         Sheets("住宅資金").Range("C5:C23").Value = .Range(.Cells(4, wkm + 1), .Cells(22, wkm + 1)).Value
         Sheets("住宅資金").Range("I5:I23").Value = .Range(.Cells(27, wkm + 1), .Cells(45, wkm + 1)).Value
    End With

    With Sheets("前年同期")
         Sheets("住宅資金").Range("H5:H23").Value = .Range(.Cells(5, wkm + 2), .Cells(23, wkm + 2)).Value
         Sheets("住宅資金").Range("N5:N23").Value = .Range(.Cells(28, wkm + 2), .Cells(46, wkm + 2)).Value
         Sheets("住宅資金").Range("Q5:Q23").Value = .Range(.Cells(5, wkm + 19), .Cells(23, wkm + 19)).Value
    End With

 End Sub
(コヨーテひな) 2015/04/23(木) 13:00

本当にありがとうございます。
もっともっと勉強していきたいと思います。
(ぺもと) 2015/04/23(木) 13:22

 こんにちは
 横から失礼します。

 基本的には、Sub Macro1(ByVal wkm As Long) の該当のシートのところにコードを追加すればいいのですが
 転記コードの右辺が、(ペもと)さんにとって、ちょっと難しいですかね?
 今後の追加のためにも、(Mook) 2015/04/20(月) 10:23 で Mookさんがアドバイスされて記述にしておいたほうが
 なにかとわかりやすいと思います。

 ちなみに、現在の Macro1 を、その形にすると以下のようになるはずです。
 これを、じ〜〜っと見つめていると、今回追加する3つのブロックの転記コードは、どこにどう書けばいいか
 おわかりになると思いますよ。

 Sub Macro1(ByVal wkm As Long)

    With Sheets("入力")
         Sheets("住宅資金").Range("D5:D23").Value = .Range("C5:C23").Offset(, wkm - 1).Value
         Sheets("住宅資金").Range("J5:J23").Value = .Range("C28:C46").Offset(, wkm - 1).Value
         Sheets("住宅資金").Range("F5:F23").Value = .Range("O5:O23").Value
         Sheets("住宅資金").Range("L5:L23").Value = .Range("O28:O46").Value
    End With

    With Sheets("目標")
         Sheets("住宅資金").Range("C5:C23").Value = .Range("B4:B22").Offset(, wkm - 1).Value
         Sheets("住宅資金").Range("I5:I23").Value = .Range("B27:B45").Offset(, wkm - 1).Value
    End With

    With Sheets("前年同期")
         Sheets("住宅資金").Range("H5:H23").Value = .Range("C5:C23").Offset(, wkm - 1).Value
         Sheets("住宅資金").Range("N5:N23").Value = .Range("C28:C46").Offset(, wkm - 1).Value
    End With

 End Sub

(β) 2015/04/23(木) 14:29


βさん

(Mook) 2015/04/20(月) 10:23 で Mookさんがアドバイスされた内容がよく理解できませんでしたが、
βさんのコードを見て解りました。
どうもありがとうございました。
こちらのほうが今後も修正しやすいです。

(コヨーテひな) 2015/04/23(木) 14:56


βさん、コメントありがとうございます。
確かに、mookさんからのアドバイスのコードは一目瞭然でわかりやすいです。
βさんがわかりやすい見方を教えてくれたおかげで、コヨーテひなさんのコードの意味もわかりました。
座標のような感じで数字があったのですね。なるほど。
コードを追加しても混乱せずに済みます。

本当にありがとうございます。
(ぺもと) 2015/04/23(木) 15:11


コメント返信:

[ 一覧(最新更新順) ]


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