[[20121121165524]] 『列Aの値に文字を付けて列Bに入力させたい』(新米) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『列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.