OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

並び替え!

  • 暇なときにでも
  • 質問No.209365
  • 閲覧数189
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 25% (16/64)

テキストから文字列を読み込んでそれをならびかえる処理を
したいのですが どうやったらよいか つまってしまいまして
質問させていただきました。

<テキストの内容>
あいうえお
さしすせそ
おおお
ききき
しし     (テキストにはひらがなが 入っています)

これを読み込んで50音順にしてあげたいのですが。
エクセルの並び替えだと あっというまにできてしまうじゃないですか
VBには おなじような機能はないのでしょうか?
配列?RECORDSET?
完全につまってしまいました
よろしくおねがいいたします
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル14

ベストアンサー率 28% (4323/15247)

メモ帳を開き、例えば、あかし、うえだ、えのもと、おおた、かんだ、きのした、くろだ、こぐれ、さとう、いいだ、おおた」を縦に入力してください。すなわち「あかし」を入力しエンタを押して改行し、「うえだ」と入力し、エンタを押すのを続けてください。そして「テスト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に読ませてソート
し、テキスト保存したり、下手なプログラムを組んだことを思い出します。
識者が見ればお恥ずかしいものですが、またコーディング
ミスのないことをいのりつつ。
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル14

ベストアンサー率 33% (1403/4213)

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

だったらリストボックスかコンボボックスにデータを放り込んで、
SortedプロパティをTrueにして件数分の取り出しループを作るのが簡単でしょう。

漢字を含む場合はこの方法は使えません(コード順にソートされてしまうから)


  • 回答No.2
レベル9

ベストアンサー率 54% (39/72)

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

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ