- 締切済み
ACCESS2000で作成したマクロ
ACCESS2000で作成した抽出マクロをそのままコピーするなどしてエクセルで使用することは可能でしょうか?もしできるならやり方をおしえてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
mdbファイルを をExcelを開くには 参照だけなら、こんな塩梅でも・・ご参考までに Sheetのイベントで処理しています。 Private Sub Worksheet_Change(ByVal Target As Range) Dim cn As Object Dim rs As Object Dim strSql As String Dim i As Long, j As Long If Target.Address <> "$A$1" Then Exit Sub Rows("3:3").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("A1").Select Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open "Driver={Microsoft Access Driver (*.mdb)};" _ & "DBQ=c:\DB1.mdb;" 'c:\DB1.mdb は適宜変更を strSql = "select * from 施設台帳テーブル" _ & " where 施設名 like '%" & Target.Value & "%' order by 施設名" rs.Open strSql, cn, 0, 1 For j = 0 To rs.fields.Count - 1 Cells(2, j + 1) = rs.fields(j).Name Next Application.ScreenUpdating = False ' Range("A3").CopyFromRecordset rs 'なぜか不安定 Do Until rs.EOF i = i + 1 For j = 0 To rs.fields.Count - 1 Cells(i + 2, j + 1) = rs.fields(j) Next rs.movenext Loop Application.ScreenUpdating = True rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub
- Gin_F
- ベストアンサー率63% (286/453)
> テキストボックスに入力した施設名(含む文字)をコマンドボタンをクリックする > ことで数あるデータより抽出される(該当するデータのある行のみ残り、他は消える)感じです。 Excelのフィルタ機能を使えばいいのでは? テキストボックスとかコマンドボタンとかが必要なんですか?
- Gin_F
- ベストアンサー率63% (286/453)
> ACCESS2000で作成した抽出マクロをそのままコピーするなどしてエクセルで使用することは可能でしょうか? 抽出マクロとは? クエリを実行させるマクロってことでしょうか? とりあえず、AccのマクロをExcelで使うことは無理です。 近いことであれば、Excelの機能を使ってできるかもしれません。 Accessのことを忘れて、何がしたいのか、具体的に説明してみては?
お礼
早速のご回答ありがとうございます。エクセルで作成した施設台帳(施設名・住所・電話番号・その他情報等)のデータが千件程度あります。その中から欲しいデータを施設名から引っ張り出すというものを作成できたらと思っております。イメージとしてはテキストボックスに入力した施設名(含む文字)をコマンドボタンをクリックすることで数あるデータより抽出される(該当するデータのある行のみ残り、他は消える)感じです。ACCESSを使い、このエクセルデータとリンクさせて抽出させるシステムを完成させたのですがACCESSの導入されていないパソコンで使用できず、ランタイムの入手もできなかったのでエクセルで同じようなものを作成したいと思っております。
お礼
ご回答ありがとうございました!!早速、参考にさせて頂きます。