Excel VBA質問箱 IV

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

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


1361 / 13645 ツリー ←次へ | 前へ→

【74883】フォルダー内のbook全て開く Jママ 13/10/21(月) 13:31 質問[未読]
【74884】Re:フォルダー内のbook全て開く Jママ 13/10/21(月) 14:58 質問[未読]
【74885】Re:フォルダー内のbook全て開く Yuki 13/10/21(月) 16:03 発言[未読]
【74886】Re:フォルダー内のbook全て開く Jママ 13/10/21(月) 16:38 回答[未読]
【74888】Re:フォルダー内のbook全て開く Yuki 13/10/21(月) 18:27 発言[未読]
【74889】Re:フォルダー内のbook全て開く Jママ 13/10/21(月) 20:35 お礼[未読]
【74910】Re:フォルダー内のbook全て開く Jママ 13/10/23(水) 11:20 お礼[未読]

【74883】フォルダー内のbook全て開く
質問  Jママ  - 13/10/21(月) 13:31 -

引用なし
パスワード
   2007で作成したマクロが2013で作動しなくて困っています。
例えば下記 フォルダー内のファイルを全て開くのですが、
以前何処かで頂いて来たものですが、2013ではどうしてうまく動かないのでしょうか?
他にも多くありますが、これを例に
2007と2010 2013で どんな所を修正すると良いのか
教えて下さい
宜しくお願い致します。

Sub 全て開く()
  
 Application.ScreenUpdating = False
 
 Dim FileName As String
  Dim OpenedBook As Workbook
  Dim IsBookOpen As Boolean
 
  FileName = Dir("*.xlsm")
  Do While FileName <> ""
    If FileName <> ThisWorkbook.Name Then
      IsBookOpen = False
      For Each OpenedBook In Workbooks
        If OpenedBook.Name = FileName Then
          IsBookOpen = True
          Exit For
        End If
      Next
      If IsBookOpen = False Then
        Workbooks.Open (FileName)
      End If
    End If
    FileName = Dir()
  Loop


 Workbooks("メイン.xlsm").Activate
 Application.ScreenUpdating = True
 
End Sub

【74884】Re:フォルダー内のbook全て開く
質問  Jママ  - 13/10/21(月) 14:58 -

引用なし
パスワード
   すみません、急いでいましたので、
下記を利用させて頂きました。

Public Function fncXlsOpen(strBookName As String) As Boolean  
Dim objWB As Workbook

fncXlsOpen = False

For Each objWB In Workbooks
  If objWB.Name = strBookName Then
    fncXlsOpen = True
  End If
Next objWB

End Function


2013でのエラーは ファイルを開くときによく起きるようです。
何かご教授いただけると助かります。

Workbooks.Open FileName:=ThisWorkbook.Path & "\" & strFileName
Workbooks.Open ThisWorkbook.Path & "\" & strFileName

この2つは同じ事だと解釈してますが、違うのでしょうか?

【74885】Re:フォルダー内のbook全て開く
発言  Yuki  - 13/10/21(月) 16:03 -

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

ただコードを見ただけで検証していないのですが
何処でエラーになるjのでしょうか。
又、初期値のフォルダー名は指定が無いですけど
カレントディレクトリーで合っているのでしょうか、

【74886】Re:フォルダー内のbook全て開く
回答  Jママ  - 13/10/21(月) 16:38 -

引用なし
パスワード
   Yukiさん、ありがとうございます。

エラーは
Workbooks.Open (FileName)
で止まります。

カレントディレクトリーです。
最初に
ChDir ThisWorkbook.Path
を挿入しましたが、やはり同じでした。

Sub 全て開く()
 ChDir ThisWorkbook.Path
 Application.ScreenUpdating = False
 
 Dim FileName As String
  Dim OpenedBook As Workbook
  Dim IsBookOpen As Boolean
 
  FileName = Dir("*.xlsm")
  Do While FileName <> ""
    If FileName <> ThisWorkbook.Name Then
      IsBookOpen = False
      For Each OpenedBook In Workbooks
        If OpenedBook.Name = FileName Then
          IsBookOpen = True
          Exit For
        End If
      Next
      If IsBookOpen = False Then
        Workbooks.Open (FileName)  'ここで止まります
      End If
    End If
    FileName = Dir()
  Loop


 Workbooks("メイン.xlsm").Activate
 Application.ScreenUpdating = True
 
End Sub

【74888】Re:フォルダー内のbook全て開く
発言  Yuki  - 13/10/21(月) 18:27 -

引用なし
パスワード
   ▼Jママ さん:
こんにちは。では
>      If IsBookOpen = False Then
         Debug.Pring FileName 'を追加してファイル名を確認して見ましょう。
         
>        Workbooks.Open (FileName)  'ここで止まります
>      End If

【74889】Re:フォルダー内のbook全て開く
お礼  Jママ  - 13/10/21(月) 20:35 -

引用なし
パスワード
   正確なファイル名になっています。
その後の作業で気づいたのですが、
そもそもこのVBAが悪いのではなく、
開こうとしている他ファイル自体がいけないようです。
触っている間に 保存もできない状態になりました。

2007では問題なく動くのですが、2013にするとExcel自体もダウンするまでひどくなりました。
こちらでお聞きしたいのですが、かなりのVBAが入っていますので・・・
地道にひとつひとつ確認して行きます。
有難うございました。

【74910】Re:フォルダー内のbook全て開く
お礼  Jママ  - 13/10/23(水) 11:20 -

引用なし
パスワード
   解決しましたので 報告させて頂きます。
シート名に()を使用していました。
シート名を変えコードを直したら嘘のように動いています。
お騒がせしました。

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