目次
ACCESSからExcelへ九九の結果を転送
こんにちは。伊川(@naonaoke)です。
今回は、九九の結果をExcelへ転送します。
頑張った結果を、親御様と、子供で共有しましょう。
問題提起
発達障害、算数を理解していない幼児に、九九を教える。
結果をExcelへ転送して、結果を見る。
ACCESSから、Excelへ転送する
今回は、ACCESSからExcelへ転送します。
前回の逆バージョンになります。
難しいようですが、これもコピペで対応できるものになります。
ACCESSから、Excelへ転送する 作成手順その1 転送されるExcelを確認
【けっかはっぴょう】をクリックすると、ACCESSから結果が転送されます。
結果転送だけではつまらないので、枠線も引いてみます。
ACCESSから、Excelへ転送する 作成手順その2 転送コードを確認
コードをかく
コピペをする場合は、上の図の赤枠の2箇所を書き換えます。
それで、完成です。
コードの意味自体は現時点では理解できなくてもいいと思います。
コピペで、動かすということを心がけましょう。
Excelを装飾するコード
カンタンなVBAのコードなのですが、重要な要素がつまっています。
端から端までというコードを紹介します。
Excelを装飾するコード 作成手順その1 コードを確認する
このコードでなにが重要かというと、転送されたデータベースに応じて罫線を無駄なく引けるところです。
Sub テーブル取り込み() Range("A1") = "段" Range("B1") = "数値" Range("C1") = "解答" Range("D1") = "正誤判定" Range("E1") = "日時" Dim con As New ADODB.Connection Dim rs As New ADODB.Recordset Dim conStr As String conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & "\九九.accdb" con.Open ConnectionString:=conStr rs.Open Source:="Q_結果", ActiveConnection:=con, _ CursorType:=adOpenKeyset, LockType:=adLockOptimistic Range("A2").CopyFromRecordset Data:=rs rs.Close con.Close Dim i As Long, j As Long maxrow = Cells(Rows.Count, "A").End(xlUp).Row maxColumns = Cells(1, Columns.Count).End(xlToLeft).Column For i = 1 To maxrow For j = 1 To maxColumns Cells(i, j).Select Cells(i, j).EntireColumn.AutoFit Cells(i, j).Borders.LineStyle = xlContinuous Next j Next i End Sub
Excelを装飾するコード 作成手順その2 完成図
上の図のようになります。
点数までは記載するようにしませんでした。
ここがポイント
Excelから、ACCESSへ転送する。ACCESSから、Excelへ転送する。このようなことができると、
仕事の幅が広がります。
社内でも重宝されます。
でも、やっていることは、コピペで対応できるということです。
まとめ
今回が、ExcelとACCESSの連携を公開した初めての内容になります。
公開できるほど、カッコイイコードではありません。
しかし、実際に動かすことが重要です。
動くと、もっとカッコイイコードが書けるようにと欲がでてきます。
その、欲が大切なのです。
そして、最後に、九九の正誤がどうであれ、勉強が終わったら、よくできたと褒めてあげてください。
そして、頭をなでてください。
ExcelとACCESSの連携よりも重要なことです。
今回のサンプルファイルは、No79です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。