[三流君] −−>
[プログラマー業務の愚痴] −−>
[バックナンバー一覧]
−−> No.040 Access97 マクロをモジュールへ変換して楽をする
Access97 マクロをモジュールへ変換して楽をする
本文(発行内容)
<Access97 マクロをモジュールへ変換して楽をする>
/*
* 1.はじめの挨拶
*/
こんにちは。
今回も、芸術的なプログラムが書けない、Ken3の独り言です。
お時間のある人は、お付き合いください。
概要は、
Accessのマクロをモジュールへ変換して、
少し楽をするです。
では、またいつもの手抜き調理、聞いてください。
/*
* 2.Accessのマクロをモジュールへ変換
*/
下記のような質問メールをいただきました。
(おいおい、過去の質問は、、はやくまとめてよ、、)
---------------
>Access97を使用していますが、Accessで書き込んだデータをからOutlook
>Expressの新規メールの内容に貼り付けるいい方法があったら教えてくださ
>い。
>添付ファイルではなく、実際のメールの内容として表示し、そのまま送信が
>できるようにしたいのですが。
>難しいでしょうか。
---------------
サンプルになるか、わかりませんが、
作成してみようと思います。
*サンプルファイルと画像、下記に保存されています。
あわせて見てください。
( hosoku/040/index.html 参照 )
まず最初にAccessの機能にあるか、調べてみます(予想してみます)
私の場合は、ヘルプを見て調べるか、詳しい後輩に聞く、
マクロコマンドでないか調べてみるのパターンです。
今回、業務外のこと(メルマガの読者からの質問なので)
をできる後輩に聞くことができないので、
マクロコマンドで探してみました。
マクロの新規作成を押して、アクションを探します。
おっ、オブジェクトの送信って、それっぽいのがアルジャン。
(
参照 )
次にパラメーター?設定値をいれます。
オブジェクトの種類とかは無視して、
宛先 ken3@******.or.jp
件名 テストです、うまくいくかなぁ?
メッセージ ダメでしょたぶん
に適当なテストデータを入れます。
保存後、うまく行くかマクロを実行して、
単体機能のテストを行います。
なんとか、Outlook Express の送信箱に入りました。
*Outlook97 とかが標準になっていると、そちらに入ります。
標準がOutlook Express か確認します。
(
,
参照 )
マクロが無事動いたので、これをVBA(モジュール)に変換します。
変換方法は、簡単で、
ファイル・名前を付けて保存/エクスポート
を選択後、まんなかの Visual Basic モジュールを選択します。
すると、マクロがVBAに変換されます。
(
参照 )
(
参照 )
次に、モジュールで変換されたマクロの中身を確認します。
下記のようなモジュールが作成されてます
'------------------------------------------------------------
' マクロ1
'
'------------------------------------------------------------
Function マクロ1()
On Error GoTo マクロ1_Err
DoCmd.SendObject , "", "", "ken3@******.or.jp", "", "", "テストです、うまくい
くかなぁ?", "ダメでしょたぶん", False, ""
マクロ1_Exit:
Exit Function
マクロ1_Err:
MsgBox Error$
Resume マクロ1_Exit
End Function
(
参照 )
(
参照 )
これで、宛先と件名、メッセージのパラメータの位置がわかります。
*SendObjectにマウスを合わせ、F1キーを押すと、ヘルプが見れます。
あとは、現在固定値で処理している項目を変数にするなどして、
処理します。
下記、フォームから送信の例です。参考となれば、、、
'-------------------------
Private Sub B_Send_Click()
'送信確認
If MsgBox("メールを送信します", vbYesNo) = vbNo Then
Exit Sub
End If
'マクロを変換して、ただ、フォームの値を渡しただけです。
DoCmd.SendObject , "", "", Me![F_TO], "", "", Me![F_件名], Me![F_本文], False, ""
'終了メッセージ
MsgBox "送信箱に保存されたと思う メールソフトを開いて確認してください"
'テーブルからの場合は、テーブルを開いて、読みこんで処理してください
End Sub
'--------------------------
(
参照 )
(
参照 )
(
参照 )
(
参照 )
なんか、質問の回答と違うような気がするけど、いいや。。。
/*
* 3.だいぶ前の宿題、、、少しはやってますよ、、、
*/
だいぶ前の宿題、ですが、少しはやり始めてます。
ファイルの拡張子を一括で変更したい
や
サブディレクトリ付きのコピー処理をしたい
などで、つかうだろう、
ファイルのリストをサブディレクトリも含めて取得を
カッコつけて作っているのですが、
Dir関数が再起処理だと使えなかったりして、
汚いプログラムになってます。。。
公開できるように現在調整中です。
*サブディレクトリも含めて、
ファイル名リストを取得する関数、
ご存知のかたは、教えてください。
また、オリジナルで作られた方、自慢気に教えてください。
ファイル名の取得関係は dir関数です。
ファイル名の変更は Nameステートメント
name oldname as newname で、できそうです。
自分へ一言、、かっこつけてないで、はやく公開して、
いろいろ指摘してもらったほうが、
はやいんじゃない?
そのほうが、これはやっちゃいけない、
三流処理だ、、と読者の人達の反面教師になれるぞキット。
/*
* 4.終わりの挨拶
*/
今回のAccess マクロをVBAに変更、、どうでしたか?
えっ、そんなの知ってた、、
もっとプロらしいテクニックを書け、、、
なんて声聞こえたところで、今日も逃げるようにサヨナラです。
では、また。 三流PG Ken3でした。
フィードバック
愚痴系の→[掲示板]←を覗く、質問を書き込む
評価・感想
三流君の主なリンク先
[アクセスランキング]
[サイトマップ]
[リンク先・相互リンク先など]
Ken3の日記(weblog) --
[広告・副収入系]
[プログラマー業務の愚痴]
[VBA系の話題]
[ASP系の話題]
[コンビニ系ネタ]
[その他]
その他 宣伝広告