ここから本文です

vbs初心者です。

upd********さん

2019/3/1311:35:22

vbs初心者です。

フォルダ内のxlsmブックを一括してxlsブックに変換するvbsを知恵袋で見てやったのですが、上手くいきません。参照にしたのは下記のvbsです。使ってるパソコンはWindows7です。


Option Explicit
Dim bk, ex, f, gf, so
Set so = CreateObject("Scripting.FileSystemObject")
Set gf = so.GetFolder(so.GetParentFolderName(WScript.ScriptFullName))
Set ex = CreateObject("Excel.Application")
ex.Application.DisplayAlerts = False
ex.Visible = False
For Each f In gf.Files
If LCase(so.GetExtensionName(f.Name)) = "xlsm"Then
Set bk = ex.Workbooks.Open(gf &"\"&f.Name)
bk.SaveAs gf &"\"&so.GetBaseName(f.Name) &".xlsx", 51
bk.Close
Set bk = Nothing
End If
Next
ex.Quit
Set ex = Nothing
Set gf = Nothing
Set so = Nothing
MsgBox("Finished!")

閲覧数:
48
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

lin********さん

2019/3/1313:38:29

このプログラムでは、

bk.SaveAs gf &"\"&so.GetBaseName(f.Name) &".xlsx", 51

としています。

この最後の「51」は、エクセルの「VBA」でいう、「FileFormat:=xlWorkbookDefault」または「FileFormat:=xlOpenXMLWorkbook」にあたるものです。

もし、お使いのエクセルのバージョンが「2003」まででしたら、「xls」が、「デフォルト」ですので、この「51」で「xls」保存されますが、多分、それより上の(新しい)バージョンだと思われますので、明確に「xls」と言ってやらなければなりません。

したがって、上の行を

bk.SaveAs gf &"\"&so.GetBaseName(f.Name) &".xls", 56

に入れ替えてください。

この「56」は、「FileFormat:=xlExcel8」にあたるもので、「Excel 97-2003 ブック」に変換します。

  • 質問者

    upd********さん

    2019/3/1313:48:03

    回答ありがとうございます。エクセルは2010を使ってます。
    これで試したところ、
    スクリプト:C…
    行:3
    文字:9
    エラー:構文エラーです?
    コード:800A03EA
    ソース:Microsoft VBScript コンパイルエラー
    と出ます。

  • その他の返信(3件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/3/13 18:20:49

解決はできませんでしたが、何度も回答いただきありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

tar********さん

2019/3/1311:56:34

こんにちは。

私が手元の環境でやると上手くいきましたが、どこが上手くいかなかったのでしょうか。エラーメッセージは何も出ていなかったのですか?

念のためですが、このコードは、そのvbsコードと同じフォルダに保存されているExcelファイルのみを操作対象としています。それ以外のExcelファイルに対しては何もしません。想定通りでしょうか。いかがでしょう。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる