2007年11月18日

Access:マクロを作成するVBA

マクロの内容を作成するVBA。Accessの非公開APIを使用して作成する。

Declare Function api_Macro_Close Lib "msaccess.exe " Alias "#20" (ByVal hMacro As Long) As Long
Declare Function api_Macro_NextRow Lib "msaccess.exe" Alias "#22" (ByVal hMacro As Long, ByVal lSkipBlank As Long, lEndOfMacro As Long) As Long
Declare Function api_Macro_SaveActID Lib "msaccess.exe" Alias "#25" (ByVal hMacro As Long, ByVal lActId As Long) As Long

Sub SaveMacro()
Dim hMacro As Long

WizHook.Key = 51488399
'
hMacro = WizHook.OpenScript("エキスポート", "", 2, 0, 0)

If hMacro = 0 Then Exit Sub
'
'1行
api_Macro_NextRow hMacro, 0, 0
'マクロ名(ラベル)
WizHook.SaveScriptString hMacro, 0, "出力"
'条件
WizHook.SaveScriptString hMacro, 2, "MsgBox(""実行しますか?"",17)<>1"
'アクション
api_Macro_SaveActID hMacro, 45 'マクロの中止
'コメント
WizHook.SaveScriptString hMacro, 1, "テーブルをエキスポートする"
'
'2行
api_Macro_NextRow hMacro, 0, 0
'アクション
api_Macro_SaveActID hMacro, 40 '値の設定
'以下アクションのパラメータ
WizHook.SaveScriptString hMacro, 3, "[Forms]![form1]![txtFileName]"
WizHook.SaveScriptString hMacro, 4, """zzz.csv"""
'
'3行
api_Macro_NextRow hMacro, 0, 0
'アクション
api_Macro_SaveActID hMacro, 49 'テキスト変換
'以下アクションのパラメータ
WizHook.SaveScriptString hMacro, 3, "2"
WizHook.SaveScriptString hMacro, 5, "ZAA"
WizHook.SaveScriptString hMacro, 6, "=[Forms]![form1]![txtFileName]"
WizHook.SaveScriptString hMacro, 7, "0"
'コメント
WizHook.SaveScriptString hMacro, 1, "テキストの変換"
'
'4行
api_Macro_NextRow hMacro, 0, 0
'アクション
api_Macro_SaveActID hMacro, 22 'メッセージボックス
'以下アクションのパラメータ
WizHook.SaveScriptString hMacro, 3, "終わった"
WizHook.SaveScriptString hMacro, 4, "-1"
WizHook.SaveScriptString hMacro, 5, "4"
'コメント
WizHook.SaveScriptString hMacro, 1, "しゅうりょう"
'
api_Macro_Close hMacro

End Sub


posted by 忘却の達人 at 07:26| Comment(0) | TrackBack(0) | Access | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。