Excel シートに新規データを追加する

Excel シートに新規データを追加する

Sub 新規データ追加()
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset, FileName As String
Dim myCriArray(2) As String, i As Integer

FileName = ThisWorkbook.Path & "\xls\DataBook.xls"
myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;" & _
           "Data Source=" & FileName

'名前つき範囲「社員」をレコードごとの排他的ロックで開く
myRS.Open "[社員]", myCon, adOpenStatic, adLockPessimistic

'新規レコード追加
myRS.AddNew

myRS!社員ID = "050"
myRS!氏名 = "安藤 夏美"
myRS!フリガナ = "アンドウ ナツミ"
myRS!年齢 = "22"
myRS!所属 = "営業2課"

'変更を保存
myRS.Update

myRS.Close: Set myRS = Nothing
myCon.Close: Set myCon = Nothing

End Sub

名前つき範囲「社員」

実行結果

新規レコードには既存レコードの書式が適用される。
ただし、対象ブックを開いたまま AddNew メソッドを実行した場合には、書式は反映されない。

名前付き範囲は自動更新される。

◆実行前

◆実行後

名前付き範囲の下のセルにすでに何か入力されていると、新規レコードを追加できないのでエラーとなる。

名前付き範囲の下のセルにデータが入力されている

エラーメッセージ