WSHを使って、EXCELを起動して、既存のCSVファイルからデータを読み込みたいのですが、複数のCSVから読み込むなどして、同じワークブックの新しいシートにCSVから読み込んだデータを追加していきたいのですが、どうやればよいのかわかりません。
下のソースのようにしたのですが、そうすると、別のワークブックとして開いてしまうので、わからなくなってしまいました。お願いします。
set Exl=CreateObject("Excel.Application")
Exl.Visible=True
Exl.workbooks.add
Exl.workbooks.OpenText "c:\data.csv"
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などを使うことになります。
わかりやすい説明で、よくわかりました。
問題が解決しました。
大変お世話になりました。どうもありがとうございました。
これでもう := にも困ることがなさそうです。
No.1
- 回答日時:
>下のソースのようにしたのですが、そうすると、別のワークブックとして開いてしまうので、わからなくなってしまいました。
それでいいのでは?
あとは、別のワークブックとして開かれたCSVのシートを、元の追加したいブックにコピーしてあげればお望みの結果になると思うのですが。
この回答への補足
EXCELマクロの自動記録で得たソースなのですが、
Sheets("Sheet1").Copy Before:=Workbooks("Book1").Sheets(1)
のようなソースでシートをコピーできますよね
でも、WSHではこれが、:= の部分を認識できないのか、動作しないのです。
他の:=を含むコマンドも、どれも認識しないようです。
WSHでは、:=を含む表現をどのようにやればよいのでしょうか。
ありがとうございます。その方法で上手く行きそうですね。ブックも複数扱えるという考え方に慣れていなくて、思いつきませんでした。
ブックでなく、特定のシートだけに外部ファイルの内容をインポートするような機能はやはり、無いのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Excel(エクセル) csvに別のExcelの文章を差し込む 2 2023/04/01 16:06
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- Excel(エクセル) Excel Powerクエリーの質問、行数指定は可能でしょうか? 2 2022/08/22 12:54
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 関数を使ってデータと一...
-
エクセルの選択範囲以外を削除...
-
Excelの行をコピーして貼り付け...
-
【VBA】コピー&複数個所のペー...
-
EXCELのVBAでシートコピーをし...
-
Excel シートのコピーの際、ペ...
-
【Excel】数式をそのまま他のシ...
-
エクセルシートを別のエクセル...
-
エクセルのページをシートごと...
-
Excel 数式の保護をしたセルを...
-
VBA シートをコピー後、ボタン...
-
エクセルVBA 1行飛ばしで転記す...
-
エクセルのワークシートをUSBメ...
-
EXCELで別のブックから式をコピ...
-
【Excel VBA】シートコピー時、...
-
EXCELファイルをコピーすると終...
-
ExcelVBAで、ユーザーフォーム...
-
エクセル オートフィルタは行...
-
【エクセル】プルダウン設定の...
-
複数のシートを別ブックにコピ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
【Excel】数式をそのまま他のシ...
-
【VBA】コピー&複数個所のペー...
-
Excel シートのコピーの際、ペ...
-
EXCELで別のブックから式をコピ...
-
【エクセル】プルダウン設定の...
-
エクセルの1シートの内容を複...
-
【Excel VBA】シートコピー時、...
-
Excel シートに別のExcelシート...
-
エクセルのワークシートをUSBメ...
-
エクセルシートを別のエクセル...
-
エクセル オートフィルタは行...
-
PDFファイルをコピーしてエクセ...
-
EXCEL2007でシートをコピーする...
-
シートが保護されていないのに...
-
VBA シートをコピー後、ボタン...
-
エクセルのページをシートごと...
-
エクセルでシートを「移動また...
おすすめ情報