重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いつもお世話になっております

先日も質問させて頂きました
お世話になり、ありがとうございました

新たな問題が出て、解決できません
ご存知の方ご教授お願い致します

A列内に数値型と文字列、式の入ったセルが混ざって10000件程度あります
ActiveSheet.Range("A:A").SpecialCells(xlCellTypeConstants, xlTextValues).Select
で文字列のセルを選択するとこまでは良いのですが、この後選択した文字列の
セルに式を入れたいと思うのですが、うまくいきません
もしご存知のかたいらっしゃいましたらご教授お願いします

この考えは、セル内に文字列の数値が設定されていて
オートカルクが出来ない為、数値型に変換しようと思い上記のような
ことを考えております
セルをWクリックすると数値にはなるのですが、件数が多い為マクロを
組もうと思いました

A 回答 (3件)

>文字列になっている数値の値が全て1になってしまいました


すみません、私が無知でした
簡単な、テストは行ったのですが、数値、文字列、数式とランダムに並べるとダメでした

'ベタな処理になってしまいました
Sub test()
Dim Rng As Range
For Each a In Range("A:A").SpecialCells(xlTextValues)
Rng.Value = Rng.Value
Next
End Sub

今度は、3万行内、対象のセルは1万強行
私の環境で5秒強
ただ、数式が簡単なものだったので、参考程度に

今回は、私も勉強になりました 有難う御座いました
    • good
    • 0
この回答へのお礼

お世話になっております

>すみません、私が無知でした
いえいえ、とんでもないです

>簡単な、テストは行ったのですが、数値、文字列、数式とランダムに並べると
>ダメでした
>'ベタな処理になってしまいました
>Sub test()
>Dim Rng As Range
>For Each a In Range("A:A").SpecialCells(xlTextValues)
>Rng.Value = Rng.Value
>Next
>End Sub
>今度は、3万行内、対象のセルは1万強行
>私の環境で5秒強
>ただ、数式が簡単なものだったので、参考程度に
私も上記のような処理で文字列だけを対象にするようにしました

>今回は、私も勉強になりました 有難う御座いました
私もSpecialCellsが知れて大変勉強になりました

ありがとうございました

お礼日時:2009/10/03 07:45

数式を設定するのであれば


Range("A:A").SpecialCells(xlTextValues).Formula = "=A1+B1"

文字の数字を数値化するのであれば
Range("A:A").SpecialCells(xlTextValues).Value = Range("A:A").SpecialCells(xlTextValues).Value

前回指摘のあったactivesheet.ですが、処理対象のシートを表示して
マクロを実行すれば必要ないはずなのですが???
    • good
    • 0
この回答へのお礼

お世話になっております

返信遅れましたm(_ _)m

>Range("A:A").SpecialCells(xlTextValues).Value = Range("A:A").SpecialCells
>(xlTextValues).Value
A列にデータをn件用意し、数値型、文字列、式とランダムに設定し
上記内容を実行したところ文字列になっている数値の値が全て1になってしまいました。使い方が間違っておりますでしょか?
私としては設定されている数字がそのまま数値になってほしかったのですが・・

>前回指摘のあったactivesheet.ですが、処理対象のシートを表示して
>マクロを実行すれば必要ないはずなのですが???
すみません。私の実行の仕方が間違ってたみたいです
うまくいきました

お礼日時:2009/10/01 20:36

マクロではなく関数で


=IF(ISNUMBER(A1*1),A1*1,"")
では目的に沿わないでしょうか?

列挿入してよいならB列とか
別シートから目的のセルを参照するとか方法はあるとおもいます。
    • good
    • 0
この回答へのお礼

お世話になっております

返信遅れましたm(_ _)m

式を含むセルもあるので、すみませんが上記方法は
若干厳しいです
アドバイスを頂いたのにすみません。

お礼日時:2009/10/01 20:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!