Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1754 / 2272 ツリー ←次へ | 前へ→

【5373】Excelファイル範囲指定のインポート方法 sakaiII 05/6/14(火) 12:35 質問[未読]
【5376】Re:Excelファイル範囲指定のインポート方法 小僧 05/6/14(火) 14:28 回答[未読]
【5380】Re:Excelファイル範囲指定のインポート方法 sakaiII 05/6/14(火) 20:47 質問[未読]
【5381】Re:Excelファイル範囲指定のインポート方法 小僧 05/6/15(水) 9:55 回答[未読]
【5409】Re:Excelファイル範囲指定のインポート方法 sakaiII 05/6/19(日) 19:02 質問[未読]
【5412】Re:Excelファイル範囲指定のインポート方法 小僧 05/6/19(日) 22:17 回答[未読]
【5438】Re:Excelファイル範囲指定のインポート方法 sakaiII 05/6/21(火) 7:16 お礼[未読]

【5373】Excelファイル範囲指定のインポート方法
質問  sakaiII  - 05/6/14(火) 12:35 -

引用なし
パスワード
   お世話になります。
新しい問題に直面しています。どう考えても、わからなくて、よろしくお願いします。
質問:Excelファイルの範囲を指定して、インポートしたい。
   例、Adsl.xlsのセルB5を基点(スタート点)にして、インポートします。
   通常、セルA1は基点(スタート点)ですが、B5に変えた場合は、
   可能でしょうか?よろしくお願いします。

基点セルB5:B5,C5,・・・⇒データのフィールドになる
      B6,C6,・・・⇒データです
       ・
       ・
       ・

   

【5376】Re:Excelファイル範囲指定のインポート方法
回答  小僧  - 05/6/14(火) 14:28 -

引用なし
パスワード
   ▼sakaiII さん:
こんにちは。

インポートをどうやって行うのかがご提示されていませんが
「TransferSpreadsheet」メソッドを使うとすると
第6引数に「Range」を指定できます。

問題は Range の範囲なわけですが、

フィールド数が固定であれば(例えば10個)、「B5:K65536」の様に指定して
取り込んだ後Nullの行をクエリで削除する。

フィールド数が可変であったり、無駄なレコードは取り込みたくないというのであれば
オートメーションで Excel を操作する必要が出て来ると思われます。
その場合は ExcelVBA の知識も必要になってきます。

オートメーションについて解らないことがありましたら再度ご質問ください。

【5380】Re:Excelファイル範囲指定のインポート方法
質問  sakaiII  - 05/6/14(火) 20:47 -

引用なし
パスワード
   小僧さん:
 いつもお世話になっております。
取り込みたいファイル:第一行から第四行までとA列はデータの説明文です。
           フィールドの数が可変ですが、縦方向のサイズ、
           つまりレコードの数は366(フィールド行を含む)を
           超えないです。このようなデータを取り込みするため、
           どうすればいいでしょうか?
           ご伝授ください。

【5381】Re:Excelファイル範囲指定のインポート方法
回答  小僧  - 05/6/15(水) 9:55 -

引用なし
パスワード
   ▼sakaiII さん:
おはようございます。

※要参照設定 Excel x.x Object Library

Sub 範囲指定取込()
Dim xlsApp As New Excel.Application
Dim xlsWkb As Workbook
Dim xlsSht As Worksheet
Dim xName As String     'Excelブックのフルパス名
Dim xSheet As String    '取り込むシート名
Dim Kiten As Range
Dim EndCell As String
  
  xName = "C:\test.xls"
  xSheet = "Ken"
  
  Set xlsWkb = xlsApp.Workbooks.Open(xName)
  Set xlsSht = xlsWkb.Worksheets(xSheet)
  Set Kiten = xlsSht.Range("B5")
    EndCell = xlsSht.Cells(Kiten.END(xlDown).Row, _
                Kiten.END(xlToRight).Column).Address(False, False)
  Set Kiten = Nothing
  Set xlsSht = Nothing
  xlsWkb.Close: Set xlsWkb = Nothing
  xlsApp.Quit: Set xlsApp = Nothing

  DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
              "T_範囲取込", xName, True, xSheet & "!B5:" & EndCell

End Sub

取込元のExcelファイルや取込先のテーブルの存在チェックなどは行っていません。

【5409】Re:Excelファイル範囲指定のインポート方法
質問  sakaiII  - 05/6/19(日) 19:02 -

引用なし
パスワード
   小僧さんへ
 回答をいただき、ありがとうございます。
実行結果を報告します。
まず
>※要参照設定 Excel x.x Object Library
設定して、実行してみました、問題解決!

もう一つの質問がありますので、よろしくお願いします。
 セルB5を基点したExcelファイル取り込みを実行して、あるクエリをExcelへExport
したいです。Filenameはクエリ_Systemdate.xlsにするために、
どうすれば、いいでしょうか?

DoCmd.TransferSpreadsheet acExport, 8, "クエリ", _
"c:\クエリ", True, ""

Filename:クエリ_20050619.XLS

【5412】Re:Excelファイル範囲指定のインポート方法
回答  小僧  - 05/6/19(日) 22:17 -

引用なし
パスワード
   ▼sakaiII さん:
こんばんは。
こんな感じでしょうか?

Sub 日付名でクエリをエキスポート()
Dim QPath As String   '出力先フォルダ
Dim QName As String   'クエリ名
Dim SDate As String
  QPath = "c:\"
  QName = "クエリ1"
  SDate = Format(Date, "yyyymmdd")

  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _
            QName, QPath & "\" & QName & "_" & SDate

End Sub

【5438】Re:Excelファイル範囲指定のインポート方法
お礼  sakaiII  - 05/6/21(火) 7:16 -

引用なし
パスワード
   小僧さん
おはようございます。
問題解決できました。感謝しています。

1754 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078253
(SS)C-BOARD v3.8 is Free