Excel VBA質問箱 IV

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

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


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

【80140】Excel vbaのコードをVBSに変換 HY 18/9/10(月) 22:45 質問[未読]
【80141】Re:Excel vbaのコードをVBSに変換 よろずや 18/9/10(月) 23:33 回答[未読]
【80142】Re:Excel vbaのコードをVBSに変換 HY 18/9/11(火) 8:35 質問[未読]
【80143】Re:Excel vbaのコードをVBSに変換 よろずや 18/9/11(火) 9:02 発言[未読]
【80145】Re:Excel vbaのコードをVBSに変換 HY 18/9/11(火) 10:20 質問[未読]
【80146】Re:Excel vbaのコードをVBSに変換 よろずや 18/9/11(火) 11:09 回答[未読]
【80148】Re:Excel vbaのコードをVBSに変換 HY 18/9/11(火) 19:54 お礼[未読]

【80140】Excel vbaのコードをVBSに変換
質問  HY  - 18/9/10(月) 22:45 -

引用なし
パスワード
   下のコードをVBSに変換したいのですが、ADOの接続の所でエラーが出てしまいます。excelにクエリの結果を表示するコードです。
Createobject関数、変数の型宣言ができない、WSHに依存等の事しかVBSに関してはわかりません。
Dim mya As ADODB.Connection
Dim myb As String
Dim myc As Excel.Range
Dim myd As ADODB.Recordset

Set mya = New ADODB.Connection

myb = "MDBファイルのフルパス"
With New Excel.Application
  Set myc = .Workbooks.Open("xlsファイルフルパス").ActiveSheet.Range("a15")
 
  .Visible = True
End With

With mya
.Provider = "microsoft.jet.oledb.4.0"
.ConnectionString = "data source=" & myb
.Open
Set myd = .Execute("クエリ")
myc.CopyFromRecordset myd
mya=nothing
myd=nothing


End With

この様な処に聞くのが初めてですので、不慣れな点はあるとは思いますが、
ご教授お願いいたします。
よろしくお願いいたします。

【80141】Re:Excel vbaのコードをVBSに変換
回答  よろずや  - 18/9/10(月) 23:33 -

引用なし
パスワード
   環境が違うので試してませんが...

Dim mya
Dim myb
Dim myc
Dim myd
Set mya = CreateObject("ADODB.Connection")
myb = "MDBファイルのフルパス"
With CreateObject("Excel.Application")
  Set myc = .Workbooks.Open("xlsファイルフルパス").ActiveSheet.Range("A15")
  .Visible = True
End With
With mya
  .Provider = "Provider=Microsoft.Jet.OLEDB.4.0;"
  .ConnectionString = "data source=" & myb
  .Open
  Set myd = .Execute("クエリ")
  myc.CopyFromRecordset myd
  Set mya = nothing
  Set myd = nothing
End With

【80142】Re:Excel vbaのコードをVBSに変換
質問  HY  - 18/9/11(火) 8:35 -

引用なし
パスワード
   よろずや様、早速のご返答ありがとうございます。


Dim mya
Dim myb
Dim myc
Dim myd
Set mya = CreateObject("ADODB.Connection")
myb = "MDBファイルのフルパス"
With CreateObject("Excel.Application")
  Set myc = .Workbooks.Open("xlsファイルフルパス").ActiveSheet.Range("A15")
  .Visible = True
End With
With mya
  .Provider = "Microsoft.Jet.OLEDB.4.0;"
  .ConnectionString = "data source=" & myb
  .Open
  Set myd = .Execute("クエリ")
  myc.CopyFromRecordset myd
  Set mya = Nothing
  Set myd = Nothing
End With

 上記は私も試していたのですが、"14行文字2、プロバイダーがみつかりません。正しくインストールされていないかもしれません。、ソースADODB.Connection"というエラーがでてしまいます。
お手数ですが、解決策をご教授できませんでしょうか?
私の環境は、Win10、Office2003です。
よろしくお願いいたします。

【80143】Re:Excel vbaのコードをVBSに変換
発言  よろずや  - 18/9/11(火) 9:02 -

引用なし
パスワード
   >私の環境は、Win10、Office2003です。

元のソースの出どころは?
どういう環境で動いていたのでしょう?
Win 10 は 64ビットですよね。
Provider: Microsoft.ACE.OLEDB.12.0;
にするといけるかも。
あるいは、cscript を32ビット版にするとか。

いずれにしても、Win10、Office2003 の組み合わせが問題ですね。

【80145】Re:Excel vbaのコードをVBSに変換
質問  HY  - 18/9/11(火) 10:20 -

引用なし
パスワード
   ▼よろずや さん:
>>私の環境は、Win10、Office2003です。
>
>元のソースの出どころは?

私が、昨夜作ったコードです。ネット等見て見様見真似で作りました。


>どういう環境で動いていたのでしょう?

私のExcel 2003 VBAで実装成功しましたので、VBScriptに改変できないか試行錯誤していました。

>Win 10 は 64ビットですよね。
>Provider: Microsoft.ACE.OLEDB.12.0;
>にするといけるかも。
>あるいは、cscript を32ビット版にするとか。

接続文字列がOffice2007以降の物ですので、無理でした。
>
>いずれにしても、Win10、Office2003 の組み合わせが問題ですね。

Excelのインスタンス生成までは動いていたので、ADOも行けるものかと思っていました。VBScriptでADOに関しては、私の環境では通常、accdbファイルに接続以外不可という認識でよろしいでしょうか?Win10、Office2003 の組み合わせが問題これに尽きるかどうか、ここに関してのご返答を再度頂けましたら幸いです。
よろしくお願いいたします。

【80146】Re:Excel vbaのコードをVBSに変換
回答  よろずや  - 18/9/11(火) 11:09 -

引用なし
パスワード
   ht tp://zukunasiblog.blog.fc2.com/blog-entry-15.html

【80148】Re:Excel vbaのコードをVBSに変換
お礼  HY  - 18/9/11(火) 19:54 -

引用なし
パスワード
   ▼よろずや さん:
>ht tp://zukunasiblog.blog.fc2.com/blog-entry-15.html

私の理解力では上手くいきませんでしたが、WSHの環境をcscript 32bit
にしないといけないのは間違いない事がいろいろ調べて確認できました。
この度は、誠に有難うございました。

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