- 締切済み
エクセルのマクロの作り方
マクロ初心者です。 今勉強している最中ですが、以下の物を作りました。 Sub Macro1() ' ' Macro1 Macro ' ' Sheets("Sheet2").Select Range("A4").Select ActiveCell.Formula = "=Sheet1!IM4" ActiveCell.Offset(3, 0).Select ActiveCell.FormulaR1C1 = "=Sheet1!R[-3]C[240]" ActiveCell.Offset(3, 0).Select ActiveCell.FormulaR1C1 = "=sheet1!r[-6]c[234]" ActiveCell.Offset(3, 0).Select ActiveCell.FormulaR1C1 = "=sheet1!r[-9]c[228]" End Sub わかる人はもうお分かりかもしれませんが、ループという機能でもっと簡単にできるように思います。 これを手打ちしていくのであれば、手間がかかってしまい、マクロの意味がないというか… [-3]→[-6]→[-9]と、縦に参照したいセルが3つずつ上がっていき、横には左に6ずつ移動していきます。正確にはアクティブセルが移動しているのでってことなのでしょうけど…(たぶん…) 最初が絶対参照になっていて2回目以降から相対参照になっているのは、1回目で絶対参照にすれば、そのセルを基準として相対参照でRC[-6]でループさせられるかなっと思ったからです。。。結局そうなりませんでしたが… 作りたいのは、sheet2のA4とsheet1のIM4、sheet2のA7とsheet1のIG4をイコールにし、それを間隔は同じでsheet2のA127まで繰り返したものです。 本を買って、ネットで検索して色々とやったのですが、どうにもわからなく。。。 どうかよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>sheet2のA4とsheet1のIM4、sheet2のA7とsheet1のIG4をイコールにし、 >それを間隔は同じでsheet2のA127まで繰り返したもの まず考えを整理するため、必要な数字を順番に並べてみます。 シート2のA列の 4、7、10、…… 3ごとの数列で127まで。 シート1の4行目の IM列、IG列、… これだと数字じゃないんで、 247列、241列、235列… -6ごとの数列 sub 練習1() dim i as long for i = 4 to 127 step 3 cells(i, "A") = i next i end sub sub 練習2() dim i as long for i = 4 to 127 step 3 cells(i, "B") = 255 - i * 2 next i end sub sub 本番() dim i as long for i = 4 to 127 step 3 worksheets("Sheet2").cells(i, "A").formular1c1 = "=Sheet1!R4C" & (255 - i * 2) next i end sub
- mt2008
- ベストアンサー率52% (885/1701)
実機で確認していませんが、こんな感じでしょうか For i = 0 To 41 sString = "=Sheet1!R[" & i * (-3) & "]C[" & 246 - i * 6 & "]" Sheets("Sheet2").Cells(4 + i * 3, 1).Formula = sString Next i