[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『列Aの値に文字を付けて列Bに入力させたい』(新米)
Excelのバージョン:Excel2000 OS:WindowsXP
セルA1からA1000まで5桁の数字が入っています。
A1からA1000に入力されている値に"C"の文字を付けて セルB1からB1000まで入力させたいのですがどのような コードを書けばよろしいでしょうか。
Range("B1") = "C" & Range("A1") Range("B2") = "C" & Range("A2") ・ ・ ・ Range("B1000") = "C" & Range("A1000")
だと1000行書く必要がありますが、もっと簡単な方法 があれば教えてください。よろしくお願いします。
>コードを書けばよろしいでしょうか。
他の方法があると思いますが、コードでということなら、以下一例で。 Sub sample() Dim i As Long Dim ws As Worksheet
Set ws = ActiveWorkbook.Worksheets("Sheet1") ws.Range("B1:B1000").ClearContents For i = 1 To 1000 Cells(i, "B").Value = "C" & Cells(i, "A").Value Next
End Sub
(usamiyu)
usamiyuさん、ありがとうございます。 無事解決することができました。 助かりました。 (新米)
ループしない方法
Sub test() [b1:b1000] = ["C"&a1:a1000] End Sub (seiya)
seiyaさん、これってEvaluateメソッドっていうものですか? すごく早くてびっくりです。Helpで勉強してみます。
あと、配列の形で書いて、最後に書き戻すっていうのも考えて いたのですが、さっきからエラーばっかりで、挫折中です・・。
(usamiyu)
[] は Evaluate メソッドの Short Cut Notation (日本語の表現ができないけど) です。
>あと、配列の形で書いて、最後に書き戻すっていうのも考えて Loop ?
With Range("a1:b1000") myArray = .Value For i = 1 To UBound(myArray) myArray(i, 2) = "C" & myArray(i, 1) Next .Value = myArray End With
Evaluate methnodで一旦配列に格納してDump
myArray = ["C"&a1:a1000] [b1:b1000] = myArray
とか? (seiya)
To seiyaさん コメントありがとうございました。 Evaluate メソッドのhelpを確認しました。 今のところ、どう使っていいのかイメージできないのですが、 文字列の""を記載しなくてよかったりして、便利ですね。 覚えておきます。
あと、悩んでいた配列の形(ループの方です)、自分の間違えていた ところがわかって、うれしいです! ちなみに、"a1:b1000"を"A1:A1000"としていました・・^^; 「インデックスが有効範囲にありません」って怒られて当然でしたね。
それから、速さを比べてみたら、普通にループするのが約0.2秒だったのに、 配列の方はどちらも約0.015秒と、すごく速くなりました。 やっぱり、配列をちゃんとマスターしたいです。
To 新米さん 板をお借りしました。失礼しました。
(usamiyu)
『Evaluate Method の研究』(seiya) [[20070212134849]]
参考になれば... (seiya)
seiyaさん 参照先、拝見しました。面白いですね。 このメソッドを使用する場面はある程度限られてくるけれど、 よく知って理解すればいいということですね。
>[]を使用すると変数は使用できません。 このお言葉が大変参考になりました。さっき、Helpの使用例を []で書き換えてみて、エラーをだしていたのですが、なるほどです。
たくさん教えていただいて、ありがとうございました。(^^)
(usamiyu)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.