Office関連

MDB(Accessデータベース)ファイルを作成してデータを格納するExcelマクロ

2012/2/22追記:
下記で作成したMDBファイルを利用したWordマクロを考えてみました。

データの格納先としてCSVファイルがよく使われますが、数万件単位のデータになるとCSVファイルでは少々扱いづらくなってきます。
そこで今回はMDBファイルにデータを格納するマクロを考えてみたいと思います。

テストには「WEB便利ツール」で公開されている辞書データを使用しました(A、B列ともに文字列として読み込み)。


Option Explicit

Public Sub CreateMDB()
'MDBファイル作成
  Dim DBFilePath As String
  Dim con As String
  Dim tbl As Object
  Dim cn As Object
  Dim i As Long
  
  Const TableName As String = "tblDic" 'テーブル名
  Const FieldName1 As String = "word" 'フィールド名1
  Const FieldName2 As String = "meaning" 'フィールド名2
  
  DBFilePath = ThisWorkbook.Path & Application.PathSeparator & "MyDB.mdb"
  If Len(Dir(DBFilePath)) > 0 Then Kill DBFilePath '事前に削除
  con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBFilePath
  
  'MDBファイル作成
  With CreateObject("ADOX.Catalog")
    .Create con
    Set cn = .ActiveConnection
    'テーブル追加
    Set tbl = CreateObject("ADOX.Table")
    tbl.Name = TableName
    tbl.Columns.Append FieldName1, &HCA 'テキスト型
    tbl.Columns.Append FieldName2, &HCB 'メモ型
    .Tables.Append tbl
    Set tbl = Nothing
  End With
  
  'レコード追加
  With CreateObject("ADODB.Recordset")
    .Open TableName, cn, 1, 3
    For i = 1 To ActiveSheet.Range("A1").End(xlDown).Row
      Application.StatusBar = "処理中:" & i & " / " & ActiveSheet.Range("A1").End(xlDown).Row 'ステータスバーに状況表示
      .AddNew
      .Fields(FieldName1).Value = ActiveSheet.Cells(i, 1).Value
      .Fields(FieldName2).Value = ActiveSheet.Cells(i, 2).Value
      .Update
      DoEvents
    Next
    .Close
  End With
  cn.Close
  Set cn = Nothing
  
  MsgBox "処理が終了しました。", vbInformation + vbSystemModal
  Application.StatusBar = False
End Sub

処理終了後、作成されたMDBファイルをAccessで開いてみると、無事にデータが格納されていました。

どうやら上手く処理できたようです。
(ADOやADOXは久しく扱っていないので、色々と思い出しながらの作業でした…(^^; )

Office 2010のオブジェクトリスト前のページ

MDBファイルから読み込んだ単語を検索し、ヒットしたら単語の意味をコメントにするWordマクロ次のページ

関連記事

  1. Office アドイン

    「マイクロソフト Office 用アプリ開発スタートアップガイド」レビュー

    ※ 下記レビューはあくまでも個人的な感想です。日本初(恐らく)…

  2. Office アドイン

    [Office用アプリ]カレンダーから日付入力

    カレンダーから日付を選ぶだけで選択中のセルに日付を入力できるコンテンツ…

  3. アイコン一覧

    Office 365アイコン(imageMso)一覧(R)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  4. Office関連

    ConvertToTextメソッドを使ってテーブルを二次元配列に変換するWordマクロ

    WordのTableオブジェクトには、テーブルを解除して文字列に変換す…

  5. Office関連

    インストールされたフォントの一覧を取得するVBAマクロ

    最近自分の周りでPowerPoint VBAが流行っているようだったの…

  6. Excel

    既存の機能の代わりにマクロを実行する方法をまとめてみました。

    「既存の機能の代わりにマクロを実行する」の関連になりますが、Offic…

コメント

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP