- 締切済み
パソコンの操作について
ワードでもエクセルでも構いません。以下の変換(昇順操作)教えて下さい。 There is a pen. → aeeehinprst つまり、前文をシャッフルし、A→Zに並べ替える方法です。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 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
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
ちょっと数式で遊んでみました 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)
プログラム組まないとだめなので、複雑になります。 ちょっとしたプログラムの練習問題クラスの内容ですので、ここに書いても実現は困難でしょう。 次のフリーソフトを使用されることをお勧めします。 http://www.vector.co.jp/soft/win95/util/se217131.html
お礼
早急な回答ありがとうございます!!!難しそうですが頑張ってお勧めのフリーソフト使用を考えてみます!
お礼
とても分かりやすい説明で参考になりました。ありがとうございます!!!