• ベストアンサー

エクセルマクロが組めない。

マクロど初心者です。 エクセルで空白の欄には上の文字が入力されていく マクロをを組みたいのですが どなたか教えてください。お願いいたします。 例えば     A    B    C 1  兵庫県 2 3   4  大阪府 5 6  京都府 7 8 9  広島県  とあった場合、(A2)(A3)には兵庫県・(A5)大阪府・(A7)(A8)には  京都府といったような感じです。  よろしくお願いします。

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

  • ベストアンサー
  • xsizukux
  • ベストアンサー率80% (4/5)
回答No.2

B列にもデータがあるとして、最終行をB列で調べて処理してます。 B列以外の場合は"B65536"の箇所を変更してください。 Dim i As Long Dim strA As String With Worksheets("Sheet1") For i = 1 To .Range("B65536").End(xlUp).Row If .Cells(i, "A").Value = "" Then .Cells(i, "A").Value = strA Else strA = .Cells(i, "A").Value End If Next End With

PY-
質問者

お礼

返事遅くなりましてすいません。 教えて頂いたやり方で無事にできました(^◇^)。 ありがとうございます。 これから自分でも少しずつ勉強していきたいとおもいます。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

A1が空白ではないものとして Sub TEST() Dim i As Long With ActiveSheet For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row If .Cells(i, "A") = "" Then .Cells(i, "A") = .Cells(i, "A").Offset(-1) End If Next End With End Sub

  • test_
  • ベストアンサー率28% (15/52)
回答No.1

確認をしていませんが、 以下のような2重ループでできると思います。 Whileあたりで間違っていると思いますが、 手直ししたら使えると思います。 また、いろいろな書き方がありますので、 どうぞ良いように使ってやってください・・・・。 For i = 1 To 300 If Len(Worksheets("Sheet1").Cells(i, 1)) = 0 Then j = 0 While (Len(Worksheets("Sheet1").Cells(i - j, 1)) <> 0) Worksheets("Sheet1").Cells(i, 1) = Worksheets("Sheet1").Cells(i - j, 1) j = j + 1 Wend End If Next i

関連するQ&A