[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> 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でした。

フィードバック

愚痴系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.040を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

三流君の主なリンク先

[アクセスランキング] [サイトマップ] [リンク先・相互リンク先など]
三流プログラマー 業務の愚痴 掲示板 バックナンバー 登録と解除
コンビニのオモテとウラ話 掲示板 バックナンバー 登録と解除
VBAで楽しくプログラミング 掲示板 バックナンバー 登録と解除
ASPで遊ぶ、失敗する 掲示板 バックナンバー 登録と解除
www.ken3.org(サイト内)から Google を利用して、

Ken3の日記(weblog) -- [広告・副収入系] [プログラマー業務の愚痴] [VBA系の話題] [ASP系の話題] [コンビニ系ネタ] [その他]

その他 宣伝広告