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

解決済みの質問

ExcelをAccess(VBA)にインポート

お世話になります。
VBAによるExcelのインポートにつきましてご教授願います。


あるExcelファイルがあり、それをAccessにてインポート
したいと考えております。

通常の表であれば、インポートすることは可能なのですが、
その表の上数行に表名や氏名があったり、見出しが2行に
なっていて、片方が結合されるような状態です。

xxxx表                    ←表名
氏名:○○○○               ←氏名
                         ←空白行
                         ←空白行
    上期         下期      ←セルが結合されている
No A  B    金額  E  F  金額←ここを見出しとして
1                       インポートしたいところ
2
3

※A~F及び金額にはそれぞれ値が入ってます。


このようなExcelファイルをVBAにてインポートすることは
可能でしょうか?
それとも、ある程度はExcel上で加工する必要があるので
しょうか?


宜しくお願い致します。

投稿日時 - 2011-09-02 16:26:00

QNo.6984429

すぐに回答ほしいです

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

No2 の方の参照先でも説明されてますが、

TransferSpreadsheetメソッドのRange引数で、セル範囲、または名前付き範囲 を指定できます。また、HasFieldNames引数を True にすれば先頭行をフィールド名とします。

今回は、6行目が見だし、7行目からデータですので、

DoCmd.TransferSpreadsheet acImport, , _
"取り込み先テーブル","C:\DATA\取り込み元ファイル.xls", True, "A1:G99"

とすれば、希望に近いものになるのでは。

投稿日時 - 2011-09-03 00:04:53

お礼

お礼が遅くなり申し訳ございません。
ご回答ありがとうございます。

まだ試しておりませんが、参考にさせて頂きます。

ありがとうございます。

投稿日時 - 2011-09-08 11:24:21

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

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

回答(3)

ANo.2

簡単に使う場合はそのままインポートしてクエリで別名と関数を被せれば良いでしょう。
しかし、業務で使用する数値(金額等)に関してはエラー処理は必須です。
ACCESS側からEXCEL参照:ADO等を用いれば全て処理出来ます。



http://www.moug.net/tech/acvba/0090032.htm

投稿日時 - 2011-09-02 20:25:42

お礼

お礼が遅くなり申し訳ございません。
ご回答ありがとうございました。

参考にさせて頂きます。

投稿日時 - 2011-09-08 11:22:56

ANo.1

Excel側で加工することが可能なら、

エクスポートしたいセルを、名前付き範囲として定義すれば、
その名前を指定してインポートすることができます。

詳細は下記を参照。

Excel ブックのデータのインポートとリンクの設定 - Access - Office.com
http://office.microsoft.com/ja-jp/access-help/HA001219419.aspx#BM1

投稿日時 - 2011-09-02 17:59:00

お礼

ご回答ありがとうございました。

加工すればインポートできることは理解しているのですが、
できれば、Accessを操作するユーザーにあまり意識させず
そのままインポートして、VBAでどうにかしたいところです。

当該表を手動でインポートする場合、見出しがフィールド1
・・・7となります。
その後、フィールド1(Noの列)を数値で抽出すれば、とりあえず
目的のデータのみ取得できるので、後は見出しを変更して
あげればいいのかなぁと思ってるのですが。。このような
表のVBAでのインポート方法が分からないでいます。

投稿日時 - 2011-09-02 18:21:52