• ベストアンサー
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数504
  • ありがとう数2

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • エクセルVBAでCSVファイルから取り込みたいのですが・・・

    CSVファイルのデータを取り込むコードを教えていただけないでしょうか。 「共有フォルダ」の中に「作業用.xls」と「090820.csv」があります。csvファイルは日によって名前が変わりますが、必ず一つしか入れないことにしています。 CSVファイルの1行目は見出しです。2行目以降がデータになっています。 A2からI列最終行を「作業用.xls」のsheet1のA6にコピー(取り込み)したいのですが、よろしくお願いします。

  • EXCEL- VBA(CSVファイル→インポート)

    A列~F列になる複数(100個以上)のCSVファイルをエクセルファイルにインポートして更に個別にエクセルファイルとして保存したいのですが VBAでできるのでしょうか? 記憶マクロでやったらどうにもうまくいきません。 エクセルのVBAについては ほとんど知識ゼロなので困っております。 大変厚かましくありますが どなた様かご教授お願いできたらと思います!! 【元のファイルの状態】   ◆ファイル名「*.CSV」*は文字数それぞれ違います。   <例:tanaka.xls だったり 09福島.xls>  ◆入っているドライブ   TEXT;C:\Documents and Settings\AA_B\デスクトップ\練習  ◆A~F列にデータが入っている 【やりたいこと】    (1)A~F列はカンマ区切りで全て文字列としたい  (2)元のファイル名でエクセルとして保存したい「*.XLS」

  • Excelで全銀協のFBデータをインポートしたい

    各銀行で共通使用している全銀協の FBデータをExcelでインポートしたいと思っています。 一度、CSVファイルに変換するのかExcelで一旦取込後、VBAで桁数を指定して区切っていくのか正直分かりません。 どなたか教えて頂けないでしょうか? 何卒、宜しくお願い致します。

その他の回答 (1)

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • ACCESS VBA xlsファイルのインポート  

    accessのVBAでxls形式のファイルを既存のテーブルにインポートしたいんですが、インポートするファイルがテーブル形式になっていない状態(要望票みたいな感じなので不規則にデータが状態)なのでセルをひとつづつ指定して、テーブルに取り込んでいくことは可能なんでしょうか? どこのサイトを探してもCSV形式からのインポートの方法しか記述されておらずこちらで教えていただければ助かります。 またセルを結合しているのでその場合でもテーブルにインポートは可能なんでしょうか? よろしくお願いします。

  • Excel→Access VBAによるインポート

    1つのExcelファイルの複数のデータシートをAccess2000にインポートしたい。 【説明】 data.xlsという名前のExcel2000で作成したファイルがあり、その中に同じ書式(列)を 持ったSheetが20枚ほどあります。 それらのデータをAccess2000にインポートしたいのですが、 1.作業は毎月発生する。 2.ほかのユーザも出来るようにする。 などの理由から、マクロかVBAを使って自動化できればと考えています。 ぽちっとボタンを押すと、data.xlsのすべてのシートからデータをインポートし、 それぞれのSheet名がついたテーブルに格納されるというのが理想です。 フィールド名は固定ですので、あらかじめテーブルを作っておくことは出来ます。 Excelの各シートの上部数行は見出しやら説明文が書いてありますので、 インポートの際にその部分の行(5行分)を削除することが必要です。 当方VBAの知識はほぼ皆無ですので、やんわりご教示頂ければ幸いです。 よろしくお願いいたします。 (次回ネットに入るのは15日以降です)

  • インポートできない

    エクセルで作成したデータを、アクセスにインポートしたいのですが反応がありません 手順はこうです。 ・データベース画面のテーブル表示 ・何もない所で右クリック→インポート ・ファイルの種類で「xls」を選択し、インポート 普通ならここでインポートウィザードの画面になるのですが、出てきません ファイル→外部データの取込→インポートの手順でも同じです どうすればインポートできるのでしょうか

  • Excel → Access データをインポート

    OS WinXP Pro SP2 Office 2000 SP3 はじめまして。 マクロ(Excel VBA)を記述しているExcelファイル(Xls_Macro.xls)とインポート用データのExcelファイル(Xls_Data.xls)は別々のファイルになっていて、マクロを実行するとExcelファイルとインポート用データのExcelファイルのデータをAccessファイル(Access.mdb)にインポートする仕組みを開発しています。 インポート用データのExcelファイル(Xls_Data.xls)をADOで接続しレコードセットでデータを取得し、Accessファイル(Access.mdb)もADOで接続しレコードセットの「.AddNew」でAccessファイル(Access.mdb)に更新しようと考えています。 この考え方で問題ないのでしょうか!? もっと簡単な方法があるという方や、何か良い方法をお持ちの方 いらっしゃいましたら、よろしくお願いいたします。

  • Excelで他Excelファイルのセルの値をVBAで参照したい時

    こんにちは。 Excelで他Excelファイルにあるセルの値をVBAで参照したい時って、 場所をどう指定したらいいのでしょうか。 やろうとしている事ですが、 c:\1.xlsに記述するVBAで c:\2.xlsのsheet1のA1の値を参照して、 それとc1.xlsのsheet1のA1の値が一致した時に、 c:\2.xlsのsheet1のB1の値を、 C:\1.xlsのsheet1のB1に書き出そうとしています。 派遣就業先でAccessで作ればいいものを なぜか社員の方たちでExcelで作ってしまったため、 そのメンテに四苦八苦しています。(笑) ご存知の方ぜひ教えてください。 よろしくお願いします!

  • CSVファイルをエクセルファイルにインポートさせるには?

    おせわになります CSVファイルをエクセルファイルにインポートさせたいのですが 方法は ユーザーフォームをにテキストボックスと参照ボタン、実行ボタンを作成し 参照ぼたんでCSVファイルを選ぶ テキストボックスには参照先の住所が記載され 実行ボタンでsheet1にB2から貼り付けさせたいのですが可能ですか? 又、CSVの情報が不要な列もあります 必要な列のみ落とし込みをしたいです 当方初心者でVBAコードがあれば幸いです。 わかる方よろしくおねがいします

  • excel vbaで複数のcsvファイルの読み込み

    100シート分のcsvファイルのデーターを一つずつ読み込んでexcelにコピーして使用してますが莫大な時間がかかって困ってます。 vbaを使用して作業を簡素化出来る事は出来ないでしょうか? ------------------------------------------ ※ csvの概要 excelで1枚のcsvファイルを開くとA列の11行目から65536行まで数値データがあります。 ※ vbaできたらよいなと思う仕様 そこで、複数のcsvファイルを選択して読み込むとCSV_データと言うSeetのA列の10行目から1枚目のcsvファイル、B列の10行目から2枚目のcsvファイルと言う風に選択した分のcsvを列に続けて数値データを貼り付けしてくれるvbaをご教授していただけると大変助かります。 不躾で申し訳ございませんが宜しくお願い致します。 excel2003 ------------------------------------------

  • excelでのインポート

    エクセルでcsvを更新インポートするVBAを作りたいのですが、「テキストファイルのインポート」のウィンドウが出てきてしまいます。これをvbaにファイル場所・ファイル名を入れておき、ウィンドウを出さないで自動的に更新をするようにしたいのですが、全然分かりませんでしたのでお分かりになる方教えてください。 よろしくお願い致します。

  • アクセスにインポートできません。

    Access97を使っています。 エクセルもcsvもインポートできません。 「外部データの取りこみ」→「インポート」で進み、 「ファイルの種類」を選択しようとしたところ、 一覧にエクセルもcsvも出てきません。 「Microsoft Access」と「ODBCデータベース」 のみです。 エクセルもcsvも検索はできますが、 インポートしようとすると 「データベース形式○○○を認識できません。」 というエラーメッセージが表示されます。 どうすれば解決できるでしょうか? よろしくお願いします。

  • Excel 2003 のファイルが Google Spreadsheet にインポートできません!

    Excel 2003 のファイルが Google Spreadsheet にインポートできません!拡張子も .xls だし、なにが間違っているのかわかりません。