Excel VBA質問箱 IV

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

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


149 / 3841 ページ ←次へ | 前へ→

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

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

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

何度も相談に乗ってくださり大変恐縮です。
ありがとうございます。
・ツリー全体表示

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

引用なし
パスワード
   もしかしたら、外付けHD等ですか?
・ツリー全体表示

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

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

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

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

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

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

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

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

【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取得自体になんらかのバグがあることも想定して処理をどう直すか考えてみます。
・ツリー全体表示

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

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

ht tp://www.excel.studio-kazu.jp/kw/20130513223611.html
・ツリー全体表示

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

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

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

他にも思い当たることがあれば何かご連絡お願い致します。
・ツリー全体表示

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

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

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

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

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

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

変数名はpathではないです。
今すぐには分かりませんが変数名を変更することは検討してみます。
・ツリー全体表示

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

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

【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を変えても停止は再現されます。

何か分かる方がいましたらご連絡頂けますと幸いです。
・ツリー全体表示

【79488】Re:重複チェックをしたい
回答  りった  - 17/10/30(月) 12:45 -

引用なし
パスワード
   >条件付き書式で実現しようと思いましたが、
>条件の適用先を可変するような方法が思い浮かばず
>VBAで実現可能かご教示頂けないでしょうか。
今一つ、やりたいことを理解出来てませんが、
VBAで条件の適用先を変えるのでは問題あるのでしょうか?

一言でいうと、別のシートにもある品番に色を付けたいってことでしょうか?
質問内容とは異なりますが、作業ファイルが変わらず作業シートが毎日変わるのであれば、一気に全部やってしまった方が楽だと思います。(ボタンを設置しなくて済む)
作業ファイルが毎日変わるのであれば、個人用マクロブック(PERSONAL.XLSB)を使った方が楽じゃないかなと思いました。
・ツリー全体表示

【79487】Re:ユーザー定義関数の中でセルの値を参...
お礼  りった  - 17/10/27(金) 13:14 -

引用なし
パスワード
   回答ありがとうございます。
自分が今使っているファイルだと、無関係のセルが変更されても再計算されるのはまずそうです。
・ツリー全体表示

【79486】Re:ユーザー定義関数の中でセルの値を参...
お礼  りった  - 17/10/27(金) 13:12 -

引用なし
パスワード
   >数式にも名前を付けられます。
ありがとうございます!!
そんなことが出来るんですね。
完全解決しました。
・ツリー全体表示

【79485】Re:ユーザー定義関数の中でセルの値を参...
お礼  りった  - 17/10/27(金) 13:10 -

引用なし
パスワード
   済みません。返信見落としてました。
> 質問にある、手法2を使いたい理由は何ですか?
式が変わりうるからです。
・ツリー全体表示

【79484】Re:セルにマクロ登録
お礼  SANO  - 17/10/27(金) 8:42 -

引用なし
パスワード
   ご回答ありがとうございます。

GetAsyncKeyStateをキーワードですね。
勉強してみます。

ところでエンターで完結したい理由なのですが、大した理由ではありません。
以前は誰かが作成したaccessの印刷するフォームを使用しているのですが、
そのPCが不調となりました。
空いているPCのofficeにはaccessが入って無く…仕方なく触った事の無いマクロで作成してみました。
なんとか同じように印刷できるようになったのですが、最後の印刷ボタンがコマンドボタンなのでマウスを使うため今回の質問となりました。

入力確認の為に一旦手を話してマウス使用もよいですね。


ご丁寧に回答ありがとう御座いました。
またマルチポストでもご迷惑をお掛けしました。
・ツリー全体表示

【79483】Re:セルにマクロ登録
発言  γ  - 17/10/27(金) 6:55 -

引用なし
パスワード
   どうしても、文字通り、Enterキーが押されたことを認識させる必要がある、
ということなら、それは可能ではあるでしょう。
GetAsyncKeyStateをキーワードにして検索してみて下さい。

ただし、Enterキーを察知して、特定条件を満たしたら印刷を実行したいなら、
入力されたキーを絶えず監視するコードを走らせる必要があります。
(組込のイベントプロシージャとは違いますから)
Excelは、そのコードの実行のためだけに資源が使われますから、
ほかの処理はそっちのけということになります。

喩えれば、人が息を吸ったときに、何かのチェックをさせるようなもので、
ありふれていることだけに、24時間、息を吸ったかどうかを監視し続けるので、
人はろくなことができません。ノイローゼになります。それと同じです。

むろん、監視コードの開始と終了をユーザーから指示させれば、
四六時中の監視は不要になりますが、
印刷の指示は省けても余計なことが増えて、
かえって手間がかかることになります。

頻繁には起きることのない印刷なんですから、
ボタンを押すとか、特定セルへの入力(Changeイベントでキャッチ)くらいのことは、甘受してはどうでしょうか。
・ツリー全体表示

【79482】Re:セルにマクロ登録
発言  γ  - 17/10/26(木) 20:58 -

引用なし
パスワード
   >マウスを使わずエンターのみで操作をしたいからです。

であれば、
その印刷マクロにショートカットキーを関連づければ、
キー操作だけでマクロの起動ができますが。

ところで、
その印刷は、それほどの頻度と迅速性が求められているんですか。
キー操作で高速に指示を出さないと、時期を逸してしまうのでしょうか。
・ツリー全体表示

【79481】Re:セルにマクロ登録
発言  マナ  - 17/10/26(木) 19:00 -

引用なし
パスワード
   ▼SANO さん:

>なぜボタンではダメなのかと言いますと。
>マウスを使わずエンターのみで操作をしたいからです。
>セル、ボタンのロックを外してシート保護をしてもセルからボタンにはカーソルが飛びませんでした。

わたしは、あまり便利に思いませんが
Acceleratorプロパティは使えませんか。
・ツリー全体表示

【79480】Re:セル内の改行されている行を指定した...
お礼  あみ  - 17/10/26(木) 17:05 -

引用なし
パスワード
   返答ありがとうございます。

まだコードがなんと書かれているかが理解できないので、実際に動かしながら確かめていきたいと思います。

ご丁寧な対応ありがとうございました!
・ツリー全体表示

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