| 
    
     |  | こんにちは。かみちゃん です。 
 > CopyFromRecordsetとは、どのような機能なのですか?
 
 CopyFromRecordsetメソッドのヘルプを参照していただいたほうがいいのですが、
 
 ADO または DAO の Recordset オブジェクトの内容をワークシートにコピーします。
 指定されたセル範囲の左上端を起点として、データを貼り付けます
 
 とあります。
 
 なお、以下のURLなどが参考になりますでしょうか?
 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130_030.html
 過去ログや、Webを検索するといろいろ出てきます。
 
 さらに簡単なサンプルとしては、
 http://billyboy.blog81.fc2.com/blog-entry-191.html#extended
 に出ているのですが、以下のような感じです。
 
 ActiveCellを左上とした範囲に出力されます。
 
 Sub Sample()
 Dim con, rec, i As Integer
 
 'ADOのConnectionオブジェクトを作成
 Set con = CreateObject("ADODB.Connection")
 With con
 '接続文字列:接続するデータベースによって異なる
 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" _
 & ";Data Source=C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
 .Open
 End With
 
 'ADOのRecordsetオブジェクトを作成
 Set rec = CreateObject("ADODB.Recordset")
 'Northwind.mdbの社員テーブルを開く
 rec.Open "社員", con
 
 For i = 0 To rec.Fields.Count - 1
 ActiveCell.Offset(0, i).Value = rec(i).Name
 Next i
 
 ActiveCell.Offset(1, 0).CopyFromRecordset rec
 End Sub
 
 今回は、必要なさそうですが、
 CopyFromRecordsetを使うと、Excelの最大行を超える場合は、シートに分割することなどが簡単なので、便利です。
 
 > [P列]のステータスが"試済"の場合、ACCESSで、データを抽出した時点で既に
 > [H列]の完了実績日の各欄に、試済完了実績日が入力されているのですが、
 > [P列]のステータスが"未"の場合、[H列]の完了実績日の各欄は、データが何も
 > 入力されていないタダの空欄になっています。
 >
 > この空欄に"―"を入力したいのですが、どのようにマクロを記述すればよろしいでしょうか?
 
 空欄というのは、一般操作で
 A列の値が入っている最終行が163行とした場合、
 H2:H163を選択して、「編集」−「ジャンプ」の[セル選択]をクリックし、
 「空白」にチェックをして、[OK]をクリックしたときに選択される範囲
 でいいのでしょうか?
 それでいいのであれば、その操作を「マクロの記録」で記録してみて、さらに修正を加えます。
 修正の際、セル範囲については、[62479]で解決した範囲設定方法を応用します。
 
 On Error Resume Next
 Range("H2:H" & Range("A" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeBlanks).Value = "-"
 On Error GoTo 0
 
 元々のデータベースの内容としたいことがわかれば、もっと効率のよい方法はアドバイスできるかもしれません。
 
 
 |  |