• ベストアンサー

並び替え!

テキストから文字列を読み込んでそれをならびかえる処理を したいのですが どうやったらよいか つまってしまいまして 質問させていただきました。 <テキストの内容> あいうえお さしすせそ おおお ききき しし     (テキストにはひらがなが 入っています) これを読み込んで50音順にしてあげたいのですが。 エクセルの並び替えだと あっというまにできてしまうじゃないですか VBには おなじような機能はないのでしょうか? 配列?RECORDSET? 完全につまってしまいました よろしくおねがいいたします

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

メモ帳を開き、例えば、あかし、うえだ、えのもと、おおた、かんだ、きのした、くろだ、こぐれ、さとう、いいだ、おおた」を縦に入力してください。すなわち「あかし」を入力しエンタを押して改行し、「うえだ」と入力し、エンタを押すのを続けてください。そして「テスト1.txt」と「名前をつけて保存してください。VBEのコードの画面に Private Sub Form_Click() Dim d(100) As String Open "c:\My Documents\テスト1.txt" For Input As #1 i = 0 '-----ファイルを読んで配列にセットする p01: If EOF(1) Then GoTo p02 Input #1, a i = i + 1 d(i) = a ' MsgBox a GoTo p01 p02: Close #1 '-----ソート開始 For j = 1 To i - 1 For k = j To i If d(j) > d(k) Then w = d(j) d(j) = d(k) d(k) = w End If Next k Next j '------結果をForm1に表示して確認 For s = 1 To i Form1.Print d(s) Next s End Sub 配列d(1)からd(i)を数直線的に置いて考えて,最小のものを一番 左の配列に持ってくるやり方です。視点を左から右へ1つづつ ずらしていきます。これはモデル的な簡略化した一例であり、 本当はソートは面倒くさいプログラムになります。しかし沢山の アルゴリズムがあり、わたし個人では、コンピュターのプログラム のなかで一番面白い分野と思いました。ぜひ関心を持たれることを お勧めします。この質問をみて、エクセルからコンピュターに入る 人にはソートは「既にあるもの」なのですが、昔はパソコンにはソート のプログラムはついてなくて、我流でロータス123に読ませてソート し、テキスト保存したり、下手なプログラムを組んだことを思い出します。 識者が見ればお恥ずかしいものですが、またコーディング ミスのないことをいのりつつ。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • xkuramae
  • ベストアンサー率54% (39/72)
回答No.2

方法はいろいろあるのでしょうが. リストボックスのSortedプロパティを使うのが 簡単だと思いますよ. AddItemでテキストを格納. リスト配列の添え字を0からListCount - 1 まで変えて Listプロパティを使って読み出せばよいでしょう. 2バイト文字のソートに関するプロパティがあるかもしれませんので プロパティは一通り見てください VBは2年前にやったきりなので,このくらいで. (後の回答によっては大恥かくかも..)

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

データは「ひらがな」だけですか? だったらリストボックスかコンボボックスにデータを放り込んで、 SortedプロパティをTrueにして件数分の取り出しループを作るのが簡単でしょう。 漢字を含む場合はこの方法は使えません(コード順にソートされてしまうから)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの並び替え

    エクセルで表中にひらがな、カタカナ、漢字を含んだ文字列を50音順にならびかえるのはどうすればいいでしょうか?(ひらがなだけ先にまとめられてしまいます・・・)

  • 数千の単語の並び替えについて。

    数千の単語(漢字・ひらがな・カタカナ・ローマ字を含む)がEXCELの各セルに一列に並んでいます。 これを、見つけやすいように、あいうえお順に並び替えたいのですが、EXCELの機能「並び替え」を使って並び替えようとすると、かなと漢字、音読み訓読みをパソコンが異なって識別することから、期待通りの配列になりません。 EXCELの機能を利用したり、マクロやVBAのプログラミングで、並び替えが簡単にできないものでしょうか。 今のところは、隣の列にひらがなを手作業で入力して、並び替えています。ものすごい作業量です。 何とかならないものでしょうか。 いい知恵がありましたら教えてください、 VBAの場合は、マクロも教えていただければ助かります。

  • エクセルの並び替えについて。

    いつもお世話になっています。 エクセルの並び替えについて質問です。 単純なデータなのですが、データを取り込んだときに1⇒5と取り込まれず、5⇒1の順で取り込まれます。 並び替えの機能を使って1⇒5に変更するのは簡単ですが、 5 参考 4 参考 3 2 参考 1 という具合に、間に数字ではなく文字が入ってくるため、単純な並び替えだと、数字部分と文字部分が分かれてしまいます。 並びの順番は替えずに、 1 参考 2 3 参考 4 参考 5 という具合に、逆に並べ替える方法はありますか?

  • 検索・並び替え

    VBでフォルダ(20010314、19990918など日付順)を検索・並び替えを行いたいのですが、はじめdir関数を使ってみたところ並び替えができなかったので、配列を使うのかと考えてみましたが、それでもどうやるか分からなかったので質問します。 最新の日付フォルダが一番上に来るようにするにはどのようなコードを書けばよいのでしょうか。参考のコード表をつけてもらえるとありがたいです。

  • エクセルでデータの並び替え

    エクセルでデータの並び替えを使い、 A列に入っている数字を最優先して 並び替えをしたいのですが、後半部分 うまく並び替えができません。 行が、2134行目までは、うまくいったのですが、 それ以降が並び替わらないのです。 もしかして、行があまりに多いとできないのでしょうか。。。限界があるのでしょうか? それか、ほかに原因があるとしたらわかりません。 わかる方、教えてください。

  • エクセル 文字数 多い順 並び替え

    エクセルの列の並び替えなのですが、 文字数 多い順 並び替えするにはどうしたらよいでしょうか・・?下記のように文字数の多い順に並び替えたいです。 2 11 kkk aaaa

  • エクセルで並び替えが上手くいかない。

    エクセル2000を使用しています。 ある100行程度のデータがあってその一つのセルには年月が入っています。 例で  200710 200603 200707 200512 のような感じですべて半角文字です。 で、並び替えで古い順に並べようとソートを掛けたのですが、ほとんどが きちんと並び変わるんですが一部のみ上に来なければいけないのに下の方に あったりと上手くきません。 間違っている個数は5、6個です。 なぜこうなってしまうのでしょう? やり方が悪いのでしょうか?

  • Excel の並び替え機能について

    Excel の並び替え機能について質問です。デフォルトでは「記号・数字・アルファベット」 の順に昇順/降順されますが、これを「記号・アルファベット・数字・(日本語)」 の順に並び替える方法を教えてください。 並び替えオプションでやってみたのですがうまくいきません。宜しくお願いします。

  • エクセルのデータの並び替え

    エクセルのデータの並び替えで、A列に都道府県名、B列に都道府県の対前年度の収支差の数字の列が続いています。    《例:A1 東京都、B1 1200、       A2 大阪府 B2  -60、       A3 神奈川 B3  600、       A4 高知県 B4 ー500、)  これを収支差の多い順に並べ替えようと思い、データの並び替え機能を使ったのですが、A列の都道府県名を無視して、収支差の数字だけが並び変わってしまうのです。「選択範囲を拡大」で、最優先の列を「1200」、次に優先する列を「東京都」としてみても、ウンともスンともいいません。また、上司の指示では、途中でマイナスの収支差が出てきたところは、マイナスの大きい順に並び替えろとの指示も出ています。なにかよい方法はないでしょうか・・。  (例:A1 東京都 B1 1200、     A2 大阪府 B2  ー60、     A3 神奈川 B3  600、     A4 高知県 B4 -500     の順でデータが並んでいたら、     A1 東京都 B1 1200、     A2 神奈川 B2  600、     A3 高知県 B3 -500、     A4 大阪府 B4  -60     と並び替えるということです。)

  • エクセル 並び替えがうまくいかない。

    不法投機されたゴミの種類ごとの個数が記載されているエクセルの表を仕事で使用しています。 数が多い順に1位~3位までのゴミの種類をあげてくれと上司にいわれたので並び替えを使用し算出しようとしました。ところが右端にあるゴミの個数のみ空白行がない形でびっしり並び替えされ、並び替えされなかった左端にあるゴミの種類の項目と対応しなくなってしまいました。 そのため、結局 目視で探すことになりました。 このような一つの表であるにもかかわらず、特定の列のみ並び替えされ、連動して並び替えしてほしい列が並び替え対象外となる理由ないしは回避方法についてご存知の方がいたらご教示ください。

このQ&Aのポイント
  • ブラザープリンターの赤❌が点灯したまま消えません。
  • お使いの環境はWindows10で、無線LAN接続です。
  • 質問内容はブラザープリンターの赤❌が消えないトラブルに関するものです。
回答を見る

専門家に質問してみよう