access 2021 exsel 2021
エクセルファイル(book1.xlsm)の中に複数シート(例:data、aaa,bbbなど)があります。
各々のシートのフォーマットは同一となっています。
各シートの A7 から I 列 のデータを アクセスのテーブル T_2022 に取り込みたい。
一つのシート(data)から(A7:I)のデータを取り込む構文は下記の通りで取得できましたが
複数シートを取り込む場合に「変数」を使っての構文はどのように書けばよいか教授お願いいたします。
**** エクセルファイル(book1.xlsm)シート名dataのA7からI列 の取り込み *****
Dim strac As String
Dim varxls As Variant
Dim Range As String
Dim myDir As String, myPath As String
Dim excelDir As String
Dim temp As String
Dim exclのパス As String
temp = "Book1.xlsm"
Range = "data!A7:I"
myPath = CurrentDb.Name
myDir = Left(myPath, Len(myPath) - Len(Dir(myPath)))
excelDir = myDir
exclのパス = excelDir & temp
varxls = exclのパス 'エクセルファイルを指定します。
DoCmd.TransferSpreadsheet acImport, _
acSpreadsheetTypeExcel12Xml, "T_2022", varxls, , Range
シート名は固定ですか、それとも、その時々で変わりますか。変わる場合は全シートが対象ですか。
例えば、data、aaa、bbb の固定なら、
とシート数分記述すればいいでしょう。
シート数が多い場合は、シート名を配列に格納して、Fprループで繰り返すようにすれば短くできます。
シート名か固定でなく、事前にシート名か分からないなら、TransferSpreadsheet では無理なので、VBAでExcelアプリケーションを開いて処理することになります。
AccessからExcelを操作する 《CreateObject》|Access|ヘルプの森
早速のご指導、ありがとうございます。
シート数分記述 はできたのですが、「シート名を配列に格納して、Fprループで繰り返す」方法ができません。
シート名は固定されています。上記の構文を教授お願いできませんか?
よろしくお願いいたします。
こんな感じでどうですか。
早速のご指導ありがとうございます。小生、配列は全く理解(?)できていません。いろいろな達人からの助言・指導を受けて応用しながら使っています。助言いただいた構文、大切に使わせていただきます。改めておれいもうしあげます。