• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WSHで、EXCELにワークシートをCSVから読み込んで追加したい。)

WSHを使用してEXCELにワークシートをCSVから読み込んで追加する方法

このQ&Aのポイント
  • WSHを使用してEXCELを起動し、複数のCSVファイルからデータを読み込んで新しいシートに追加する方法について教えてください。
  • ソースコードの通りに実装したところ、別のワークブックとして開くため正しく読み込めませんでした。
  • お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

ヘルプを見ると次のように書いてあります。 expression.Copy(Before, After) expressionは対象のオブジェクト式、つまり、コピーするシートのことです。 で、Before、Afterはコピーする位置を指定します。 Beforeで指定したシートの前、もしくはAfterで指定したシートの後という感じになります。 で、Before:=という形式(名前付き引数)なんですが、次のように記述すればOKです。 Beforeで指定したいとき Sheets("Sheet1").Copy Workbooks("Book1").Sheets(1) Afterで指定したいとき Sheets("Sheet1").Copy , Workbooks("Book1").Sheets(1) ようは、カンマで引数を区切って並べるだけです。 記述した引数以降の引数を省略するときは特に何も気にすることはないのですが、記述した引数より前の引数を省略したい(今回はAfterを記述するけどBeforeは省略というケース)では、省略する引数の数分カンマを入れておく必要があります。 >ブックでなく、特定のシートだけに外部ファイルの内容をインポートするような機能はやはり、無いのでしょうか。 もう、そうなるとインポートではなくなってしまいます。 直接ファイルを開いてその内容を自分でセルの中へ格納するようなことが必要になってきます。 FileSystemObjectなどを使うことになります。

accessdb_user
質問者

お礼

わかりやすい説明で、よくわかりました。 問題が解決しました。 大変お世話になりました。どうもありがとうございました。 これでもう := にも困ることがなさそうです。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>下のソースのようにしたのですが、そうすると、別のワークブックとして開いてしまうので、わからなくなってしまいました。 それでいいのでは? あとは、別のワークブックとして開かれたCSVのシートを、元の追加したいブックにコピーしてあげればお望みの結果になると思うのですが。

accessdb_user
質問者

お礼

ありがとうございます。その方法で上手く行きそうですね。ブックも複数扱えるという考え方に慣れていなくて、思いつきませんでした。 ブックでなく、特定のシートだけに外部ファイルの内容をインポートするような機能はやはり、無いのでしょうか。

accessdb_user
質問者

補足

EXCELマクロの自動記録で得たソースなのですが、 Sheets("Sheet1").Copy Before:=Workbooks("Book1").Sheets(1) のようなソースでシートをコピーできますよね でも、WSHではこれが、:= の部分を認識できないのか、動作しないのです。 他の:=を含むコマンドも、どれも認識しないようです。 WSHでは、:=を含む表現をどのようにやればよいのでしょうか。

関連するQ&A