カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

VBA DAOでレコード件数の取得

DAOでレコード件数を取得するには、一度MoveLastメソッドを実行しないといけないようです。
※DAO Object Libraryは参照なし

Dim rst As Object

Set rst = Me.Recordset

rst.MoveLast
MsgBox "レコード件数:" & rst.RecordCount

Set rst = Nothing
8,934 views

ACCESS VBA テーブルの削除

テーブルの一覧を取得し、削除します。
※DAO参照はなしで実行できるようにしています。

Dim tbls As Object 'DAO.TableDefs
Dim tbl  As Object 'DAO.TableDef

'テーブル一覧取得
Set tbls = CurrentDb.TableDefs

Dim DelTables As Collection

Set DelTables = New Collection

For Each tbl In tbls

	'「MSys」で始まるテーブルはシステムテーブルなので省きます
    If Not tbl.Name Like "MSys*" Then
        DelTables.Add tbl.Name
    End If

Next

For i = 1 To DelTables.Count
    'テーブル削除
    tbls.Delete (DelTables(i))
Next

MsgBox "削除件数=" & DelTables.Count
10,090 views

ACCESS CSVデータインポート時の文字コード

TransferTextメソッドにて、テーブルにCSVデータをインポートする際、
文字コード(CodePage)を指定してインポートすることができます。

最後の引数[CodePage]を省略すると、シフトJISで読み込まれます。

DoCmd.TransferText acImportDelim, , _
    "テーブル名", "ファイルパス", True, , 932   'Shift_JIS

DoCmd.TransferText acImportDelim, , _
    "テーブル名", "ファイルパス", True, , 51932 'EUC-JP

DoCmd.TransferText acImportDelim, , _
    "テーブル名", "ファイルパス", True, , 65001 'UTF-8

DoCmd.TransferText acImportDelim, , _
    "テーブル名", "ファイルパス", True, , 50220 'JIS

CSVデータエクスポート時も同様です。

こちらに参考になる表があります。
http://www.atmarkit.co.jp/fdotnet/dotnettips/013enumenc/enumenc.html

42,736 views

ACCESS Excelオートメーションメモ

Dim xlApp   As Object
Dim xlBook  As Object
Dim xlSheet As Object

Dim FileName   As String
Dim myFileName As String
Dim myShape    As Object

FileName = Environ("USERPROFILE") & "\デスクトップ\sample.xls"

Set xlApp   = CreateObject("Excel.Application")
Set xlBook  = xlApp.Workbooks.Add
Set xlSheet = xlBook.WorkSheets(1)

With xlSheet

    .Range("A18:D18").MergeCells = True       'セルを結合
    .Range("A18").HorizontalAlignment = -4108 '横位置を中央揃えに
    .Range("A18").Font.Size = 48              'フォントの大きさを変更

End With

'保存
xlBook.Saveas (FileName)

xlBook.Close

xlApp.Application.Quit

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
3,238 views

Excel VBA 画像の挿入

Sub auto_open()

    Dim myFileName As String
    Dim myShape As Shape

    myFileName = ActiveWorkbook.Path & "\sample.bmp"

    ' 選択位置に画像ファイルを挿入し、変数myShapeに格納
    Set myShape = ActiveSheet.Shapes.AddPicture( _
          Filename:=myFileName, _
          LinkToFile:=False, _
          SaveWithDocument:=True, _
          Left:=Selection.Left, _
          Top:=Selection.Top, _
          Width:=0, _
          Height:=0)

    ' 挿入した画像に対して元画像と同じ高さ・幅にする
    With myShape
        .ScaleHeight 1, msoTrue
        .ScaleWidth 1, msoTrue
    End With

End Sub

ACCESSからExcelを操作し、挿入する場合
続きを読む…»

11,923 views