アプリ版:「スタンプのみでお礼する」機能のリリースについて

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


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

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

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

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


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


宜しくお願い致します。

A 回答 (3件)

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



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

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

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

とすれば、希望に近いものになるのでは。
    • good
    • 0
この回答へのお礼

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

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

ありがとうございます。

お礼日時:2011/09/08 11:24

簡単に使う場合はそのままインポートしてクエリで別名と関数を被せれば良いでしょう。


しかし、業務で使用する数値(金額等)に関してはエラー処理は必須です。
ACCESS側からEXCEL参照:ADO等を用いれば全て処理出来ます。



http://www.moug.net/tech/acvba/0090032.htm
    • good
    • 0
この回答へのお礼

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

参考にさせて頂きます。

お礼日時:2011/09/08 11:22

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



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

詳細は下記を参照。

Excel ブックのデータのインポートとリンクの設定 - Access - Office.com
http://office.microsoft.com/ja-jp/access-help/HA …
    • good
    • 1
この回答へのお礼

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

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

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

お礼日時:2011/09/02 18:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!