社内システムの自作なら、すず工房へ!!
エクセル仕事術などでIT経営を支援します
  • Home
  • エクセル仕事術
  • クラウド生産管理
  • サービス案内
  • つぶやきました
  • お問合せ
  • すず工房
  • 名刺

ワークシートからデータを取得する

更新日 2013年1月16日

2010年10月27日

Excelでは、配列をセル範囲に一括セットしたり、その逆にセル範囲のデータを一括して配列に取り込んだりできます。

ワークシートのデータを配列に読み込むとき、セルからひとつずつ配列に読み込んでいく方法と一括して配列に取り込む方法とを比較して動作速度を測ってみます。

テストプログラムは下記の通りです。

VBEの標準モジュールに貼りつけて実行してみてください。


Public Sub test2()
    Dim rr As Long
    Dim cc As Long
    Dim idx As Long
    Dim aryRows As Variant
    Dim tm1 As Variant
    Dim tm2 As Variant
    Dim aryTest As Variant
    Dim aryRange As Variant
    
    'セル行数の配列を作成
    aryRows = Array(1000, 5000, 10000, 30000, 60000)
    With Worksheets("test1")
        'ワークシート「test1」にテストデータを出力します
        For idx = 0 To UBound(aryRows)
            .Cells.ClearContents
            ReDim aryTest(0 To aryRows(idx) - 1, 0 To 0)
            '配列に数値を格納します
            For rr = 1 To aryRows(idx)
                aryTest(rr - 1, 0) = rr
            Next rr
            '配列をセル範囲に出力します
            .Range(.Cells(1, 1), .Cells(aryRows(idx), 1)) = aryTest
        
                    
            'それぞれのセルからデータを配列に取り込みます
            '午前0時から現在までの秒数
            tm1 = Timer
            ReDim aryRange(0 To aryRows(idx) - 1, 0 To 0)
            For rr = 1 To aryRows(idx)
                aryRange(rr - 1, 0) = .Cells(rr, 1).Value
            Next rr
            '処理時間を保存します
            '小数点表示
            tm1 = Format(Timer - tm1, "0.0######")
            
            '一括して取り込みます
            tm2 = Timer
            aryRange = .Range(.Cells(1, 1), .Cells(aryRows(idx), 1))
            
            '処理時間を保存します
            tm2 = Format(Timer - tm2, "0.0######")
            
            '処理時間を出力します
            Debug.Print aryRows(idx) & "行", "セルごと:" & tm1, "一括:" & tm2
            
        Next idx
    End With
    
End Sub

実行結果は下記の通り。ただし、PCの性能により絶対値は変わってくると思いますので、両者の差のみに注目してください。

 

一見して明らかなように、配列に一括して取り込む方が断然早いですね。ただし、1000行程度までならどちらでも大差ないようです。

セルをひとつひとつ指定して配列に取り込む方法は、プログラムのロジックが分かりやすく、コーディングも簡単なために、ちょっとやってみるにはいい方法ですが、データ数が多くなるととたん処理時間が長くなってしまいます。ぜひVBAが用意している配列への一括取り込みを使用しましょう。

一
  • 仕事に生かすExcel
  • マクロ・VBA
    • Excel2013のSDIへの対応
    • WEBからデータをVBAで取込む
    • 選択したセル範囲を取出すには
    • 消費税率を読込むDLL
    • インターネット上のサイトのデータを読み込む
    • 右ボタンでのMouseDownイベントには要注意
    • CSVファイルを読みこむ(Excel)
    • テキストファイル読込速度比較
    • 進行表示の3つの方法
    • IsDate関数はおかしい‥
    • 別のワークブックのデータを読み込む
    • 2 つの指定した日付の時間間隔と満年齢
    • ワークシートのセルに特定のデータを入力する
    • CSVファイルからデータを取り出す
    • ワークシートからデータを取得する
    • ワークシートにデータをセットする
    • 特定のセル範囲からデータを探す方法を比較する
  • Excelの操作

コンタクト

メール
メール
FaceBook
FaceBook

つぶやきました

見える生産管理2022

2022年 10月 31日 月

久しぶりの投稿になってしまいましたが、「見える生産管理2022」を試用できるようになりました。「クラウド生産管理」メニュからご覧ください。

0 コメント

Webデータベース利用の生産管理

2019年 7月 22日 月

いままでExcel(R)を活用した生産管理システムを構築したり構築支援したりしてきましたが、もっと簡単に生産管理を開始できないかと考え、Webに登場してきたデータベースを利用して生産管理できるシステムを考えました。

 

続きを読む 0 コメント

iPadのSIM

2018年 11月 16日 金

iPad Pro 12.9を外出時の仕事用に使っていたが、自宅のMACにリモートアクセスするのがベストに近いかもと気づき、4G回線経由だがやってみた。

しかしこれがかなり遅い。SIMは前の機種で使ってたイオンモバイルのやつ。これが原因かもと思い、一番早いと噂のUQ  Mobileに変えてみた。体感的にはちょっと早いかなという感じ。これからじっくり検証していこうと思う。

 

インターネット接続の設定でつまづいたので以下に備忘録として残しておく。

 

 

続きを読む
プライバシーポリシー | サイトマップ
Copyright © 2002- すず工房. All Rights Reserved.
ログアウト | 編集
  • Home
  • エクセル仕事術
    • 仕事に生かすExcel
      • Excelでできること
      • ExcelからSQLiteを使う理由
    • マクロ・VBA
      • Excel2013のSDIへの対応
      • WEBからデータをVBAで取込む
      • 選択したセル範囲を取出すには
      • 消費税率を読込むDLL
      • インターネット上のサイトのデータを読み込む
      • 右ボタンでのMouseDownイベントには要注意
      • CSVファイルを読みこむ(Excel)
      • テキストファイル読込速度比較
      • 進行表示の3つの方法
      • IsDate関数はおかしい‥
      • 別のワークブックのデータを読み込む
      • 2 つの指定した日付の時間間隔と満年齢
      • ワークシートのセルに特定のデータを入力する
      • CSVファイルからデータを取り出す
      • ワークシートからデータを取得する
      • ワークシートにデータをセットする
      • 特定のセル範囲からデータを探す方法を比較する
    • Excelの操作
      • ふりがなをつける
      • 行・列を固定してスクロール
      • 他のシートのデータを表示する-カメラ機能
      • 文章を指定範囲に収まるように整形する
  • クラウド生産管理
    • 見える生産管理2022
    • 見える生産管理K(簡易版)
    • 試用申込み
  • サービス案内
    • IT経営
  • つぶやきました
    • MAC
    • IT
    • その他
    • 年月別
      • 2022/10
      • 2019/07
      • 2016/07
      • 2016/04
      • 2015/11
      • 2015/10
      • 2015/08
      • 2015/07
      • 2015/06
      • 2015/03
      • 2015/02
      • 2014/12
      • 2014/03
      • 2013/09
      • 2012/11
      • 2012/09
      • 2010/09
      • 2010/08
      • 2010/07
      • 2010/06
      • 2010/03
      • 2010/02
      • 2009/05
      • 2009/04
  • お問合せ
  • すず工房
    • 企業理念
    • 主な資格
    • 実績
  • 名刺
  • トップへ戻る