Excel VBA質問箱 IV

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

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


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

【68629】Excel 2007がインストールされている環境でのxls保存エラー ゆかわ 11/3/31(木) 10:55 質問[未読]
【68632】Re:Excel 2007がインストールされている環... Jaka 11/3/31(木) 13:20 発言[未読]

【68629】Excel 2007がインストールされている環境...
質問  ゆかわ  - 11/3/31(木) 10:55 -

引用なし
パスワード
   シートをそれぞれブックにして保存したく、以下のマクロを記述したところ
Excel 2007がインストールされている環境では拡張子をxlsとしてファイルを保存しても、従来の形式で保存してくれないため「FileFormat:=xlExcel8」を追記したところ、
保存していく過程(ActiveWorkbook.SaveAs path & st.Name & ".xls", FileFormat:=xlExcel8)でランダムに「1004 実行時エラー」が出るようになってしまいました。出ないときもあるのですが、出る時もあったりと原因がわかりません。
エラーが出ないようにする対応策を教えていただけないでしょうか。


Sub splitBook店毎()

  Const path As String = "\\●●\"
  Dim bk As Workbook
  Set bk = ActiveWorkbook
  Dim w As Worksheet
  Dim st As Worksheet
  Application.DisplayAlerts = False
  For Each st In bk.Sheets
    If Left(st.Name, 2) <> "対応" Then
      Workbooks.Add
      st.Copy Before:=ActiveWorkbook.Sheets(1)
      ActiveWorkbook.Sheets(2).Delete
      ActiveWorkbook.SaveAs path & st.Name & ".xls", FileFormat:=xlExcel8
      ActiveWorkbook.Close
    End If
    If st.Index = bk.Sheets.Count Then Exit For
  Next
  Application.DisplayAlerts = True
End Sub

【68632】Re:Excel 2007がインストールされている...
発言  Jaka  - 11/3/31(木) 13:20 -

引用なし
パスワード
   >xlExcel8
対応してないバージョンだと多分ただの変数。
中身がないので、エラー。
コンパイルエラーだったら、未対応と言うことで、なんだこれ?状態。

コンパイルエラー防止は、

msgbox xlExcel8

で、得た数値を直接使ってください。

コンパイルエラーが出た場合も出ない場合も、
エクセルのバージョンで分岐する事が必要。
MsgBox Application.Version

追加
>Excel 2007がインストールされている環境では拡張子をxlsとしてファイルを保存しても、
>従来の形式で保存してくれないため「FileFormat:=xlExcel8」を追記したところ、
あ、そうか。
2007で、従来の形式で保存するをマクロ記録をして保存形式の書き方を確認されたらどうですか。

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