一晩寝て見直してみたら、
昨日のコードよりも
一昨日のコードのほうがシンプルでいいかな、と言う気がしてきたので、コードの基本的な骨格は一昨日のものを流用しつつ、配列を使って高速化してみました。
Option Base 1
Sub 全角に変換する()
Call xStrConv(Selection, vbWide)
End Sub
Sub 半角に変換する()
Call xStrConv(Selection, vbNarrow)
End Sub
Private Sub xStrConv(a1, a2)
Max = 655360 '10列分のセル数
If Not TypeName(a1) = "Range" Then
MsgBox ("セルを選択して下さい")
Exit Sub
ElseIf a1.Count > Max Then
MsgBox ("処理出来るデータの数は" & Max & "までです")
Exit Sub
End If
Dim x: ReDim x(a1.Rows.Count, a1.Columns.Count)
For r = 1 To a1.Rows.Count
For c = 1 To a1.Columns.Count
x(r, c) = StrConv(a1(r, c).FormulaLocal, a2)
Next c
Next r
a1.Value = x
End Sub
普段使いには
一昨日のコード、大量のデータを変換したければ今回のコードを使えば良さそうです。
0 件のコメント:
コメントを投稿