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