こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA で EXCELファイルをインポート

VBAに詳しい方お助けください。VBAを使用して、データベースをつかってインポート(データベースファイルを開かずにデータの取り込み)を行いたいのですが良く分かりません。データベースは一つはCSVファイル、一つはXLSファイルです。取り込み先のEXCELファイルのSHEET1にCSVファイルのデータベース(SHEET1)、取り込み先のEXCELファイルのSHEET2にXLSファイルファイルのデータベース(SHEET1)とインポートするにはどのようなVBAの記述が必要ですか?色々と調べているのですがうまく行きません。EXCELは2003を使用しています。

投稿日時 - 2011-12-04 20:40:59

QNo.7171209

すぐに回答ほしいです

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

>データベースをつかってインポート(データベースファイルを開かずにデータの取り込み)を行いたい

ホントにそれをしたいのなら

1.新しいマクロの記録を開始する
2.データメニューの外部データの取り込みでデータの取り込みを開始し,目的のCSVを直接指定する
3.ウィザードが現れるのでカンマ区切りを設定する
4.データを返す場所を指定する

という動作をマクロに録ってやれば,そのまんま利用できるマクロが得られます。

エクセルブックを指定する場合も同じ手順を行い,途中どのシートのデータを取り出すのか(Sheet1ですね)を指定,データを返す先(シート2)を指定してマクロを得てください。



#とは言え実際には

sub macro1()
 application.screenupdating = false

’作成例1
 workbooks.open "c:\test\sample.csv"
 activeworkbook.worksheets(1).usedrange.copy  destination:=thisworkbook.worksheets("Sheet1").range("A1")
 activeworkbook.close false

’作成例2
 with workbooks.open("c:\test\sample.xls")
 .worksheets("Sheet1").usedrange.copy destination:=thisworkbook.worksheets("Sheet2").range("A1")
 .close false
 end with

 application.screenupdating = true
end sub

といった具合にしたほうが,遙かに簡単ですが。
実際にマクロをを動かしてみて,アナタの意図するモノと違いを確認してみてください。

そもそも「一体何をどう『色々と調べて』試してみて,どこが上手く行かなかったのか」といった部分もまるで無しにご相談を投稿すること自体,全く手抜きだとも思いますしね。

投稿日時 - 2011-12-04 21:30:10

お礼

keithinさん、早速のご回答ありがとうございました。VBAは本を読んだり、インターネットで検索したり、このサイトで質問させていただいたりと全く初心者から抜け出せないのですが、外部データの取り込みがマクロの記録で出来るとは全く想像もつきませんでした。うまくインポートする事が出来ました。本当にありがとうございました。

投稿日時 - 2011-12-04 22:29:19

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>色々と調べているのですがうまく行きません。
「何が」「どう」うまくいかないのですか?

・サンプル掲載しているサイトを見つけたが、自身の環境と異なる。
・そもそも、サンプル掲載しているサイトを見つけられない。


「excel vba インポート」で検索すればいくらでも見つかりますよ。

インポートの手順がわかるのであれば「マクロの記録」でVBAのコード生成をさせてみるのが良いか
も。


細かなことをしたいのであれば以下で検索するのもいいかも。
「excel vba copyfromrecordset」

投稿日時 - 2011-12-04 21:27:49

お礼

bin-chanさん、早速のご回答ありがとうございました。質問の内容がうまく伝える事が出来なくてすみませんでした。いつも調べるときはbin-chanさんが仰る2点に悩まされます。「マクロの記録」でやってみます。ありがとうございました。

投稿日時 - 2011-12-04 22:33:12

あなたにオススメの質問