[過去ログ]
Excel VBA 質問スレ Part82 (1002レス)
Excel VBA 質問スレ Part82 http://mevius.5ch.net/test/read.cgi/tech/1737657075/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
644: デフォルトの名無しさん [sage] 2025/05/10(土) 16:38:29.08 ID:iGSB8dlv 前から先人達がこのスレで、Arrayを使って云々・・・と議論しているの見かけて、 「どこで活かせるんだろう?」と思っていたけど、 今日初めて使ってみた。 もともとは、Power Queryで複数のクエリーとピボットを順番に更新させるのをVBAでやっていたのだけれど、 「クエリと接続」とタスクマネージャーをずっと監視しているのもしんどいので、 ChatGPTに、 「クエリーやピボットテーブルのそれぞれを1つのステップとして、 WMIの "SWbemLocatorオブジェクトのConnectServerメソッド" とやらを使って、 各ステップの開始/終了時刻とCPU最大使用率のテーブルをワークシートに出力できないか?」 と相談したら、その中に、出てきましたよ、 ' ステップ一覧 Dim steps As Variant ' 更新ステップのリスト(ステップ名, 実行内容) steps = Array( _ Array("Q_1", "クエリ - Q_1"), _ Array("Q_2", "Query", "クエリ - Q_2"), _ Array("Q_3", "Query", "クエリ - Q_3"), _ Array("Q_4", "Query", "クエリ - Q_4"), _ Array("Q_5", "Query", "クエリ - Q_5"), _ Array("Q_6", "Query", "クエリ - Q_6"), _ Array("Q_7", "Query", "クエリ - Q_7"), _ Array("Q_8", "Query", "クエリ - Q_8"), _ Array("PVT_1", "Pivot", "PVT_1") _ ) と。 で、何度かやり取りした結果、うまく出来まスた。 http://mevius.5ch.net/test/read.cgi/tech/1737657075/644
649: デフォルトの名無しさん [sage] 2025/05/10(土) 21:53:08.57 ID:iGSB8dlv 今回Arrayを使って、各クエリー/ピボットテーブル更新中のCPU使用率を調べようとしたのは、 ・複数の前処理ブックの共通テーブルを参照して、項目ごと時間軸串刺し合計や最大/最小値とその時間なんかを求めるブック ・仕上がり52,560行 ・これでもまだ中間集計ブック ・将来的には104万行を超えるので、ベース集計クエリーにはデータ モデルを使用 ・今の第8世代Core i7と32GBメモリーで、このブックの更新には20分超 ・当初は、List.Buffer、Table.bufferをクエリーで使って高速化を試したが、これだけ行が多かったりクエリー依存が多いと、シーケンシャルにしてBufferしたつもりが前クエリーの再計算が入ってExcelが固まったので断念。 ・逆に、104万行以内に収まる途中のクエリーは、ワークシートに書き出してこれを参照するようにしたら、最後まで計算できるようになった。 http://mevius.5ch.net/test/read.cgi/tech/1737657075/649
653: デフォルトの名無しさん [sage] 2025/05/10(土) 23:17:35.27 ID:iGSB8dlv >>650 別スレで http://mevius.5ch.net/test/read.cgi/tech/1737657075/653
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.036s