1

Excelの指定範囲を高速に2次元配列に追加したいです。
ヒント/アドバイスをいただけますか。

  • このライブラリをがっちゃんこしてみれば?
  • こんな10行VBSを見つけたよ!
  • 要するにこうしちゃえばいいんじゃない?

いずれもウェルカムです。

 

現状

  • Excelを2次元配列にブチ込むのに、スイートライブラリを使用中

Excel操作(指定範囲の値を配列に追加)
https://winactor.biz/sweet/2021/03/15_3827.html

関連スレッド

https://winactor.com/questions/question/スマートな指定xpath一括処理が3つめ以降でエラー/

使用状況

  • 5列×20行程度(最大100行程度)
  • 1シナリオにつき1Excelファイル
  • 入力規則とか、ExcelのUIは使い続けたい
  • 通常は3シートくらい使用(最大10シート程度使う可能性あり)

欲張りなニーズ

  • 「Excel操作(指定範囲の値を配列に追加)」はExcelが開かれるのが玉にキズ
  • せっかく高速な配列のライブラリなのに、Excelを開くところで僅かにもたつく
  • Excelを開かずに、たとえばCSV経由で配列にブチ込むことで、もたつきを抑えられないか
  • 「2次元配列操作(csv読み込み)」に繋げる想定
    https://winactor.biz/sweet/2021/12/20_4959.html

試したこと

  • Excel操作(CSV形式で保存):予めファイルを開いておく必要がある、、
  • Excel操作(CSV・TSV形式で保存):開いてなければ開かれる、、

ネットで見つけたVBS

Excel シートを CSV でエクスポートする VBScript
https://qiita.com/kumazo/items/ba0332fe4b8823f14b6a

VBSを試した所感

  • ジャストなアウトプット
  • フォルダ内にファイルが生成される仕様は、頑張ればカスタムできるかも
  • Excelが開かれることはなかった
  • 所要時間はライブラリと大差なし
  • 「2次元配列操作(csv読み込み)」が続く分、「Excel操作(指定範囲の値を配列に追加)」より余計に時間がかかるはず
  • これが限界なのかも

 

希望のまとめ

  • Excelの指定範囲を
    Excelを開かずに(OR/AND)CSVを経由せずに
    高速に2次元配列に追加したい

もしくは

  • 「Excel操作(指定範囲の値を配列に追加)」をExcelを開かない仕様にカスタムしたい
  • ※ ScreenUpdatingの効果が及ぶ範囲ではないのかも

思いつき

  • 別ファイルのマクロから、目的のファイルの指定範囲を2次元配列に追加できるとしたら、、
    しくみ検討のコストが高くつきそう、、
  • ※ WinActorの配列のノウハウやライブラリは、以前に興味を持ったときより、今のほうがが格段に充実してる
    https://winactor.com/questions/question/配列の敷居を低くし隊/
  • わたしだけで足掻いても、Excelを開いて配列に入れること以上の方法は見出せそうもない
anothersolution 編集済みのコメント
回答とコメントは、会員登録(無料)で閲覧できるようになります。