Excel VBA質問箱 IV

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

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


4808 / 13644 ツリー ←次へ | 前へ→

【54307】マクロが止まる うまい棒 08/3/5(水) 18:15 質問[未読]
【54308】Re:マクロが止まる うまか棒 08/3/5(水) 20:38 発言[未読]
【54310】Re:マクロが止まる neptune 08/3/5(水) 22:49 発言[未読]
【54315】Re:マクロが止まる VBWASURETA 08/3/6(木) 10:18 回答[未読]
【54317】Re:マクロが止まる VBWASURETA 08/3/6(木) 15:29 発言[未読]
【54319】Re:マクロが止まる うまい棒 08/3/6(木) 21:03 お礼[未読]
【54320】Re:マクロが止まる neptune 08/3/6(木) 21:37 発言[未読]
【54321】Re:マクロが止まる VBWASURETA 08/3/7(金) 0:10 質問[未読]
【54325】Re:マクロが止まる neptune 08/3/7(金) 14:46 発言[未読]
【54326】Re:マクロが止まる neptune 08/3/7(金) 14:47 発言[未読]
【54328】Re:マクロが止まる VBWASURETA 08/3/7(金) 15:26 発言[未読]
【54318】Re:マクロが止まる VBWASURETA 08/3/6(木) 18:42 発言[未読]

【54307】マクロが止まる
質問  うまい棒  - 08/3/5(水) 18:15 -

引用なし
パスワード
   低レベルの質問ですいませんが・・

やりたいことはエクセルファイルを開いて、
あるセルのデータをコピーして、マクロを実行している
ファイルへペーストという単純作業です。

事前に読み込み用ファイルを開いておけば、
コピー&ペーストの処理はうまくいくのですが、
VBAにてファイルを開くとそれ以降の処理が実行されずに
止まってしまいます。
(エラーは返ってこないので正常終了している感じです)
↓止まってしまうコード↓

Dim OpenFileName As String '対象ファイル
  
  OpenFileName = "\\aaa\" & "bbb.xls"
  If OpenFileName <> "False" Then
    Workbooks.Open OpenFileName      ・・・1.
    Worksheets("ccc").Select        ・・・2.
  End If

  〜コピー&ペースト処理〜


これを実行すると1.は処理され2.は処理されません。
"bbb.xls"が開きシート"ccc"には移らず停止します。
ちなみに、

Dim OpenFileName As String '対象ファイル

  OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
  If OpenFileName <> "False" Then
    Workbooks.Open OpenFileName
    Worksheets("ccc").Select
  End If

  〜コピー&ペースト処理〜

と変更し、ダイアログボックスから対象ファイルを選択して開くと
最後まで処理が走ります。
大量なファイルで「開いて、処理して、閉じて」の繰り返しを
したいので、いちいちダイアログボックスで聞いてくるような
実装はNGです。

解決策をご教授ください。
※何故マクロが止まるかも興味があります

【54308】Re:マクロが止まる
発言  うまか棒  - 08/3/5(水) 20:38 -

引用なし
パスワード
   エクセル君には、どのブックのシートか指定してやらないと
いけません。

Dim wb As Workbook
 'なんたらかんたら
 Set wb = Workbooks.Open OpenFileName
 'なんたらかんたら
 Set wb = Nothing

複数のブックに対して連続して処理したいのなら、
ループさせる必要があります。

>大量なファイルで「開いて、処理して、閉じて」の繰り返しを
>したいので、いちいちダイアログボックスで聞いてくるような
>実装はNGです。

規則性はありますか?
同じフォルダに入っている、など。

【54310】Re:マクロが止まる
発言  neptune  - 08/3/5(水) 22:49 -

引用なし
パスワード
   ▼うまい棒 さん:
こんにちは
すでに指摘されている事もありますが、

>解決策をご教授ください。
>※何故マクロが止まるかも興味があります
と思う時は、先ず、MSのサポート技術情報で検索してみましょう。
h tp://support.microsoft.com/search/
「excel コピー 」その他思い付くキーワードで検索すれば沢山
コピーに関わる不具合がある事がわかります。
回避策も、それぞれに書いています。無い事もありますが。。。

いずれにしても、コピーを沢山繰り返すのはExcelは苦手です。

【54315】Re:マクロが止まる
回答  VBWASURETA  - 08/3/6(木) 10:18 -

引用なし
パスワード
   ▼うまい棒 さん、neptuneさん:

おはようございます。
多分ですが、それってただワークブックが前面になっていないから
選択ができないだけでは?
ダイアログだと前面表示されるので処理されるように見えます。

ブック選択例:
Workbooks(ブック名).Activate
WorkSheets(シート名).Select

【54317】Re:マクロが止まる
発言  VBWASURETA  - 08/3/6(木) 15:29 -

引用なし
パスワード
   ちょっと以下のサンプルで試しに検証してみました。
結果該当のフォルダにあるファイル全部開きましたね。
※試す場合ファイルが多いフォルダで試さない方が良いです・・・

ファイルオープン例:

Function opentest()

  Dim OpenPath As String
  Dim OpenFileName As String
  Dim OpenFullPath As String
 
  OpenPath = "C:\" 'フォルダパス
  OpenFileName = Dir(OpenPath & "*.xls", vbNormal) 'ファイル名
  Do While "" <> OpenFileName
    OpenFullPath = OpenPath & OpenFileName 'パスとファイル名を連結
    Workbooks.Open OpenFullPath
    Workbooks(OpenFileName).Activate
    If (Worksheets(1).Visible = True) Then '1番目のシートが表示されているか判定
      Worksheets(1).Select
    End If
    OpenFileName = Dir '次のファイルセット
  Loop
End Function

【54318】Re:マクロが止まる
発言  VBWASURETA  - 08/3/6(木) 18:42 -

引用なし
パスワード
   一つ気になったので追記します。

>(エラーは返ってこないので正常終了している感じです)

ですが、もしかして「On Error Goto〜」や「On Error Resume Next」
は使ってないですよね?^^;

前にもそいう方がいたのですが、エラーになっても無視するような
動きになるので、もしつけておられるのでしたら外してください。

【54319】Re:マクロが止まる
お礼  うまい棒  - 08/3/6(木) 21:03 -

引用なし
パスワード
   みなさんいろいろご丁寧に有難うございます。

>うまか棒さん
>規則性はありますか?
同じフォルダに不規則なファイル名で格納されています。

>neptuneさん
MSのサポート技術情報も含め、各種調べてみましたが
直接的に本事象に言及したようなものはありませんでした。
(私の調査不足だと思いますが。。)

>VBWASURETAさん
>もしかして「On Error Goto〜」や「On Error Resume Next」
>は使ってないですよね?^^;
エラーを無視するようにはしていませんが、エラーとならず終了しちゃいます。
頂いたサンプルを参考に再度実装してみます!

【54320】Re:マクロが止まる
発言  neptune  - 08/3/6(木) 21:37 -

引用なし
パスワード
   ▼うまい棒 さん:
みなさんこんにちは

>\\aaa\
というパスらしいので、ネットワークがらみってなことはないですか?

>エラーを無視するようにはしていませんが、エラーとならず終了しちゃいます。
が良く判らんです。何らかの症状がありそうですが。

すみません。このままでは判りません。

【54321】Re:マクロが止まる
質問  VBWASURETA  - 08/3/7(金) 0:10 -

引用なし
パスワード
   ▼うまい棒 さん、neptune さん:

こんばんは。

>\\aaa\
>というパスらしいので、ネットワークがらみってなことはないですか?

それはあり得そうなのですが、オープンエラーなり返しそうな気がします^^;

気になるのは止まる位置をどうやってわかったかですね。
シングルステップでデバッグでもされたのでしょうか?

【54325】Re:マクロが止まる
発言  neptune  - 08/3/7(金) 14:46 -

引用なし
パスワード
   ▼VBWASURETA さん:
▼VBWASURETA さん:
こんにちは

>>\\aaa\
>>というパスらしいので、ネットワークがらみってなことはないですか?
>
>それはあり得そうなのですが、オープンエラーなり返しそうな気がします^^;
いや、それはそうなんですが、何しろ相手のある事なんで???

>気になるのは止まる位置をどうやってわかったかですね。
>シングルステップでデバッグでもされたのでしょうか?
何事も無く最後まで走るが、処理はされてないってな事じゃありませんでしたっけ?

【54326】Re:マクロが止まる
発言  neptune  - 08/3/7(金) 14:47 -

引用なし
パスワード
   ▼neptune さん:
>VBAにてファイルを開くとそれ以降の処理が実行されずに
>止まってしまいます。
>(エラーは返ってこないので正常終了している感じです)
こういう事でしたね。

【54328】Re:マクロが止まる
発言  VBWASURETA  - 08/3/7(金) 15:26 -

引用なし
パスワード
   >いや、それはそうなんですが、何しろ相手のある事なんで???
それはネットワーク先のファイル存在とかそいうことですか?
書いたオープンエラーは予測で書いただけなので、接続できないとかそいう
エラーとかでも必ず何かしら返って来るかなっと思っただけですよ^^;


>何事も無く最後まで走るが、処理はされてないってな事じゃありませんでしたっけ?
途中で止ると書いてあったので止るというのが気になりました。
最後まで処理されるのであれば、画面切り替えができない状態で、
アクティブシート内で同じ選択を繰り返し処理をしている?と思ったんで
Activateしてみては?と書いたのですが途中で止ると書いてあったので
それは違うのかな?
じゃ、止るというのは何で確認されたのでしょう?
というところに疑問が出てきたわけです。

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