[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『時間を高速化に』(狭山)
A2以降に入っている漢字を
B列にカタカナに変更のVBAなのですが
1500位のデータを変換するのにかなりの時間が掛かってしまいます。
もっと早く変換できる修正をご教授お願い出来ないでしょうか。
Sub フリガナを取得()
Dim r As Range
For Each r In Range("A2", Range("A65536").End(xlUp))
Range("B" & r.Row).Value = Application.GetPhonetic(r)
Next
End Sub
< 使用 Excel:Excel2013、使用 OS:Windows7 >
こんなので、ワークしないですか? ↓ Sub フリガナを取得() Dim r As Range
Set r = Range("A2", Range("A65536").End(xlUp)).Offset(, 1)
r.FormulaR1C1Local = "=PHONETIC(RC[-1])" r.Value = r.Value End Sub
(半平太) 2018/05/21(月) 23:39
配列を使って少しは高速化出来ますが、GetPhonetic自体が重い関数なので、
それほど高速化はてきないようです。
Sub フリガナを取得1()
Dim r As Range, A As Variant, i As Long
Application.ScreenUpdating = False Set r = Range("A2", Range("A65536").End(xlUp)) A = r.Value For i = LBound(A) To UBound(A) A(i, 1) = Application.GetPhonetic(A(i, 1)) Next r.Offset(, 1).Value = A Application.ScreenUpdating = True End Sub (hatena) 2018/05/22(火) 01:59
フリガナ情報が無いデータって話だったんですか? なら、SetPhoneticじゃないですか?
Sub フリガナを取得()
With Range("A2", Range("A65536").End(xlUp)).Offset(, 1) .Offset(, -1).SetPhonetic .FormulaR1C1Local = "=PHONETIC(RC[-1])" .Value = .Value End With
End Sub
(半平太) 2018/05/22(火) 07:13
お世話になります。 早速にありがとうございます。
VBAを入れてみました (半平太)様の方ですがB列の漢字のままにに表示されてしまいました。 (hatena)様の方ですがカタカナ表示で出来ましたが 外部からインポートしたデータですので約8秒で変換できました。
ただ私がミスをしてしまいまして C2以降のデータをM列に書き出すデータでした。 申し訳ございません。 ご教授お願い出来ませんでしょうか Set r = Range("A2", Range("A65536").End(xlUp)) Set r = Range("C2", Range("A65536").End(xlUp))は分かるのですが よろしくお願い申し上げます。
(狭山) 2018/05/22(火) 07:29
同じタイミングで更新したみたいです。 後でお返事をいたします。 (狭山) 2018/05/22(火) 07:30
C列から10個オフセットですか?
Sub フリガナを取得()
With Range("C2", Range("C65536").End(xlUp)).Offset(, 10) .Offset(, -10).SetPhonetic .FormulaR1C1Local = "=PHONETIC(RC[-10])" .Value = .Value End With
End Sub
いずれにしても、時間は掛かりますね。
(半平太) 2018/05/22(火) 07:41
お世話になります。 今、行ってみました。約5秒で出来ました。 ありがとうございました。
10個オフセットの意味ですが 勉強になりました。 C〜10個目ということなんですね。 10とー10の部分を変更しながら試してみました。 ありがとうございました。 (狭山) 2018/05/22(火) 09:21
なら、SetPhoneticじゃないですか?
なるほど、それならループせずにできますね。
実験してみたら、ループに比べて半分以下の時間でできました。
さすがです(@_@)
(hatena) 2018/05/22(火) 10:38
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.