以下のようなデータあり
【元データ】
  A         B         C
1 0         A         B
2 1         B         A
3 0         A         B

A列が”1”の場合のみB列の値とC列の値を入れ替えたい。

【得たいデータ】
  A         B         C
1 0         A         B
2 1         A         B
3 0         A         B

VBAで釦作成をし、クリックをすることで入れ替えができるようにと考えています。
ご教授よろしくお願いします。

A 回答 (2件)

sub macro1()


 dim h as range
 dim x as variant
 for each h in range("A1:A" & range("A65536").end(xlup).row)
  if h = 1 then
   x = h.offset(0, 1)
   h.offset(0, 1) = h.offset(0, 2)
   h.offset(0, 2) = x
  end if
 next
end sub


参考:
sub macro2()
 dim h as range
 for each h in range("A1:A" & range("A65536").end(xlup).row)
  if h = 1 then
   h.offset(0, 2).cut
   h.offset(0, 1).insert shift:=xlshifttoright
  end if
 next
end sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
おかげさまで問題解決できました。

お礼日時:2011/04/21 10:49

関数でも出来るのではないか。

なぜVBAでやるのかな。勉強のためにやりタイのかな。
E,D列を列挿入
例データ
A列   B列    C列    D列   E列
0ABAB
1CDDC
0EFEF
1GHHG
0IJIJ
D2に =IF($A2=0,B2,C2) 下方向に式を複写。
E2に =IF($A2=0,C2,B2) 下方向に式を複写。
D,E列の値をだけを、B,C列に複写して、D,E列を抹消
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報