• ベストアンサー

エクセルのマクロの相対参照と絶対参照の併用

いつもお世話になっております。 マクロ初心者です。(エクセル2010) 毎日更新されるデータがあり、これを特定の場所(I2-I7)に縦に集めた表が有ります。 A列には下方向に日付が入るとして、 これをコピーして、行方向(B1-G1)に貼り付ける作業をマクロの記録でやろうとしたのですが、コピーを取る場所の固定はマクロ編集で、絶対番地($j$7-$j$17)に変更すればできるのですが、貼り付ける行が毎日下にずれていくのでうまく行きません。 全てを相対参照で記録すると、日付けと一緒にコピー元の参照セルも下にずれていってしまいます。 どうすれば良いか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

まあ、Transpose=Trueで一気にやっちゃう手もありますが、分かりやすいのは コピー先の日付セルにカーソルを合わせた状態で Range("I2").Copy Selection.Offset(,1) Range("I3").Copy Selection.Offset(,2) Range("I4").Copy Selection.Offset(,3) Range("I5").Copy Selection.Offset(,4) Range("I6").Copy Selection.Offset(,5) とやる方法でしょうかね・・・。 http://officetanaka.net/excel/vba/cell/cell09.htm

akira0723
質問者

お礼

あっさりできてしまいました。 今まで毎日(日によっては複数回)やっていたのであまり気にならなかったのですが、最近マクロを勉強し始めたのでこれは当方でも出来そうだと思い質問させて頂きました。 想像以上にあっさりでした。 当方のレベルに合わせて頂いたことにも感謝!!!

akira0723
質問者

補足

なるほど、コピー元のセルを指定すれば良いことですね。 非常に参考になりました。

その他の回答 (1)

回答No.2

> 貼り付ける行が毎日下にずれていく この判断はどうやっているのでしょう? 問題はそこです。 例えば、日付=行 (1日→1行目 2日→2行目 ・・・ 30日→30行目)と 決まっていて、「本日の行」に貼り付けるのであれば     Range("I2:I7").Copy     Cells(Day(Now()), 2).PasteSpecial Paste:=xlPasteAll, _                  operation:=xlNone, _                  SkipBlanks:=False, _                  Transpose:=True こんな感じで出来ると思いますよ。 そうではない法則があるのであれば、 Cells(行, 列)の中身をCells(行判断基準, 2) としてやってくださいませ。

関連するQ&A