• ベストアンサー

エクセルVBAについて

いつもお世話になっています。 VBAで、「B列(曜日の列・カレンダーは自動作成されます)が”金曜”だったら、その隣のC列に”●●”と入力する」というプログラムを作りたいと思っています。 今のところ 'B列の曜日が金曜日だったらC列に●●をセットする Set TargetRange = Range("B5:B35") For Each B In TargetRange If B.Value = "金" Then Cells(C.Cell).Value = "●●" End If Next となっていて、コンパイルは通るんですが実行されません。 番地を指定するのかな?とか予想はしているのですが・・・。 ヒントなどでも結構なので、ご教授ください。 お願い致します。

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>Cells(C.Cell).Value = "●●" この意味がわかりませんが・・・。 Cells(B.Row ,"C").Value = "●●" や Cells(B.Row ,3).Value = "●●" とか B.Offset(0,1).Value = "●●" とした方が良いのでは?

nepa-aiko
質問者

お礼

B.Offset(0, 1).Value = "●●" で動きました! ありがとうございました。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

>その隣のC列に”●●”と入力する Cells(C.Cell).Value = "●●" は間違いで B.Offset(0,1).Value = "●●" が正解 OffsetはB(Range)の座標から(行方向の移動値,列方向の移動値)ずれたセルを選択します。

nepa-aiko
質問者

お礼

B.Offset(0, 1).Value = "●●" で動きました! ありがとうございました。

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.2

とりあえず、 Cells(C.Cell).Value = "●●" を B.Offset(, 1).Value = "●●" に変えれば動きます。

nepa-aiko
質問者

お礼

B.Offset(0, 1).Value = "●●" で動きました! ありがとうございました。

関連するQ&A