Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9 / 13057 ツリー ←次へ | 前へ→

【79489】excel2013にて発生するworkbooks.Openの停止について ペーターパン 17/11/3(金) 12:50 質問[未読]
【79490】Re:excel2013にて発生するworkbooks.Openの... カリーニン 17/11/3(金) 20:23 発言[未読]
【79491】Re:excel2013にて発生するworkbooks.Openの... ペーターパン 17/11/3(金) 21:01 質問[未読]
【79492】Re:excel2013にて発生するworkbooks.Openの... カリーニン 17/11/4(土) 9:48 発言[未読]
【79493】Re:excel2013にて発生するworkbooks.Openの... ペーターパン 17/11/6(月) 17:05 質問[未読]
【79494】Re:excel2013にて発生するworkbooks.Openの... カリーニン 17/11/6(月) 22:15 発言[未読]
【79495】Re:excel2013にて発生するworkbooks.Openの... ペーターパン 17/11/7(火) 9:03 質問[未読]
【79496】Re:excel2013にて発生するworkbooks.Openの... カリーニン 17/11/7(火) 12:47 発言[未読]
【79497】Re:excel2013にて発生するworkbooks.Openの... ペーターパン 17/11/8(水) 13:03 質問[未読]
【79498】Re:excel2013にて発生するworkbooks.Openの... カリーニン 17/11/8(水) 17:44 発言[未読]
【79499】Re:excel2013にて発生するworkbooks.Openの... ペーターパン 17/11/8(水) 18:11 質問[未読]
【79503】Re:excel2013にて発生するworkbooks.Openの... w1709 17/11/14(火) 18:33 発言[未読]
【79504】Re:excel2013にて発生するworkbooks.Openの... まっつわん 17/11/20(月) 16:56 回答[未読]
【79506】Re:excel2013にて発生するworkbooks.Openの... ペーターパン 17/11/21(火) 12:46 発言[未読]

【79489】excel2013にて発生するworkbooks.Openの...
質問  ペーターパン  - 17/11/3(金) 12:50 -

引用なし
パスワード
   EXCEL2010では起動するworkbooks.Openの命令がexcel2013だと停止してしまいます。
なぜ止まるのか分かる方いらっしゃいますか?
守秘義務があるため、下記のようにしか公開できない点をご容赦下さい。

path = ActiveWorkbook.Path
path = path & "\" & fileA

Workbooks.Open Filename:=path ←ここで止まる


・エラーメッセージは下記の通です。
 実行時エラー1004
 'Open'メソッドは失敗しました。:'Workbooks'オブジェクト

・ローカルウィンドウで全ての変数に正式な値が入っていることは確認済みです。

・ステップインでの起動であれば問題なく動きます。
 止まった後もステップインによる継続で動作可能です。
 よって、取得している変数がおかしいわけではないようです。

・●と▲の一にDoEventsを挿入しましたが効果ありませんでした。

・●の一に3秒停止する命令を描いたところ問題なく動きました。(3秒未満は止まる)
 パスの取得に対する処理の前に停止が効果あるようです。

・念のため、Cドライブ上の余り階層の深くないディレクトリで動作させましたが、解決しませんでした。

・ネット上で同様の問題が起こっている方がいることはすぐに分かりませいた。
 ただし、解決には至っていない方も多くなぜこうなるのかがよく分かりません。

・ウィンドウ表示機能がExcel2010はMDI形式、Excel2013はSDI形式になっています。
 これが関節的に影響しているのでしょうか?

・他のvbaプログラムは問題なく動くものもあります。
 頻繁にファイルを開くような動作をするほど止まるようです。

・pcを変えても停止は再現されます。

何か分かる方がいましたらご連絡頂けますと幸いです。

【79490】Re:excel2013にて発生するworkbooks.Ope...
発言  カリーニン  - 17/11/3(金) 20:23 -

引用なし
パスワード
   変数名は本当に「path」ですか?
変数名を他のに(例:mypath)変えても同じですか?

【79491】Re:excel2013にて発生するworkbooks.Ope...
質問  ペーターパン  - 17/11/3(金) 21:01 -

引用なし
パスワード
   ▼カリーニン さん:
>変数名は本当に「path」ですか?
>変数名を他のに(例:mypath)変えても同じですか?

変数名はpathではないです。
今すぐには分かりませんが変数名を変更することは検討してみます。

【79492】Re:excel2013にて発生するworkbooks.Ope...
発言  カリーニン  - 17/11/4(土) 9:48 -

引用なし
パスワード
   >変数名はpathではないです。

そうでしたら変数名は関係ないかもしれません。

変数名が「path」だと、予約語なのでエラーになる可能性はありましたが、
違う、ということでしたので。

【79493】Re:excel2013にて発生するworkbooks.Ope...
質問  ペーターパン  - 17/11/6(月) 17:05 -

引用なし
パスワード
   ▼カリーニン さん:
>>変数名はpathではないです。
>
>そうでしたら変数名は関係ないかもしれません。
>
>変数名が「path」だと、予約語なのでエラーになる可能性はありましたが、
>違う、ということでしたので。

変数名「data」でした。
dat「e」であれば予約語ですが、これは予約語には当たらないかと思います。
それでも、一応変数名の変更はかけてみます。

他にも思い当たることがあれば何かご連絡お願い致します。

【79494】Re:excel2013にて発生するworkbooks.Ope...
発言  カリーニン  - 17/11/6(月) 22:15 -

引用なし
パスワード
   もしかしたら、↓が参考になるかもしれません。

ht tp://www.excel.studio-kazu.jp/kw/20130513223611.html

【79495】Re:excel2013にて発生するworkbooks.Ope...
質問  ペーターパン  - 17/11/7(火) 9:03 -

引用なし
パスワード
   ▼カリーニン さん:
>もしかしたら、↓が参考になるかもしれません。
>
>ht tp://www.excel.studio-kazu.jp/kw/20130513223611.html

参考URL拝見しました。
こういった現象も発生するのですね。
・あれから変数名を変更してみましたが、解決には至りませんでした。
・ウォッチウィンドウを利用してみました。
 デバッグを押した段階では変数の取得ができているという結果になります。
 本当に変数が取得できているのかは定かではないですが・・・。
・念のためOpneの命令の前にセルにパスを書き込む命令をして、そこで止めてみました。
 正常に書き込まれていました。
・そのセルに書かれた内容を参照してファイルを開こうとしました。
 これでも止まりました。

なかなか原因特定には至っていませんが、どうもOpen処理の前に3秒待つと動くことからpath取得自体になんらかのバグがあることも想定して処理をどう直すか考えてみます。

【79496】Re:excel2013にて発生するworkbooks.Ope...
発言  カリーニン  - 17/11/7(火) 12:47 -

引用なし
パスワード
   >path = ActiveWorkbook.Path

この部分を私がリンクした先の方法を参考にしたコードに変えても同じですか?

【79497】Re:excel2013にて発生するworkbooks.Ope...
質問  ペーターパン  - 17/11/8(水) 13:03 -

引用なし
パスワード
   ▼カリーニン さん:
>>path = ActiveWorkbook.Path
>
>この部分を私がリンクした先の方法を参考にしたコードに変えても同じですか?

返信が遅くなり申し訳ありません。

パスをFullNameから取得してInstrRevで切り出しましたがダメでした。
やはり同じようにOpenのか所で止まります。

やはりOpenメソッドを実行しようとした際にパスを参照できていないような気がします。
しかし、デバッグを実行した際には変数にパスが取得されているためF8キーで実行がステップインができてしまいます。

【79498】Re:excel2013にて発生するworkbooks.Ope...
発言  カリーニン  - 17/11/8(水) 17:44 -

引用なし
パスワード
   もしかしたら、外付けHD等ですか?

【79499】Re:excel2013にて発生するworkbooks.Ope...
質問  ペーターパン  - 17/11/8(水) 18:11 -

引用なし
パスワード
   ▼カリーニン さん:
>もしかしたら、外付けHD等ですか?

いえ、動作自体はCドライブで行っています。
ディレクトリもCドライブ直下など、なるべく深い場所は避けてテストしています。
私も最初は外付けのためパス取得が遅くなっているのだと思いました。
最初に列挙した通り、そういったたぐいの問題ではないです。

何度も相談に乗ってくださり大変恐縮です。
ありがとうございます。

【79503】Re:excel2013にて発生するworkbooks.Ope...
発言  w1709  - 17/11/14(火) 18:33 -

引用なし
パスワード
   >変数名が「path」だと、予約語なのでエラーになる可能性はありましたが、

それ予約語でしょうか?

自分が思う予約語とは
例)
  Dim if as String

入力しただけで警告が出る(または色がつく)
実行すればコンパイルエラー(実行時エラーじゃなくて)

【79504】Re:excel2013にて発生するworkbooks.Ope...
回答  まっつわん  - 17/11/20(月) 16:56 -

引用なし
パスワード
   >path = path & "\" & fileA

↑ファイルのフルパスですよね?
拡張子までちゃんと書いて見てはいかがでしょう?
違うかも知れないけど気になります。

【79506】Re:excel2013にて発生するworkbooks.Ope...
発言  ペーターパン  - 17/11/21(火) 12:46 -

引用なし
パスワード
   ▼まっつわん さん:
>>path = path & "\" & fileA
>
>↑ファイルのフルパスですよね?
>拡張子までちゃんと書いて見てはいかがでしょう?
>違うかも知れないけど気になります。

fileaの中身は拡張子付きのフルパスで、拡張子付きで変数を格納しています。

あれからいろいろと検証してみました。
守秘義務があるので簡単ですが、以下のようにメッセージボックスに
取得したパスが出るようにしてみました。

path = ActiveWorkbook.Path
path = path & "\" & fileA
Workbooks.Open Filename:=path ←ここで止まる
msgbox path


【結果】
・パスが取得できていることをメッセージボックスで確認してからokボタン押すとうまく動きます。
・次はメッセージボックスが出る前からエンターキー押しっぱなし。
 止まります。
・命令で3秒待つようにするとうまく動きます(前回も実施済み)。

よって、以下の通り推測します。
あくまで素人の推測ですので、分かりにくい点があるかと思いますがご容赦下さい。

・パスの「アドレス」つまり文字列自体の取得は問題なく実行されている。
・パスの「アドレス」を利用して対象のファイルを開く場合、そのアドレスをPCおよびエクセルが認識して「処理」するまでにはタイムラグが生じている。
つまり、「アドレス」という文字列とそれを認識して「処理」する行為(エクセルを開くなど)にはタムラグがあるため、変数にパスが取得できているからといって即実行できるとは限らない。
・おそらくEXCEL2013からSDI形式に変更されたことが影響していると思っています。

いろいろとご助力頂きありがとうございました。

9 / 13057 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free