advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 14716 for VBA ������������ (0.003 sec.)
[[20081202151351]]
#score: 3409
@digest: 30fc1294c92acad6ed7fe64870a3cb4b
@id: 41112
@mdate: 2008-12-08T09:38:57Z
@size: 9505
@type: text/plain
#keywords: クid (45246), testarea2002 (42959), ア¥ (39289), 荷依 (29059), menubar (26361), 書原 (18825), 頼書 (17709), 接パ (17620), 原簿 (13907), ・” (10304), explorer (9997), 書. (8536), navigate (6604), internetexplorer (6170), documents (6049), ス, (5866), 規bo (5072), 明記 (4879), shell (4341), タス (4260), パス (4258), 依頼 (4128), 出荷 (3814), ダパ (3668), visible (3170), ichinose (2892), wscript (2839), createobject (2587), のvb (2254), スク (2112), ーラ (2094), エリ (2024)
『UserFormからエクスプローラを立ち上げて閉じる際のエラーについて』(まき)
OS:2003、Ver:2003 いつも色々参考にさせて頂いております。ここ最近質問ばかりですいません。 UserFormからエクスプローラを立ち上げて閉じるVBAを次の通り作成しました。所が、 2000と2007では問題ないのですが、2003だけ「ご迷惑をお掛けしました・・・」とエラ ーになります。それも、2003だけです。このVBAで2003だけエラーになる要素が有るので しょうか? Private Sub CommandButton5_Click() Dim パス As String Dim タスクID As String Unload Me Application.Visible = True '画面を出す Windows("○×.xls").Activate パス = ActiveWorkbook.Path Application.DisplayAlerts = False 'メッセージを出さない タスクID = Shell("explorer.exe " & パス, vbNormalFocus) If タスクID = 0 Then MsgBox "起動に失敗しました" End If Workbooks("○×.xls").Close End Sub 以上よろしくお願い致します。 ---- 初めて聞くエラーメッセージです。 知っている方が現れるまで、いくつか思いついたことを試してみましょう。 以下のコードではどうでしょうか? Sub samp() On Error Resume Next With CreateObject("InternetExplorer.Application") .Visible = True .MenuBar = False .navigate "D:¥My Documents¥TESTエリア¥testarea2002" ' ↑目的のフォルダパスを指定する CreateObject("wscript.shell").Popup "ok" .Quit End With End Sub ---- おはようございます、まきです。 1台だけで使用するのであれば、直接パスを明記すればいいのですが、ネットワーク環境化や他店での 使用もある為に、ファイルを開いた際にパスを取得する方法に変更しました。 以前はエクスプローラのホルダー指定を直接パスで明記しておりました。 タスクID = Shell("explorer.exe " & パス, vbNormalFocus) → 今回 Shell "Explorer.exe ¥¥abcd¥my documents¥出荷依頼書原簿", 1 → 以前 最初はabcd PCの出荷依頼書原簿と言うフォルダーを明記したが、このマクロで保管先の abcd PCで動かした所、エラー(詳細は不明)になると聞いたのでパスを取得して修正しました。 ネットワーク環境化で2000〜2007があり、2003だけ最後にエクセルの右上の×やメニューから閉じるを 行うと”ご迷惑をお掛けしました・・・”となります。2000と2007ではOKなので、??です。 ちなみにVBAを次の様にした所、実行時エラー53ファイルが見つかりませんとなります。 Shell "Explorer.exe" & パス, 1 次の通り修正しても、”ご迷惑をお掛けしました・・・”となります。 Shell "Explorer.exe /select," & パス, 1 以上よろしくお願い致します。 ---- >1台だけで使用するのであれば、直接パスを明記すればいいのですが ん?直接パス指定するとかしないとかは、今は関係ありませんよね? 今は、エラーの確認をしている段階ですので・・・。 1 Sub samp() On Error Resume Next With CreateObject("InternetExplorer.Application") .Visible = True .MenuBar = False .navigate "D:¥My Documents¥TESTエリア¥testarea2002" ' ↑目的のフォルダパスを指定する CreateObject("wscript.shell").Popup "ok" End With End Sub このコード(ちょっと変更)で フォルダ名を適当に変えて実行し、 エラーの発生の有無を確認したいのです。 2 フォルダを開く方法は他にも '================================================================= Sub sample() CreateObject("shell.application").Open "D:¥My Documents¥TESTエリア¥testarea2002" End Sub こんな方法もあります。フォルダ名を変更して、エラーの有無を確認してみてください。 パスの変数化なんて、エラーが発生しないなら、考えればよいのです。 ichinose ---- ichinose様、おはようございます、まきです。 さて、ichinose様からご連絡頂いた方法を試してみました。本結果をご報告申し上げます。 方法1.下記の通りVBAを明記して実行させました。(2003のみ)→Windows Script Host boxが立ち上がり OKを押し、エクセルシートが閉じた後×を押しましたが、”問題が発行したため・・・”(同じ現象) Private Sub CommandButton5_Click() Dim パス As String Dim タスクID As String Unload Me Application.Visible = True '画面を出す Windows("出荷依頼書.xls").Activate On Error Resume Next With CreateObject("InternetExplorer.Application") .Visible = True .MenuBar = False .navigate "¥¥abcd¥my documents¥出荷依頼書原簿" ' ↑目的のフォルダパスを指定する CreateObject("wscript.shell").Popup "ok" End With Workbooks("出荷依頼書.xls").Close End Sub 方法2.下記の通りVBAを明記して実行させました。(2003のみ)→エクセルシートが閉じた後×を押しま したが、”問題が発行したため・・・”(同じ現象) Unload Me Application.Visible = True '画面を出す Windows("出荷依頼書.xls").Activate CreateObject("shell.application").Open "¥¥abcd¥my documents¥出荷依頼書原簿" Workbooks("出荷依頼書.xls").Close 今回は2003しか不具合が発生していない為、上記のVBAは2000と2007では実施しておりません。 以上よろしくお願い致します。 ---- もう一つ試して下さい。エラーの原因を探索するためです。 この直前のコードは、まきさんが現在問題にしているブック内のコードを私が提示したコードに 差し替えての実行結果ですよね? そうではなく、別の新規ブックの標準モジュールに '=============================================== Sub samp() On Error Resume Next With CreateObject("InternetExplorer.Application") .Visible = True .MenuBar = False .navigate "D:¥My Documents¥TESTエリア¥testarea2002" ' ↑目的のフォルダパスを指定する CreateObject("wscript.shell").Popup "ok" End With End Sub または、 Sub sample() CreateObject("shell.application").Open "D:¥My Documents¥TESTエリア¥testarea2002" End Sub あるいは、元々のコードでも sub test() Dim タスクID As long タスクID = _ Shell("explorer.exe " & "D:¥My Documents¥TESTエリア¥testarea2002", vbNormalFocus) If タスクID = 0 Then MsgBox "起動に失敗しました" End If end sub 試してみてエラーの有無を確認してみてください。 これでもエラーになるなら、Excelに問題があるということがかなり疑わしいです。 でも、新規ブックでは、エラーにならないのであれば、現在、まきさんが扱っているブックに問題が あることも考えられます。 掲載コードは、エラーの引き金になってはいても、それ以外に根本の問題が掲載されていない箇所の VBAコードやあるいは、数式などにあるという可能性もあります。 Excelの異常終了は、メモリーリークが原因になることは、経験した事があります。 とにかく、原因箇所を特定することです。 といっても結構大変な作業ですけどね!! この手の問題の場合、原因箇所の特定が難しい場合もあります。 エラーにならないコードから、少しずつコードを追加していって、エラーにならない状況から エラーになる状況に変化する境界をさぐる作業です。 御経験のある方が現れるまでは、こういう地道な作業を行ってみてください。 それと Excel2003をお持ち方がいらっしゃいましたら、御協力お願いします。 ichinose ---- ichinose 様 おはようございます、まきです。先週金曜日に確認した結果をご連絡申し上げます。 新規bookの2種類のVBAについては、何ら問題なく動作しました。但し、元々のVBAへ変更については、 やはりWindowsのエラーの「問題が発生した為・・・・」となりました。ちなみに、他の2003インストー ルPCでも同様なので、何か私のVBAの記述が悪いと思うのですが。。。。他のボタンのVBA記述との関係 も有るのかもしれません。何故2000と2007で動くのかは??です。。。 今回問題の無かった(新規bookで)物をベースに、再デバッグを行ってみてみます。 以上よろしくお願い致します。 ---- 自己レスです。 色々デバッグを行っていて、不思議な現象が出て来ましたので報告致します。 本bookのマクロを無効にして立ち上げてみました。 1.ウインドウを閉じる→保存しない→エクセルを閉じる→Fail 2.ウインドウを閉じる→保存する→エクセルを閉じる→Fail 3.エクセルを閉じる→保存しない→OK もしや2003のバグかと思い、新規bookでマクロを張って同様の事を行いましたが、1〜3までOKでした。 マクロを無効にして立ち上げても、記述されたマクロの影響を受けるのでしょうか? (ちなみに、このボタンのVBA部を全部コメント行にしましたが、やはり同様のエラーを生じます。) 以上よろしくお願い致します。 ---- 自己レスの2回目です。本内容は、解決しましたのでご説明致します。 全てのマクロを新規bookに全てコピーをして、使用しているフォームもそのままコピーし動作させました。 使用しているシートとAuto_Open()の一部が違うだけですが、問題なく閉じる事が出来ました。よって、 他のVBAの問題でも無い判断しました。そこで、この新規にコピーしたシートを使い作り直した所(ほとんどコピー)、従来 と同じ動作でのVBAが動きましたので、これを使用する事にしました。全て100%コピーしたのでは無い為に、 原因が分からないのですが、結果OKとして使用する事にしました。違いはAuto_Open()時に、シートの Clear等を使わなくしただけなので(本来は原因を突き止めたいのですが、時間の問題もあるので)、2003 では何かの関係組合せで問題が有るのか、2003が入っているのがXp homeですが、2000と2007Xp Proの為 OSの違いの問題なのか(エクセルのエラーMessageで無い為)とも思えます。 この度はichinose様に大変お世話になりました事を感謝します。原因がつかめていない為、多少後味が 悪いのですが、性格上結果オーライ主義なのでお許し願います。 以上よろしくお願い致します。 ---- >本内容は、解決しましたのでご説明致します。 すごい、こういうのは、中々解決できないものですけどねえ!! >この新規にコピーしたシートを使い作り直した所(ほとんどコピー)、従来と同じ動作でのVBAが動きましたので、これを使用する事にしました。 私もこれをお奨めするつもりでしたが、手動でやってしまわれたのですねえ!!。 http://www.vector.co.jp/soft/winnt/business/se254963.html こんなツールもありますから、今後は、ご一考ください。 ichinose ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/200812/20081202151351.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97008 documents and 608119 words.

訪問者:カウンタValid HTML 4.01 Transitional