| 
    
     |  | ▼星の子 ロビン さん: 
 >英単語のテスト作りで A列にword と入力したら B列にordw のように問題が作成されるように
 
 文字のシャッフルですか?
 
 Worksheetのセルの値が変更されると そのワークシートに Changeイベント
 というのが発生します。それを使った方法です。
 
 シート下のシート見出し(シートタブ)を右クリック、[コードの表示]
 出てきたコードウィンドウに 以下を貼りつけて コンパイル後、
 A列に "word" など単語を入力してみてください。
 
 '----------------------------------------シートモジュール
 Option Explicit
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
 If .Count > 1 Then Exit Sub
 If .Column = 1 Then
 Dim L As Long
 Dim ss As String
 L = Len(.Value)
 If L = 0 Then Exit Sub
 
 Dim i As Long, n As Long, t As String
 ReDim s(1 To L) As String
 ss = .Value
 For i = 1 To L
 s(i) = Mid$(ss, i, 1)
 Next
 Randomize Timer
 For i = 1 To L
 n = Int(L * Rnd() + 1)
 t = s(n)
 s(n) = s(i)
 s(i) = t
 Next
 Application.EnableEvents = False
 .Offset(, 1).Value = Join(s, "")
 Application.EnableEvents = True
 End If
 End With
 End Sub
 
 
 |  |