• ベストアンサー

Excell : 現在のカーソルがある行の特定の列に値を書き込むマクロ

現在のカーソルがある行の特定の列に値を書き込むマクロの書き方を教えてください。以下は20行めのA列、B列にa, b を書き込むものですが、最初のRange("A20").Selectをカレント行に設定するコードを書けばいいのでしょうか?具体的な記述を教えてください。よろしくお願いします。 Sub Macro4() Range("A20").Select ActiveCell.FormulaR1C1 = "a" Range("B20").Select ActiveCell.FormulaR1C1 = "b" Range("C20").Select End Sub

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.6

以下のように色んな方法があります。   Sub Macro4() Cells(ActiveCell.Row, 1).Value = "a" Cells(ActiveCell.Row, 2).Value = "b" End Sub Sub Macro5() Cells(ActiveCell.Row, "A").Value = "a" Cells(ActiveCell.Row, "B").Value = "b" End Sub Sub Macro6() Cells(ActiveCell.Row, "A").Value = "a" Cells(ActiveCell.Row, "A").Offset(, 1).Value = "b" End Sub Sub Macro7() Range("A" & ActiveCell.Row).Value = "a" Range("B" & ActiveCell.Row).Value = "b" End Sub Sub Macro8() Range("A" & ActiveCell.Row).Value = "a" Range("A" & ActiveCell.Row).Offset(, 1).Value = "b" End Sub 尚、それぞれのValueは削除可能ですが付けておいた方がベターです。    

zuntac
質問者

お礼

回答ありがとうございます。 勉強になりました。感謝です。

その他の回答 (5)

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

Range や Cells で、最初から記入位置をしてしても構いません。 Sub Macro4() Range("A20").FormulaR1C1 = "a" Range("B20").FormulaR1C1 = "b" Cells(20, 3).FormulaR1C1 = "c" End Sub

zuntac
質問者

お礼

回答ありがとうございます。 固定の内容をカーソルを置いた位置に書き込みたい のでActiveなrowを知る必要があります。

  • WWolf
  • ベストアンサー率26% (51/192)
回答No.4

シートのコードに Private Sub CommandButton1_Click() a = ActiveCell.Row Cells(a, 3).Value = "a" Cells(a, 4).Value = "b" End Sub でコマンドボタンを押せばアクティブなセルのC列にa,B列にbがはいります。

zuntac
質問者

お礼

回答ありがとうございます。

  • WWolf
  • ベストアンサー率26% (51/192)
回答No.3

シートのコードに Private Sub Worksheet_SelectionChange(ByVal Target As Range) a = ActiveCell.Row Cells(a, 3).Value = "a" Cells(a, 4).Value = "b" End Sub でアクティブになったセルのC列にa,B列にbがはいります。

zuntac
質問者

お礼

ていねいな回答をありがとうございます。

  • jindon
  • ベストアンサー率43% (50/116)
回答No.2

Sub Macro4() Range("A" & ActiveCell.Row).Value="a" Range("B" & ActiveCell.Row).Value="b" End Sub

zuntac
質問者

お礼

回答ありがとうございます。 さっそく試してみて、うまくいきました。 シンプルな書き方で分かりやすいですね。

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.1

現在の行は(カーソルのある行) ActiveCell.Row で求まります Sub aaa() row1 = ActiveCell.Row '現在の行を求める Cells(row1, 1) = "aaa" 'A 列にいれる Cells(row1, 2) = "bbb" 'B 列にいれる Cells(row1, 3) = "ccc" 'C 列にいれる End Sub

zuntac
質問者

お礼

回答ありがとうございます。 さっそく試してみて、うまくいきました。

関連するQ&A