Microsoft Access 掲示板

Excelシートの任意の範囲のみをインポートしたい / 8

11 コメント
views
4 フォロー
8
'呼び出し例
Private Sub ImportTest1()

    Dim strTargetFilePath As String
    Dim strTargetSheetName As String
    Dim varRet As Variant

    strTargetFilePath = "C:\FolderName\BookName.xlsx"
    strTargetSheetName = "Sheet1"

    varRet = ImportOrderRecords(strTargetFilePath, _
                                strTargetSheetName)

    If IsNull(varRet) = False Then
        MsgBox strTargetFilePath & " の " & _
               strTargetSheetName & " から " & _
               varRet & " 件のレコードを取り込みました。", _
               vbInformation, _
               "実行完了"
    End If

End Sub
通報 ...
  • 9

    1.B列の4行目からI列のB列最終行の範囲のみをインポートし、T_インポートテーブルにあるID、商品1、商品2、商品3、商品4フィールドに書き込みたいです。
    2.また、T_インポートテーブルの依頼日フィールドに、B2セルの2023/12/12を入れたいです。

    といった処理を実行したいなら以上のようなコードになるでしょう。

    ただ、前回のスレッドにおいて

    社名ID、社名、住所、TELフィールドを持つ社名マスター
    商品ID、商品名フィールドを持つ商品マスターは作成しました

    とご説明された通りなのであれば、正規化したテーブルに変換し、互いの[商品ID]同士で[商品マスター]と結合できるようにされた方がよいでしょう。

    データ集計を行う上でも「発送用のレポート」を出力する上でも、その方が便利なのは明らかです。

  • 10

    補足:

    lngLastDataRow = .Cells(.Rows.Count, KeyColumn).End(xlUp).Row

    事前バインディングではなく実行時バインディングを採用される場合は、Excel.XlDirection 列挙のメンバー定数 xlUp の代わりに値 -4162 を渡すようにして下さい。

  • 11
    My Car Bomber 2023/12/13 (水) 08:32:33 7fdfc@46fae >> 8

    大変参考になります、コードの内容理解に私では少し時間がかかりそうですが、読み解いてみます!