• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル VBA で 教えてください!)

エクセルVBAで教えてください!初心者で困っています

このQ&Aのポイント
  • エクセルVBAを初めて使う初心者が困っています。A列とB列とC列のデータを操作する方法について教えてください。
  • B列にいる自分のセルを基準に、A列のデータによって操作を行いたいです。A列がBならば、隣のCセルのデータを自分のセルにコピーし、A列がDならば、上のセル(Bの時にコピーしたデータ)を自分のセルにコピーします。
  • A列のデータが空白になるまで、上記の操作を繰り返すことで、B列を埋めたいです。エクセルVBAに詳しい方、ご教授お願いします!

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

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

んじゃま、真面目にVBAで。 VBEの使い方はご存じだと言う前提で、コードだけ。 Sub test() Range("B1").Select Do Until Selection.Offset(, -1).Value = "" Select Case Selection.Offset(, -1).Value Case "B" Selection.Value = Selection.Offset(, 1).Value Case "D" Selection.Value = Selection.Offset(-1).Value Case Else End Select Selection.Offset(1).Select Loop End Sub Range("B1").Select で、B1セルを選択しておいて、あとは 1.Do Until Selection.Offset(, -1).Value = ""で、一つ左の セルが空白までループ 2.Select Case Selection.Offset(, -1).Valueで、一つ左の セルの内容によって処理を切り替える。 3.Selection.Value = Selection.Offset(, 1).Valueは、一つ 右の、.Offset(-1)は一つ上のセルの内容を選択したセルに 設定する。 4.Selection.Offset(1).Selectで、一つ下のセルを選択し直し こんな感じでどうですか?

faoihibiki
質問者

お礼

誠にありがとうござます。無理を言って申し訳ありませんでした素晴らしく成功しました 助かりました。感謝いたします

その他の回答 (1)

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

VBAなんぞ使わなくても、 =IF(A2="B",C2,IF(A2="D",B1),"") こいつを下にコピーで済む話なんじゃ?

faoihibiki
質問者

補足

ありがとうございます 説明が足りなくてすいません accessから エクセルのvbaを動かして自動でやりたいのです。 教えて頂いた関数を手動で行いましたが、多すぎる引数でエラーとなりました、申し訳ありませんが ご存知でしたらマクロとして使えるvbaでお願いします!

関連するQ&A