質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Office 365

Office 365は、マイクロソフトが販売している企業向けクラウドベースのグループウエアサービス。電子メールや予定表、Webサイト構築、オンラインストレージ、ビデオ会議などビジネスで必要な機能を備えています。クラウドサービスのため、自社での専用サーバーの設置の必要がないことが特徴です。

Q&A

解決済

1回答

1645閲覧

windows10 office 2016環境での.vbs

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Office 365

Office 365は、マイクロソフトが販売している企業向けクラウドベースのグループウエアサービス。電子メールや予定表、Webサイト構築、オンラインストレージ、ビデオ会議などビジネスで必要な機能を備えています。クラウドサービスのため、自社での専用サーバーの設置の必要がないことが特徴です。

0グッド

0クリップ

投稿2017/12/14 13:06

編集2017/12/19 23:29

データフォルダの中にある、エクセルが例えば1つであれば、ポップアップは

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

imihito

2017/12/14 14:38

①vbsのコードを提示してください。②「使用できなくなりました」とありますが「動くけれど意図しない動作をする」・「途中で○○というエラーが発生して止まる」などより詳細な情報を提示してください。
退会済みユーザー

退会済みユーザー

2017/12/14 23:17

Option Explicit Const DIR = "C:\Temp\***\***\data" Const XLS = "C:\Temp\***\***\***.xlsx" Marge Sub Marge Dim cn Dim rs Set cn = CreateObject("ADODB.Connection") cn.Open "Provider=Microsoft.ACE.OLEDB.14.0;Data Source=" & xls & ";Extended Properties=Excel 16.0" Dim fs Set fs = CreateObject("Scripting.FileSystemObject") Dim folder Set folder = fs.GetFolder( DIR ) Dim file 'エラーカウンター Dim cnt cnt = 0 For Each file In folder.Files 'WScript.Echo file On Error Resume Next cn.Execute "INSERT INTO [Sheet1$] SELECT * FROM [Excel 16;database=" & file & "].[***$A3:AI4]" If Err.Number = 0 Then 'WScript.Echo "OK" Else cnt = cnt + 1 'WScript.Echo "Error!! 修正して下さい:" & file Dim objExcel '************* Set objExcel = CreateObject("Excel.Application") '************* objExcel.Visible = True '************* objExcel.Workbooks.Open file '************* Set objExcel = Nothing End If Nextありがとうございます。コードを記載したつもりでしたが、記載がされてませんでした。
imihito

2017/12/15 08:52

そのコードは質問に追記してください。こちらに書かれても初期状態だと隠れている&フォーマットが崩れるで二重に見にくいです。
退会済みユーザー

退会済みユーザー

2017/12/15 17:37

失礼いたしました。質問に記載いたしました。
guest

回答1

0

ベストアンサー

私の環境は以下の通りです
Windows 10 Pro 64bit
MS Office 365 Solo (2016 64bit)

コード側の問題

cn.Opencn.Executeの引数内のExcel ~といった文字列ですが、これはExcelのバージョンを示すものではありません。

ここに指定するのはISAM形式、ざっくりとしたイメージでは「ファイルの形式」となります。
今回対象ファイルがxlsx、Excel 2007(=Excel 12.0)の形式となるためExcel 12.0を指定します。

私の環境の場合、VBAから実行する場合は上記の変更とMicrosoft.ACE.OLEDBのバージョンを指定すれば動きましたが、VBScriptから実行する場合は次の操作が必要になりました。

Accessのエンジンのインストール

以下のページからAccessのエンジンをダウンロード・インストールし、プロバイダをMicrosoft.ACE.OLEDB.12.0に変更することでVBScriptからでも実行できるようになりました。

Download Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント from Official Microsoft Download Center

こちらのエンジンですが、32bit/64bitが共存できないため、どちらかを選択する必要があります。

私は上記の通りOfficeも64bitでインストールしているため、64bit版をインストールしましたが、起動方法なども鑑みて選択してください。

vbscript

1Option Explicit 2 3Const DIR = "C:\Temp**\data" 4Const XLS = "C:\Temp*****.xlsx" 5 6Call Merge 7 8Sub Merge() 9 10Dim cn 'As ADODB.Connection 11Set cn = CreateObject("ADODB.Connection") 12 13'Provider・Extended Propertiesの指定の変更 14Dim connectionString 'As String 15connectionString = _ 16 "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 17 "Data Source=" & XLS & ";" & _ 18 "Extended Properties=Excel 12.0" 19 20cn.Open connectionString 21 22Dim fso 'As Scripting.FileSystemObject 23Set fso = CreateObject("Scripting.FileSystemObject") 24Dim folder 'As Scripting.Folder 25Set folder = fso.GetFolder(DIR) 26 27Dim file 'As Scripting.File 28'エラーカウンター 29Dim cnt 30For Each file In folder.Files 31 WSH.Echo file.Path 32 On Error Resume Next 33 cn.Execute "INSERT INTO [Sheet1$] SELECT * FROM [Excel 12.0;database=" & file.Path & "].[***$A3:AI4]" 34 If Err.Number = 0 Then 35 WSH.Echo "OK" 36 Else 37 cnt = cnt + 1 38 WSH.Echo Err.Description 39 WSH.Echo "Error!! 修正して下さい:" & file.Path 40 With CreateObject("Excel.Application") 41 .Visible = True 42 .Workbooks.Open file.Path 43 End With 44 Err.Clear 45 End If 46 On Error GoTo 0 47Next 'file 48End Sub

投稿2017/12/16 16:33

imihito

総合スコア2166

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/18 12:21

ありがとうございます。 大変勉強になります。 ちゃんと理解できていないところもあり、噛み砕いております。 また質問させていただく際はよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問