• ベストアンサー

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答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

  • 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」

  • MS AccessでExcelファイルのインポートは?

    AccessのVBAでExcelファイルをインポートするにはどうすればいいのでしょうか? ちなみに DoCmd.TransferText acImportDelim, , "Tmp名簿", strInPutPath & "\名簿.csv", True (strInPutPathは、ダイアログから取得したパスです) では、CSVファイル(TXTファイル)しか読み込めません。 (もちろん、そのため拡張子が「.csv」にしていますが 読み込むファイルをテキストファイルにしたら「.txt」でもいいです) 「ファイル」メニュー(コマンド)の「外部データの取り込み」→「インポート」では、Excelファイルも読み込めるので悔しいです。 これをVBAでやりたいんですが。 よろしくお願いいたします。

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

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

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

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

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

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

  • 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)に更新しようと考えています。 この考え方で問題ないのでしょうか!? もっと簡単な方法があるという方や、何か良い方法をお持ちの方 いらっしゃいましたら、よろしくお願いいたします。

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

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

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

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

  • インポートできない

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

  • 複数Excelファイルの一括インポートしたい。

    複数Excelファイルがあります。(aaa.xls、bbb.xls・・・) 同フォルダ内にあるExcelファイル(20個ほど)を1つのファイルにしたいのですが、 手動コピペ以外の方法を教えていただけますでしょうか? できれば、マクロ、VBAでお願いします。 ワークシート名はすべて同じです。(Sheet1のみ取り込みたい(無理であれば他も取り込みしてもOK)) 1つのファイル内で横に並べるようにしたいです。(ファイル名か、Sheet1_1,Sheet1_2・・・) よろしくお願いします。

専門家に質問してみよう