|
皆さん、こんにちは
私は殆ど想像してまではサンプル書かないんですが、材料が少し増えたんで、
書いてみました。
こんな感じですか????
'最初に一つめのタイトルのあるセルを検索し、↓
SearchWord = TitleName(0)
Set kiten2 = Worksheets("Sheet1").Columns(1).Find(What:=SearchWord, LookIn:=xlValues, LookAt:=xlWhole)
Dim objsheet As Worksheet
'そのセルからデータの最終行までを最終値にしています。
' Worksheets("Sheet1")のセルに対して処理をすると仮定すると
Set objsheet = Worksheets("Sheet1")
'iは0から2の3要素という事を保障する
For i = 0 To 2
'kiten2は正常に取得できていると仮定して。
'出来るだけマジックナンバーは避けましょう。
For j = kiten2.Row + 1 To objsheet.Rows.Count
'Cellsだけだと、その時のactiveなシートを指すので、シートを明示的に指示しよう
If objsheet.Cells(j, 1).Value = Title(i) Then
TitleName = Title(i)
InputTable = TableName(i)
End If
'なんかの処理?Title(i),TableName(i)をそのまんま使っても良いのでは?
Next j
Next i
>言語はVBAを使うのですが、コーディングの仕方がもっといい方法はないかと思い、ご質問いたしました。
自分が質問するのに「ご」はいりませんよ^ ^;
で、本題ですが、上に書いたサンプルの部分にそっくりそのまま、ユーザー定義型
等の変数にデータを代入するとかして、そのまんまmdbに対して、データ追加の
SQLを投げるとか、mdbにパラメータクエリがあったら、それをキックするとか
の方法が「もっといい方法」と思います。
Excelのシートに代入すると言うものすごく重い処理をする必要は無いです。
と言うより、処理を重くするだけと思う。
Excelでの表示が必要なら、mdbから必要な部分を抽出してそれを表示すればよい。
後、現在のCSVをテーブルごとに複数のCSVに分け、そのまんま、それをSQLで
mdbに流し込むとか(出来るかどうかは未確認)、recordset取得してmdbに流し
込む(これは出来る)とかが思いつきます。
|
|