Page 871 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼ファイルを開かずにデータを抽出 ch 03/3/12(水) 18:20 ┣Re:ファイルを開かずにデータを抽出 Jaka 03/3/13(木) 12:14 ┗Re:ファイルを開かずにデータを抽出 ポンタ 03/3/13(木) 12:46 ┗Re:ファイルを開かずにデータを抽出 Kein 03/3/14(金) 0:37 ─────────────────────────────────────── ■題名 : ファイルを開かずにデータを抽出 ■名前 : ch ■日付 : 03/3/12(水) 18:20 -------------------------------------------------------------------------
はじめまして、よろしくお願いします。 CSVファイルを開かずにデータを抽出する方法は 拝見させていただきましたが、XLSファイルにつ いて何か方法はありませんでしょうか。 ご指導をよろしくお願いします。 |
こんにちは。 V3の過去ログがなくなっかったんで、取り合えず抜擢。 Application.ExecuteExcel4Macroを使った書き方例です。 これだけどと良く解らないと思いますが...。 Private Sub UserForm_Initialize() Dim listmenu() As String, jj As Long, i As Long jj = 58 - 9 ReDim listmenu(1 To jj) For i = 9 To 58 listmenu(i - 8) = Application.ExecuteExcel4Macro("'" & ThisWorkbook.Path & "\[aaa.xls]Sheet1'!" & "r" & i & "c5") Next ComboBox1.List = listmenu ComboBox1.ListIndex = 0 End Sub |
DAO(Data Access Object)を使ってもできるんじゃないでしょうか? 私はやったことないので、具体的なことは分かりませんが。 (役に立たないレスでゴメンナサイ) |
DAOなら・・ Sub DAO_Test() Dim DB As Database, RS As Recordset Dim FName As String Dim MyData As Variant FName = "C:\Program Files\Microsoft Office\Office\MyFiles\Book2.xls" Set DB = OpenDatabase(FName, False, False, "Excel 8.0;HDR=NO;") Set RS = DB.OpenRecordset("Sheet2$") With RS '.MoveFirst .Move 2 MyData = .Fields(1) End With Range("A1").Value = MyData RS.Close: DB.Close Set RS = Nothing: Set DB = Nothing End Sub で、アクティブシートのA1にBook2.xlsのSheet2のB3の値を、引っ張れると思います。 Move 行番号 - 1 と、Filelds(列番号 - 1) の指定で、任意のセル位置に移動 出来ます。もし1行目のみなら .MoveFirst を使い、.Move は不要になりますが、 例えば A1:C5 の範囲を、そのままアクティブシートに持ってくるなら Dim i As Long, j As Long と変数宣言を追加し、With RS の中でループします↓ With RS For i = 0 To 4 For j = 0 To 2 .Move i MyData = .Fields(j) Cells(i + 1, j + 1).Value = MyData Next j Next i End With ただし、DAOを使えるのは「あくまでデータベース形式になっている表」だけ、と 考えて下さい。タイトル行がなければ、失敗する可能性が大きいです。 |