• ベストアンサー

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>データベースをつかってインポート(データベースファイルを開かずにデータの取り込み)を行いたい ホントにそれをしたいのなら 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 といった具合にしたほうが,遙かに簡単ですが。 実際にマクロをを動かしてみて,アナタの意図するモノと違いを確認してみてください。 そもそも「一体何をどう『色々と調べて』試してみて,どこが上手く行かなかったのか」といった部分もまるで無しにご相談を投稿すること自体,全く手抜きだとも思いますしね。

FUKUYAMA28
質問者

お礼

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

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

>色々と調べているのですがうまく行きません。 「何が」「どう」うまくいかないのですか? ・サンプル掲載しているサイトを見つけたが、自身の環境と異なる。 ・そもそも、サンプル掲載しているサイトを見つけられない。 「excel vba インポート」で検索すればいくらでも見つかりますよ。 インポートの手順がわかるのであれば「マクロの記録」でVBAのコード生成をさせてみるのが良いか も。 細かなことをしたいのであれば以下で検索するのもいいかも。 「excel vba copyfromrecordset」

FUKUYAMA28
質問者

お礼

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

関連するQ&A