Excel VBA質問箱 IV

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

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


19683 / 76735 ←次へ | 前へ→

【62480】Re:セル範囲を指定して削除するには?
発言  かみちゃん  - 09/7/24(金) 6:22 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 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

元々のデータベースの内容としたいことがわかれば、もっと効率のよい方法はアドバイスできるかもしれません。
0 hits

【62453】セル範囲を指定して削除するには? AT 09/7/22(水) 19:13 質問
【62454】Re:セル範囲を指定して削除するには? かみちゃん 09/7/22(水) 19:21 発言
【62459】Re:セル範囲を指定して削除するには? AT 09/7/22(水) 22:34 お礼
【62461】Re:セル範囲を指定して削除するには? かみちゃん 09/7/22(水) 23:27 発言
【62465】Re:セル範囲を指定して削除するには? かみちゃん 09/7/22(水) 23:46 発言
【62479】Re:セル範囲を指定して削除するには? AT 09/7/24(金) 1:30 お礼
【62480】Re:セル範囲を指定して削除するには? かみちゃん 09/7/24(金) 6:22 発言
【62490】Re:セル範囲を指定して削除するには? AT 09/7/25(土) 13:44 お礼
【62478】Re:セル範囲を指定して削除するには? AT 09/7/24(金) 0:19 お礼

19683 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free