• 締切済み

パソコンの操作について

ワードでもエクセルでも構いません。以下の変換(昇順操作)教えて下さい。 There is a pen. → aeeehinprst つまり、前文をシャッフルし、A→Zに並べ替える方法です。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! VBAでの一例です。 ↓の画像のようにA列に文字列があり、B列に表示するようにしてみました。 Sheet2のA列を作業用の列として使用していますので、Sheet2にはデータがないという前提です。 画面左下にあるSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j, k As Long Dim str, buf As String Dim ws As Worksheet Set ws = Worksheets("sheet2") For k = 1 To Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To Len(Cells(k, 1)) str = Mid(Cells(k, 1), i, 1) If Not str Like "[, . ?]" Then ws.Cells(i, 1) = str End If str = "" Next i For i = ws.Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 If ws.Cells(i, 1) = " " Then ws.Rows(i).Delete End If Next i ws.Columns(1).Sort key1:=ws.Cells(1, 1), order1:=xlAscending j = ws.Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To j str = str & StrConv(ws.Cells(i, 1), vbLowerCase) Next i Cells(k, 2) = str ws.Columns(1).Clear str = "" Next k Columns("A:B").AutoFit End Sub 'この行まで ※ 尚、カンマ「,」 ピリオド「.」 「?」 「!」などは表示しないようにしています。 参考になれば良いのですが・・・m(_ _)m

hensannn
質問者

お礼

とても分かりやすい説明で参考になりました。ありがとうございます!!!

回答No.2

ちょっと数式で遊んでみました 254文字まで C1セルに =IF(COLUMN(A1)>LEN(SUBSTITUTE($A1," ","")),"",CHAR(SMALL(CODE(LOWER(MID(SUBSTITUTE($A1," ",""),ROW($A$1:$A$254),1)&"あ")),COLUMN(A1)))) [Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる D1セルに =C1&IF(COLUMN(B1)>LEN(SUBSTITUTE($A1," ","")),"",CHAR(SMALL(CODE(LOWER(MID(SUBSTITUTE($A1," ",""),ROW($A$1:$A$254),1)&"あ")),COLUMN(B1)))) [Ctrl]+[Shft] +[Enter] で確定。 右へオートフィル B1セル =Z1 (数式をコピーしたいちばん右のセル)

この投稿のマルチメディアは削除されているためご覧いただけません。
  • entap
  • ベストアンサー率45% (78/172)
回答No.1

プログラム組まないとだめなので、複雑になります。 ちょっとしたプログラムの練習問題クラスの内容ですので、ここに書いても実現は困難でしょう。 次のフリーソフトを使用されることをお勧めします。 http://www.vector.co.jp/soft/win95/util/se217131.html

hensannn
質問者

お礼

早急な回答ありがとうございます!!!難しそうですが頑張ってお勧めのフリーソフト使用を考えてみます!

関連するQ&A