オデッセイの運営サイト一覧

Excel®️、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート

企業・教育機関の皆さまへ 試験会場を探す お問い合せ

やってみよう!Excel VBAで業務改善!|持続可能なスキーム編

第8話「テーブルのデータを編集しよう!」

第8話「テーブルのデータを編集しよう!」

登場人物紹介

今日は、在宅作業の日です

ちょうどその頃、八木くんはマンションで、進捗管理システムの続きに取り組んでいました。

「テーブルのデータをワークシートへ取り込むところまでは、ひとまずオッケーだな。
次は、編集したデータをテーブルに書き込むところを開発しよう」

八木くんは、カタカタとキーボードを叩き、コードを作成していきます。

Sub データ編集() Dim rs As New ADODB.Recordset Dim sql As String Dim i As Long If DB接続 Then For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row sql = "SELECT * FROM 進捗TBL WHERE 番号='" & Cells(i, 1).Value & "'" rs.Open sql, CN, adOpenKeyset, adLockOptimistic If Not rs.BOF Then rs.Fields("案件").Value = Cells(i, 2).Value rs.Fields("担当").Value = Cells(i, 3).Value rs.Fields("進捗").Value = Cells(i, 4).Value rs.Fields("企業名").Value = Cells(i, 5).Value rs.Fields("備考").Value = Cells(i, 6).Value rs.Fields("前回訪問日").Value = Cells(i, 7).Value rs.Update End If rs.Close Next MsgBox "データを編集しました" Call データ取得 End If End Sub

「ふ~~~~、ひとまずこんなところか。
細かなところは、後から追加するとして……。
For…Nextで、表の最終行までループする。
A列の"番号"で1件ずつレコードセットを取得、
BOFプロパティがFalse、つまりレコードが存在すれば…セルの値で上書き、
"rs.Update"でテーブルに反映する。 いい感じだぞ…」

一覧へ戻る

MENU