- ベストアンサー
Excelのシートにある全文字列を拾い出す
Excelのシートに表(50列×50行)があり、その中のセルは任意に結合され、そのセルの中に文字列(単語)が入力してあります。 今回、その用語の索引をExcelで作りたく、その全文字を縦1列に拾い出したいのですが、効率的な方法を教えて下さい。 Excelは2003です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
例データ 大阪 bb 京都(C1とD1は結合) 大藤 奈良 伊勢 大東 標準モジュールに Sub test01() Dim cl As Range k = 2 For Each cl In Range("A1:D3") If cl <> "" Then Cells(k, "K") = cl Cells(k, "L") = Application.GetPhonetic(Cells(k, "K")) k = k + 1 End If Next End Sub ーー 結果 K列 L列 大阪 オオサカ bb bb 京都 キョウト dd dd 奈良 ナラ 伊勢 イセ 大東 ダイトウ フリガナは代表的な読みになってしまうが、使えるかどうか。 ーー 下記にすると Sub test01() Dim cl As Range k = 2 For Each cl In Range("A1:D3") If cl <> "" Then cl.Copy Cells(k, "K").Select ActiveSheet.Paste 'Cells(k, "L") = Application.GetPhonetic(Cells(k, "K")) k = k + 1 End If Next End Sub だと入力時の読みを引き継ぐようだ。 大東ーオオヒガシ 並べ替えで、オプションの「フリガナを使う」、に使えると思う。 ーー 参考 http://kokoro.kir.jp/excel/furigana.html
その他の回答 (3)
間に合わなかったかもしれませんが…。 ●ふりがな情報を保持したまま矩形データを一列に並べる 手際次第ですが、3分くらいはかかってしまうかもしれません。 1.Ctrl + N 2.Ctrl + G > A1:AX2500 と入力 > Enter 3.数式バーに =IF(COLUMN()<(ROW()-1)/50,"",0) と入力 > Ctrl + Enter 4.問題の表をコピー > AY1セルを選択 > 貼り付け 5.セルの結合を解除 6.(問題の表全体(AY1:CV50)を選択した状態で)右下隅の■をダブルクリック 7.Ctrl + Home > Ctrl + G > セル選択 > 数式 > 数値のチェックを外す > OK 8.Ctrl + - (マイナス) > Enter AY列がご要望のリストとなります。
- mu2011
- ベストアンサー率38% (1910/4994)
安直ですが、次の方法は如何でしょうか。 (1)対象範囲をコピー→ワードファイルに貼り付け (2)編集→置換で特殊文字から検索文字列欄に「タブ」と置換文字列欄に「任意指定の行区切り」を選択→全て置換 参考.秀丸エディタならtab(\t)を改行(\n)に置換 (3)ワードファイルの変換範囲をコピー→形式を選択して貼り付け→テキストを選択
お礼
早速の回答ありがとうございます。 ご説明のようにやって、なんとかテキストデータは取り出せました。 ありがとうございました。 質問で言葉たらずでしたが、索引を作りたいので、このテキストデータが”あいうえお”順に並ぶとさらによいのですが、テキストにした時に”ふりがな”のデータがなくなっているようですが? 何かよい方法はありませんでしょうか?(漢字もありますので) 追加の質問で申し訳ありません。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
「コピー」→テキストエディタにペースト→タブを改行に置換→ 「コピー」→Excelにペースト 十数秒で終わりますね。
お礼
回答ありがとうございます。 他の方法で対処しましたが、今後のために参考にさせていただきます。