こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCELのVBAにて閉じたブックの数値を拾い出したいため

EXCELのVBAにて閉じたブックの数値を拾い出したいため
ExecuteExcel4Macroを使用して次のように作成しましたが
生産管理ブック内の直出荷シートしか参照できません。
その他シートの参照して数値を拾い出したいため
シートのループ処理(シート数不規則)を例えばworksheet(1)~処理終了の名前がついた
シートまで行いたいのですがどの様に直出荷部分を書き込めばいいかわかりません。
いい方法を教えていただけ無いでしょうか?
(:と生産計画の間 エン[ がうまく表示できません)

Dim i As Long, idx As Long
Dim hi As Integer
For hi = 10 To 252
If Cells(2, 3) = ExecuteExcel4Macro("'E:\生産計画.xls]直出荷'!R" & 11 & "C" & hi) Then
Exit For
End If
Next hi

i = 7
For idx = 7 To 3000
For i = i To 300
If ExecuteExcel4Macro("'E:\生産計画.xls]直出荷'!R" & idx & "C" & 5) = 0 Then
Exit Sub
End If
Cells(i, 1) = ExecuteExcel4Macro("'E:\生産計画.xls]直出荷'!R" & idx & "C" & 5)
Cells(i, 2) = ExecuteExcel4Macro("'E:\生産計画.xls]直出荷'!R" & idx + 2 & "C" & 5)
Cells(i, 3) = ExecuteExcel4Macro("'E:\生産計画.xls]直出荷'!R" & idx + 11 & "C" & hi)
i = i + 1
Exit For
Next i
idx = idx + 57
Next idx

投稿日時 - 2010-03-25 22:25:18

QNo.5779374

困ってます

質問者が選んだベストアンサー

下記の記事が参考になると思います。
http://officetanaka.net/excel/vba/tips/tips29.htm

「閉じたまま開く」のはさくっと諦めて,普通に開いて調べるアプローチに変更することを推奨します。
開きたくなくて苦労しているのは具体的に何が問題なのか,また別途ご相談を投稿してみてはいかがでしょう。



#適当に想像で先取りしとくと,例えば単に「見た目」の問題だけなら定石のscreenupdatingを抑制でも,あるいはgetobjectで不可視のまま開かせる手もあります。
 再計算に処理を取られるのがイヤなら再計算を自動にしておいて開きますし,あるいはファイルを開く際に何かダイアログが出るとかなら,そうならない開き方を指定します。

投稿日時 - 2010-03-25 23:21:20

お礼

処理スピードを確認したかったため作成してみました。
処理件数が少ない成果それほど変化が無いようですので
さくっと諦めて開きて閉じる方法で作成いたします。
参考資料有難うございました。

投稿日時 - 2010-04-08 12:59:09

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問