EXCEL97:半角を全角に高速処理したいんですが、、、
■ このスレッドは過去ログ倉庫に格納されています
0001tmp
NGNGため、処理時間がかかりすぎてしまうので、置換でどうにか出来ない
物かと考えたんですが、、、
VBAでも高速処理できるなら一向に構わないので、どなたか分かる方
いらっしゃいましたら教えてください。
ちなみに現在の処理方法はこんな感じです。
Function Zenkaku()
Dim i
Dim f
Dim HStr(2)
HRow = RowCheck()'行数を取得
For i = 2 To HRow
For f = 0 To 1
Cells(i@` f + 2).Activate
HStr(f) = StrConv(CStr(ActiveCell.Cells.Value)@` vbWide)
ActiveCell.Cells.Value = HStr(f)
Next f
Next i
End Function
0002>1
NGNG>Cells(i@` f + 2).Activate
>HStr(f) = StrConv(CStr(ActiveCell.Cells.Value)@` vbWide)
>ActiveCell.Cells.Value = HStr(f)
いちいちactivateしているから遅いんじゃないの。
For f = 2 To 3
Cells(i@` f)=StrConv(CStr(Cells(i@` f))@` vbWide)
この方が命令数少なくて速いはず。
けど置換の方が速いと思うよ。
0003名無しさん
NGNG何でもVBAじゃないよ
0004tmp
NGNGレスどうもです。
>いちいちactivateしているから遅いんじゃないの。
おっしゃる通りですね。
あまりのチンパンぶりにお恥ずかしい限りです。
で、折角ソースコードまで書いていただいたんですが、某所で質問した
ら10分くらいで解決しました。
そこによるとFOR文を2連続で使わないでセルの直接操作もやめて配列を
使い一気に変換して書きこむというものだったので思った以上に高速化
出来たんですよね。
しかし、配列に読み込んで書きこむ手間を考えるとアクティブにしない
で直接操作の方がいいかもしれませんね、、、。
ってことで、組みなおすときに参考にさせて頂きますね。
>3さん
>関数使ったら
>何でもVBAじゃないよ
わざわざご丁寧にどうも。
相当暇なんですね(ワラ
00053
NGNG残念でした
0006名無しさん
NGNG00073
NGNGマクロでワークシート関数を埋め込むっていうことなんだけどね
っていうか、この例なら
1.別列に当該列を変換する関数埋め込んで、JIS()ね
2.その列をコピーして当該列に値をペースト
これをマクロで回すっていうことなんだけどね
1.は、1行目だけマクロで埋め込んで、下に必要なだけ式をコピー
全部マクロでやるより、Excelの機能を使えるなら
それを使う。
つまり、マッチング処理なんかも場合により
VLOOKUP()使うとかね
でもあれか、このテクって95の場合何で、97だと違うのかな
00086>7
NGNGしかし1は感じ悪いな
聞くときだけ丁寧で、解決したとたんあれだ
00093
NGNG3の表現が7にはつながらないですし、、
0010???
NGNGfunctionを使ってるの?
functionはサブルーチンにして
subで動かすのがいいと思うけどね
■ このスレッドは過去ログ倉庫に格納されています