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

Excelの質問です。今「サンプルその1」というシートのG列にデータが入ってます。
G列
2 (空白セル)
3 りんご
4 ● あいうえお
5 ● かきくけこ
6 ● さしすせそ
7 (空白セル)
8 (空白セル)
9 ごりら
10 ● あいうえお
11 ● かきくけこ
12 ● さしすせそ
13 ● たちつてと
14 ● なにぬねの
15 (空白セル)
16 (空白セル)
17 らっぱ
18 ● あいうえお
19 ● かきくけこ
20 ● さしすせそ
21 ● たちつてと
22 ● なにぬねの
23 ● はひふへほ
24 ● まみむめも
25 ● やゆよ

3行目に「りんご」、9行目に「ごりら」、17行目に「らっぱ」と入っております。あとは黒丸(●)+不規則な文字列が入ったセルです。
4行から6行目のセルの黒丸は「りんご」に。
10行目から14行目のセルの黒丸は「ごりら」に。
18行目から25行目のセルの黒丸は「らっぱ」に、変換したいのです。
変換したい文字列の直前の2行には必ず、空白セルが入る規則性がありますので、マクロや関数で何とか出来るのではないかと思いまして。
この処理を3000行ぐらいまで行いたいです。よろしくお願いします。

●質問者: moon-fondu
●カテゴリ:コンピュータ 学習・教育
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

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

こんな感じでしょうか。

Const MAX_ROW = 3000  ' 処理対象の行数です。適当に大きくしてください。

Public Sub 黒丸置換()
 blank_count = 0
 For r = 1 To MAX_ROW
 Set c = Sheets("サンプルその1").Range("G" & r)
 If IsEmpty(c) Then
 blank_count = blank_count + 1
 Else
 If blank_count >= 2 Then
 word = c.Value
 Else
 c.Value = Replace(c.Value, "●", word)
 End If
 blank_count = 0
 End If
 Next
End Sub

上記のコードを、標準モジュールに貼り付けて、ボタンのマクロ登録するなどして、「黒丸置換」というサブルーチンを実行してください。

質問に書いてある内容以外に、勝手に想像したこと。


moon-fonduさんのコメント
わーすごいです! うまく変換できました!! ありがとうございます。

2 ● gong1971
●100ポイント

オートフィルタで簡単に実現出来ます。
※念の為、バックアップを作成してお試しください。

1.他の列も含め、データ範囲を選択します。
※A1のセルを選択し、[Ctrl]+[Shift]+[End]とすると簡単です。
2.ホームリボンの[並べ替えとフィルタ]から
[フィルタ]でオートフィルタを設定する。
3.G1のドロップダウンリストから、
[テキストフィルタ][指定の値で始まる]をクリック。
4.左上の抽出条件に ● と入力し、[OK]をクリック。
5.例で言うと「● あいうえお」と入力されたセルG4を選択。
6.G4に次の数式 =G3 を入力する。※1つ上のセルを参照する数式です
7.G4のセルを[コピー]し、フィルタで抽出された範囲を選択し、
[貼り付け]を行います。
8.ホームリボンの[並べ替えとフィルタ]から
[クリア]でフィルタを解除する。

これで、ご要望の内容は実現できるかと思います。
ただ、このままでは数式のままなので、
必要であれば、下記の値貼り付けを行ってください。

9.G列を選択し[コピー]、ホームリボンの貼り付けの▼をクリックし、
値貼り付けの[値](123と描かれたボタン)をクリック。

※Excel2010で回答を作成しました。
別バージョンやMacintoshの場合で、
表記が違う場合は、その旨をお知らせください。


gong1971さんのコメント
8.が記述ミスでした。下記が正しいです。 元の回答も修正しておきますね。 正 8.ホームリボンの[並べ替えとフィルタ]から [クリア]でフィルタを解除する。 誤 8.ホームリボンの[並べ替えとフィルタ]から [フィルタ]でオートフィルタを設定する。

moon-fonduさんのコメント
ありがとうございます、試してみます!
関連質問

●質問をもっと探す●



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