- ベストアンサー
ExcelをAccess(VBA)にインポートする方法とは?
- ExcelをAccessにインポートする方法について教えてください。
- 特定のExcelファイルをVBAを使用してAccessにインポートする際、表の形式によっては加工が必要な場合があります。
- ExcelファイルをVBAでインポートする前に、Excel上で表の形式を整える必要があるかもしれません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No2 の方の参照先でも説明されてますが、 TransferSpreadsheetメソッドのRange引数で、セル範囲、または名前付き範囲 を指定できます。また、HasFieldNames引数を True にすれば先頭行をフィールド名とします。 今回は、6行目が見だし、7行目からデータですので、 DoCmd.TransferSpreadsheet acImport, , _ "取り込み先テーブル","C:\DATA\取り込み元ファイル.xls", True, "A1:G99" とすれば、希望に近いものになるのでは。
その他の回答 (2)
- t-ka
- ベストアンサー率28% (14/50)
簡単に使う場合はそのままインポートしてクエリで別名と関数を被せれば良いでしょう。 しかし、業務で使用する数値(金額等)に関してはエラー処理は必須です。 ACCESS側からEXCEL参照:ADO等を用いれば全て処理出来ます。 http://www.moug.net/tech/acvba/0090032.htm
お礼
お礼が遅くなり申し訳ございません。 ご回答ありがとうございました。 参考にさせて頂きます。
- hatena1989
- ベストアンサー率87% (378/433)
Excel側で加工することが可能なら、 エクスポートしたいセルを、名前付き範囲として定義すれば、 その名前を指定してインポートすることができます。 詳細は下記を参照。 Excel ブックのデータのインポートとリンクの設定 - Access - Office.com http://office.microsoft.com/ja-jp/access-help/HA001219419.aspx#BM1
お礼
ご回答ありがとうございました。 加工すればインポートできることは理解しているのですが、 できれば、Accessを操作するユーザーにあまり意識させず そのままインポートして、VBAでどうにかしたいところです。 当該表を手動でインポートする場合、見出しがフィールド1 ・・・7となります。 その後、フィールド1(Noの列)を数値で抽出すれば、とりあえず 目的のデータのみ取得できるので、後は見出しを変更して あげればいいのかなぁと思ってるのですが。。このような 表のVBAでのインポート方法が分からないでいます。
お礼
お礼が遅くなり申し訳ございません。 ご回答ありがとうございます。 まだ試しておりませんが、参考にさせて頂きます。 ありがとうございます。