advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 48 for SetPhonetic (0.000 sec.)
[[20180521231416]]
#score: 13344
@digest: 0680427dc58efe23b2743f2f78f8f361
@id: 76396
@mdate: 2018-05-22T01:38:53Z
@size: 3354
@type: text/plain
#keywords: 個オ (13442), setphonetic (11153), getphonetic (10952), 狭山 (10128), formular1c1local (8941), 得() (8333), ガナ (6269), (狭 (6267), ナ取 (6162), リガ (5222), phonetic (3648), 速化 (3624), フリ (3567), 山) (3090), フセ (2951), 高速 (2470), a65536 (2430), ナを (2362), hatena (2172), カタ (1312), ンポ (1289), )様 (1249), 半平 (1221), オフ (1208), 平太 (1191), タカ (1151), 2018 (1107), 漢字 (1094), 外部 (1079), 取得 (1072), カナ (1007), (ha (907)
『時間を高速化に』(狭山)
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 ---- 手入力したデータなら、PHONETIC関数でフリガナ取得できますが、 外部からインポートしたデータやコピペしたデータの場合は、 取得できません。 その場合は、GetPhonetic を使うしかないと思います。 配列を使って少しは高速化出来ますが、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 ---- 半平太)様 (hatena)様 お世話になります。 早速にありがとうございます。 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 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201805/20180521231416.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97045 documents and 608223 words.

訪問者:カウンタValid HTML 4.01 Transitional