エクセルのコピーについて


以下の様なエクセルデータがあります。

たまご
空白
空白
空白
りんご
空白
空白
空白

これを

たまご
たまご
たまご
たまご
りんご
りんご
りんご
りんご

としたいのですが、どのようにすればよいでしょうか?
元の文字列と空白には上記の様な規則性があり、数千行のデータがあります。
マクロや関数で処理する方法を教えていただきたいです。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2015/12/09 00:49:01
  • 終了:2015/12/09 20:56:20

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4365ベストアンサー獲得回数18012015/12/09 01:36:18

ポイント80pt

マクロだと、こんな感じ。アクティブなシートの A列を対象にしてます。

Const MAX_ROW = 10000       ' 最大の行番号
Const DATA_COLUMN = 1       ' A列

Sub embed_data_to_blank_cell()
    last_data = "(default)"     ' 最初の行が空白じゃないとは限らないので
    For r = 1 To MAX_ROW
        Set c = Cells(r, DATA_COLUMN)
        If IsEmpty(c) Or c.Value = "" Then
            c.Value = last_data
        Else
            last_data = c.Value
        End If
    Next
End Sub

どこかで打ち止めにしないと、延々と「りんご」が続くことになってしまいますので、とりあえず終了条件を行番号を指定してます。

id:jamis

回答ありがとうございます。
凄いですね。一発で変換できました。

2015/12/09 20:54:37

その他の回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4365ベストアンサー獲得回数18012015/12/09 01:36:18ここでベストアンサー

ポイント80pt

マクロだと、こんな感じ。アクティブなシートの A列を対象にしてます。

Const MAX_ROW = 10000       ' 最大の行番号
Const DATA_COLUMN = 1       ' A列

Sub embed_data_to_blank_cell()
    last_data = "(default)"     ' 最初の行が空白じゃないとは限らないので
    For r = 1 To MAX_ROW
        Set c = Cells(r, DATA_COLUMN)
        If IsEmpty(c) Or c.Value = "" Then
            c.Value = last_data
        Else
            last_data = c.Value
        End If
    Next
End Sub

どこかで打ち止めにしないと、延々と「りんご」が続くことになってしまいますので、とりあえず終了条件を行番号を指定してます。

id:jamis

回答ありがとうございます。
凄いですね。一発で変換できました。

2015/12/09 20:54:37
id:wild_yamato No.2

無頼庵回答回数217ベストアンサー獲得回数452015/12/09 13:46:34

ポイント20pt

キーボードマクロだけでも出来ますよ。
コピーしたいセルでマクロ登録を相対位置の設定で開始します。
セルをコピー(Ctr+C)して、Ctrキーを押しながら下矢印で、空白セルを飛ばします。セルを一つ上に戻してShiftキーを押しながら上矢印、そしてペースト(Ctr+V)、さらにCtrキーを押しながら下矢印で、次の文字があるとところへ戻ります。
これでマクロ登録は終了です。
このマクロに好きなショートカットキーをキーを付与してあげ、それを押し続けているだけで作業が完了します。
最後はシートの最後に飛んでしまうので、予め終わりが分かる文字をセルに入れておくのが良いでしょう。

id:jamis

回答ありがとうございます。
変換完了しました。

2015/12/09 20:55:05
  • id:jan8
    なるほど無頼庵さんの回答も良いですね。
    1行もコードを書かずにやりたい事が出来ます。
    突発的に1度だけ使うような案件には使えますね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません