タグ

excel-vbaとrangeに関するnabinnoのブックマーク (2)

  • VBA基本(Range,Cellsの組み合わせでシート指定)

    セル参照するプロパティのシート指定は同一でなければなりません。 RangeプロパティとCellsプロパティを組み合わせて、行や列を変数にしてセル範囲を指定する方法です。 Range(Cells(GYO1, COL1), Cells(GYO2, COL2))という書き方で、 Cellsプロパティが指定しているセルを左上、右下としてのセル範囲のRangeオブジェクトが取得できますが、 この時にシートを明示しようとする時の間違いです。 Worksheets("Sheet1").Range("A1:D3")という書き方はよく目にします。 これにならって、RangeプロパティとCellsプロパティを組み合わせてセル範囲を指定する時の書き方です。 Dim GYO1 As Long, GYO2 As Long, COL1 As Long, COL2 As Long GYO1 = 1: COL1 = 1

  • Office TANAKA - VBA高速化テクニック[配列を使う]

    パソコン通信時代に書いた、この「VBA高速化テクニック」の中で、間違って伝わっているな~と感じていたのは、冒頭の「画面を止める」と、これ「配列を使う」です。90年代のパソコンはスペックが低かったです。CPUは遅いし、メモリも少なく低速、Windowsの画面描画機能も遅かったし、そもそもExcelもそれほど速くはなかったです。そんな中で、大量のセルにアクセスするのなら、一度配列に入れて配列を操作する方が速いよって話でした。でも、何となく「配列に入れると速い」ということだけが一人歩きして、とにかく何でも「配列は速い!配列は速い!配列!配列ぅ!」って言われてます。 ちょっとやってみましょうか。まずは単純に、データを探す操作から。A列に200,000個の名前が入っています。この中から"田中"を探して、該当するB列の数値を取得します。ちなみに"田中"は一番下のセルA200000にあります。 Sub

  • 1