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


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

リンクや広告など

項目別に本音?それとも建て前?的な記事をまとめました。

気になったジャンル↓を選択してください。
[ルーキー rookies]・・・ 新人さん達 初心者さんへ
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話
[共同作業 team]・・・チーム、グループ作業
[プログラムは心? spirit]・・・プログラマー 心・気質・魂

[掲示板デビューしようぜ bbs]・・・掲示板関係の話、質問者・回答者の気持ちほか
[昔はできた seo]・・・三流式の効果無しSEOとアフィリエイト
[仕事や作業、転職 job]・・・仕事や転職、評価、作業など
[その他 etc]・・・その他 分類外の記事

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]



[三流君(TOP ken3.org へ戻る)] / [プログラマー業務の愚痴] / [バックナンバー 一覧]