|    | 
     ▼星の子 ロビン さん: 
 
>英単語のテスト作りで 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 
 
 | 
     
    
   |