人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

これを

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

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

●質問者: jamis
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3
●80ポイント ベストアンサー

マクロだと、こんな感じ。アクティブなシートの 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

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


jamisさんのコメント
回答ありがとうございます。 凄いですね。一発で変換できました。

2 ● 無頼庵
●20ポイント

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


jamisさんのコメント
回答ありがとうございます。 変換完了しました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ