• ベストアンサー

VBA 他シートを参照しているセルのコピー

お世話になります。 以下のシートがあります。 [sheet a]    A     B        C      D     E 1 2004 2005 2006 2007 2008 2 =b!A2 =b!C2 =b!E2 =b!G2 =b!I2 3 10 15 16 4 11 4 12 30 20 9 2 5 =SUM(A3:A4) =SUM(B3:B4) =SUM(C3:C4) =SUM(D3:D4) =SUM(E3:E4) [sheet b] A B C D E  F G H I J 2004 2005 2006 2007 2008 1 あ1 い1 う1 え1 お1 か1 き1 く1 け1 こ1 2 あ2 い2 う2 え2 お2 か2 き2 く2 け2 こ2 ・・・・・・・・・ [sheet a]F列以降に入れるデータは、VBA(マクロ)を使って、別のブックから取り出しています。 (例) F1…=E1+1(E1の数式をコピー) F3,F4…任意の値(別のブックからコピー) F5…=SUM(F3:F4)(E5の数式をコピー) 1行目,5行目の場合は左のセルをコピーして数式を貼り付けると、列が自動的に列が変わりますが、2行目の場合は元のシートを1行おきに参照しているので、単純にコピーしただけでは正しい数式が入りません。 2行目の参照をVBAで作るには、どのようにしたらいいでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.1

>[sheet a]F列以降に入れるデータは、VBA(マクロ)を使って、別のブックから取り出しています。 >(例) >F1…=E1+1(E1の数式をコピー) >F3,F4…任意の値(別のブックからコピー) マクロを使っているならコピーしなくても直接記述するのはどうですか? 該当部分だけです。 Sub siki() For a = 1 To 7 c = a - 1 Cells(2, a).Formula = "=b!RC[" & c & "]" Next a End Sub セル番地のR1C1形式を覚えましょう

mio_11_mio
質問者

お礼

早速のご回答、ありがとうございました。 R1C1形式を考えていたのですが、上手く記述できませんでした。 右列が増える形になるので、右端を設定する形に修正したら、思ったものになりました。 ありがとうございました。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

2行目のデータを他のワークシートから持ってくるためにマクロを使用することもありませんね。 例えばsheetaのA2セルには次のような式を入力し、右方向にオートフィルドラッグすればよいでしょう。 =INDEX(b!2:2,1,COLUMN(A1)*2-1)

mio_11_mio
質問者

お礼

早速のご回答をありがとうございました。 処理をするデータが多い上に、何列目まで伸びるかわからないため、マクロを使用しています。

関連するQ&A