[No.40 Access97 マクロをモジュールへ変換して楽をする] [No.41 VB5 Setup.exe を探し一覧表示する] [No.42 人間できてないKen3のグチ せっかく作ったのに、、、] [No.43 Ken3の独り言 良薬は口に苦し?、、、] [No.44 Ken3の独り言 お金じゃない何か?を探して...] 広告: |
No.40 | 2000/02/19 Access97 マクロをモジュールへ変換して楽をする |
[ページTOPへ戻る] |
<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.41 | 2000/02/24 VB5 Setup.exe を探し一覧表示する |
[ページTOPへ戻る] |
<VB5 Setup.exe を探し一覧表示する> 目次 1.はじめの挨拶 2.環境があればできるんだけど、、、ホントかよ 3.作ってみたが、なんかシックリこない、、、 4.またまた増える今後の課題? 5.おわりの挨拶 ---------------------------------------------------------------------------- /* * 1.はじめの挨拶 */ こんにちは。 今回は、出向先の同僚に依頼された処理を元に こんなの自分で作れ、、なんてグチを含めた 芸術的なプログラムが書けない、Ken3の独り言です。 お時間のある人は、お付き合いください。 では、またいつもの手抜き調理、聞いてください。 /* * 2.環境があればできるんだけど、、、ホントかよ */ 下記のような依頼メールを出向先の同僚からいただきました。 --------------- 現在CD-ROMに焼いて各支店に配っているAccessで作ったシステムが あるのですが、毎月セットアップをしなくてはならないため、CD-ROM 挿入後自動でセットアッププログラムを起動させたいのですが、 以下のようなディレクトリ構成でそれぞれにセットアッププログラム があり、それらを選択するプログラムを必要です。 ■Pattern A CD-ROM +SLS +事業部名 +Tokyo +Osaka +Nagoya : ■Pattern B CD-ROM +SLS24 +事業部名 +Tokyo +Osaka +Nagoya : ※事業部名はそれぞれのCD-ROMによって異なる。 サブディレクトリを読み取って、ユーザーにセットアップを選択させる プログラムの開発をお願いします。 本来であれば、私が作成すればいいのでしょうが、こちらにVBやVCと いった環境がないものですから..... --------------- 各ディレクトリに入っている Setup.exeの起動プログラムねぇ、、、 エクスプローラで起動する丁寧なマニュアルを配布先に渡したほうが いいような気がするけど、、、(また、始まったよ、やりたくない病?) さらにグチ続く、、 VBやVCといった環境がない? じゃ、環境があれば作れるのかよ、、 ノートパソコン送ってあげようか? (なんて、言えるはずの無いことをメルマガでグチらせてもらって) まぁ、依頼のしかたの最後が少しカチンと来たけど、 作成してみようと思います。 *私も後輩に作業を頼む時は、気をつけないと、、、 (自分へ一言、、テメエみたいな変な後輩いないから大丈夫でしょ あっ、そっか。。。) 後輩への悪い頼み方:「自分でやればできるんだけど、やってくれる」 後輩の心の中? :「ホントに自分でできるのかよ、できないくせに、、」 /* * 3.作ってみたが、なんかシックリこない、、、 */ やっと、ここから、ソースが出てきます (マジメな読者の方、、お待たせしました) 下記、私が、グチりながら作ったサンプルです。 作ってみたが、なんかシックリこないのですが。 *サンプル下記に保存しました。 あわせて見てください。 ( hosoku/041/index.html 参照 ) '----- 'VB5でフォームを1つ作りモジュール、、、に書いてみた、、 'リストボックスにSetup.exeの場所を表示して、 '選択後起動するサンプルです。 Private strDRV As String Private strDirList(10000) As String Private nDirCnt As Integer Private Sub cmdEND_Click() Unload Me End End Sub Private Sub cmdRunSetup_Click() '念のため、実行確認 If vbNo = MsgBox(Me.SetupList & "を実行します", vbYesNo) Then Exit Sub End If 'Shell関数で起動 Shell Me.SetupList, vbNormalFocus '自分自身を終了させる Unload Me End End Sub Private Sub Form_Activate() Dim n As Integer Dim strFNAME As String If nDirCnt = 1 Then 'ディレクトリの一覧を取得する(手抜き) Call searchDir(strDRV) 'Setup.exe があるか、あらためて探す '(同時に探したほうが速いのにねぇ、、、) For n = 1 To nDirCnt strFNAME = strDirList(n) & "setup.exe" Me.Caption = strFNAME & "検索中" DoEvents If Dir(strFNAME) <> "" Then Me.SetupList.AddItem strFNAME End If Next n Me.Caption = "検索終了、、、" End If End Sub Private Sub Form_Load() '検索ドライブを自分のパスから判断 strDRV = Left(App.Path, 1) & ":\" Me.labTitle.Caption = strDRV & "ドライブのSetup.exe 一覧" 'カウンタの初期化 nDirCnt = 1 End Sub Private Sub searchDir(strSearchPath As String) Dim strWORK As String Dim strCHK As String Dim nSTART As Integer Dim nEND As Integer Dim n As Integer nSTART = nDirCnt '格納開始位置を保存する 'まず、受け取ったディレクトリから下のディレクトリを '変数に格納する If Right(strSearchPath, 1) <> "\" Then strSearchPath = strSearchPath & "\" End If strWORK = Dir(strSearchPath, vbDirectory) ' 最初のフォルダ名を返します。 Do While strWORK <> "" ' ループを開始します。 ' 現在のフォルダと親フォルダは無視します。 If strWORK <> "." And strWORK <> ".." And strWORK <> "pagefile.sys" Then 'チェックするファイル名を作成 strCHK = strSearchPath & strWORK ' ビット単位の比較を行い、フォルダかどうかを調べます。 If (GetAttr(strCHK) And vbDirectory) = vbDirectory Then ' フォルダであれば、それを変数にセットします。 'ReDim strDirList(nDirCnt + 1) As String '配列の要素の数を増やします strDirList(nDirCnt) = strCHK Me.Caption = strCHK & "検索中" DoEvents nDirCnt = nDirCnt + 1 End If End If strWORK = Dir ' 次のフォルダ名を返します。 DoEvents Loop nEND = nDirCnt '終了位置を保存する If nSTART = nEND Then '1つも見つからなかった? '何もしない Else '今回新規にサーチしたディレクトリ数分その下を調べる For n = nSTART To nEND - 1 Call searchDir(strDirList(n)) Next n End If End Sub '----- なってないなぁ、、、 芸術的な流れはこれだぞって指摘、待ってます。 ささいなことでも、気がついたことあったら送ってください。 /* * 4.またまた増える今後の課題? */ 簡単な解説とダメ処理のまとめを書きます。 Form_Load()のイベントで、起動したドライブを取り出します。 '検索ドライブを自分のパスから判断 strDRV = Left(App.Path, 1) & ":\" ポイントはApp.PathでVBで作成したExeの場所がわかると思う。 *自分へ文句 \\SRV1\CD\XXXX.EXE で、サーバーのCDから起動したら、 どうなんだよ、、、 次に、Form_Activate()のイベントで、 ディレクトリをサーチし、Setup.exeを探し、 リストボックスへセットします。 Me.SetupList.AddItem strFNAME ..AddItem ヘルプでみて下さい。 ディレクトリのサーチは、dir関数を使用し、 strWORK = Dir(strSearchPath, vbDirectory) で回しました。 あとは、目新しい処理しないで普通にやっていると思います。。 三流なんだねその1 なんで固定の10000なの? Private strDirList(10000) As String 一万件越えたらどうするつもりなんだよ、、メモリもムダにするし。 'ReDim strDirList(nDirCnt + 1) As String '配列の要素の数を増やします はじめは、上記のように、 ReDim を使用して、増やしながらやろうと書きましたが、 再帰処理で再度関数を呼ぶとエラーになったので、 手抜きでstrDirList(10000) As Stringにしました。 (おいおい、頼むよ、、しっかりしてよ、、、) 三流なんだねその2 一流読者さんへ素朴な質問、 "c:\pagefile.sys"を If (GetAttr(strCHK) And vbDirectory) = vbDirectory Then で比較した時、実行時エラーで落ちたのですが、 なぜでしょうか? /* * 5.終わりの挨拶 */ 今回のグチりながらのボロボロなプログラム作成、、どうでしたか? なめてないで、流れをはじめに考えてから作らないと、 こんな汚いプログラム(動けばいいや的処理)になってしまいます。 えっ、三流のKen3らしい、、、 なんて声聞こえたところで、今日も逃げるように。。。 では、また。 三流PG Ken3でした。
No.42 | 2000/02/28 人間できてないKen3のグチ せっかく作ったのに、、、 |
[ページTOPへ戻る] |
<人間できてないKen3のグチ せっかく作ったのに、、、> <人間できてないKen3のグチ せっかく作ったのに、、、> 目次 1.はじめの挨拶 2.せっかく作ったのに、、、 3.最近、まわりとパスがつながらない?自分のせい?それとも? 4.HP感想、ありがとうございます。 5.おわりの挨拶 ---------------------------------------------------------------------------- /* * 1.はじめの挨拶 */ こんにちは。 今回は、出向先の同僚に依頼された処理を元に 先週、簡単なSetup支援プログラムを作りました。 が、、、 同僚から帰ってきた言葉は、、、 今回、プログラム以外のたんなるグチです。 *気分を害される恐れがあるので、 お時間のある時にここから下、読んでください。 心臓の悪い方は、ゴミ箱へメールを捨ててください。 (自分へ一言、、前置きのキレも無くなってきたね最近、、) では、いつものグチ、聞いてください。 /* * 2.せっかく作ったのに、、、 */ 下記のようなメールを出向先の同僚からいただきました。 ------------- >先日のインストーラーの件ですが、XXさんが添付したプログラムを >見つけてしまいました。(^^;;;;; > >Epson製品添付のCD-ROMのAutoRunプログラムです。 >「こんな感じでできんか?」とのことですがどうでしょう? > >このままでもインストールプログラムの選択、Captionの設定はできる >のですが、当然の如く画面の「Epson」ロゴが取れません。 > >そのまま使うのは倫理的にマズいと思うので、アイデア拝借として、 >こんな感じになりませんか?infファイルの設定で、背景の画像・ >ボタンの入れ替えができるようになるとベストです。 > >よろしくお願いします。 > ># あまりにも工数が掛かるようでしたら、 ># 見積もり出した方がいいのではないでしょうか? > >では、良い週末をお過ごし下さい。 ------------- なんて、メールをモラッテシマイマシタ。。。 人間できてない三流君(私)は、 せっかく作ったのに、EPSONのCD−ROM?ふざけるなよ、、 と思ってしまいました。 *作ってやったのに、、、 って偉そうな心が自分の中にあるのでしょうねキット。 /* * 3.最近、まわりとパスがつながらない?自分のせい?それとも? */ この件だけじゃなく、 最近、他部門や自分のチーム内で、意思が伝わらない。。。 新人教育の時も感じたが、 自分が日本語話しているのに、通じないと感じるか(相手が悪い) 実は、私が違う言葉を発してた(自分が悪い)。 また、最近、サッカーで言えば、 パスのタイミングがあわなくて、、、苦労してます。 5mパスがずれていたら、お互い2.5m努力しないと、、 と思いつつ、 後輩からは、足元に下さいよ正確に(設計書は完璧に<--あたりまえか、、、) なんて、感じです。 少し離れても(私がミスっても)、追いついて処理してよ、、 *処理してくれたらうれしいんだけどなぁ、、 一人作業だったら、気にしないけど、そうもいかなくてねぇ。 テニスのダブルス、ナンバー1とナンバー2が組んでも うまく行かないのと同様に、 お互いが足りない面をカバーするようにしないとねぇ。 (テニスしらないのによく言うねぇ、、、) 自分へ一言、、、リーダーなんて、 もうやってらんないって言う前に、 やることあるんじゃないの? /* * 4.HP感想、ありがとうございます。 */
都合によりカットしました | (2002/12/31) |
No.43 | 2000/02/29 Ken3の独り言 良薬は口に苦し?、、、 |
[ページTOPへ戻る] |
<Ken3の独り言 良薬は口に苦し?、、、> 目次 1.はじめの挨拶 2.一緒になってくれる意見は心地良い? リソースエディターでロゴだけ入れ替え 3.最近、バカやってないなぁ、、、 4.おまえ、暗いだろ 5. 6.おわりの挨拶 ---------------------------------------------------------------------------- /* * 1.はじめの挨拶 */ こんにちは。 今回は、前回No.42の感想メールを元に、 良薬は口に苦し? 的に書いてみたいと思います。。。 今回も、プログラム以外のたんなるグチです。 *気分を害される恐れがあるので、 お時間のある時にここから下、読んでください。 では、いつものグチ、聞いてください。 /* * 2.一緒になってくれる意見は心地良い? */ まずは、同情的なメールから(自分にとって心地よいメールから) 紹介します。 In message "Re : [三流PG No.042] Ken3のグチせっかく作", >いやーいやいや!! >見ましたよぉ。 >そして、笑いましたぁ!!(笑)。 > >これだから、ken3のマガは、面白い(おい)。 グチマガが体にあってる人みたいですね。 アレルギー反応おこして、解除する人多いのに。。 >このままでもインストールプログラムの選択、Captionの設定はできる >のですが、当然の如く画面の「Epson」ロゴが取れません。 > >んなもん。 >リソースエディターでロゴだけ入れ替えて、送ってやれば >十分でしょ? >真面目にやってちゃ、アホ臭いぜよ。 リソースエディターでロゴだけ入れ替えて、、 犯罪じゃないですか、、犯罪。 あっ、ロゴ自分のに入れ替えても、 プロパティやバージョン情報のところで、バレそう。 *そこも入れかえるんだよ、、(悪魔やなぁ、、) >> 人間できてない三流君(私)は、 >> せっかく作ったのに、EPSONのCD−ROM?ふざけるなよ、、 >> と思ってしまいました。 >> *作ってやったのに、、、 >> って偉そうな心が自分の中にあるのでしょうねキット。 > >怒って当然でしょ? >んなもん。 一緒になって、攻撃?してくれるメール見ると、 うれしいと感じるのですが、 それでいいのか?と一歩引いて思う時もある。 (でも、自分は、悪くないっぽいメール見ると、安心するなぁ、、) /* * 3.最近、バカやってないなぁ、、、 */ 二つ目は、 -------------- >subj: Re: [三流PG No.042] Ken3のグチせっかく作ったのに...(テメエはガキか?) > >KEN3さん,お元気ですか? >久々にお便りします。 >かなり参っていますね,communication gapに。 > >> 自分へ一言、、、リーダーなんて、 >> もうやってらんないって言う前に、 >> やることあるんじゃないの? > >そうなんすっ。近くに私がいたら,どこかの赤提灯でグチを聴いて上げられるの >に,残念っす。HPのアネゴは気が利かないようですし... > >そんで,やっぱ,解決法は次のみっつでしょうねー。 > >(1)わいはリーダーやでー,という自尊心をほーり出す。 > リーダーやってると,そのうちに雑用と後始末ばっかりやらされるでー。 > ほんで,その割には,みんなから煙たがられるでー。 > 特に,上のおっさんは煙たがるでー。 >(2)人間はドタマだけやないんやでー,と自分で自分に言い聞かせる。 > そのための実践として,できるだけバカなことをやってみる。例えば,は > だか祭に参加してみると,何か別の自分を見出せるかもしれへんでー。も > う終ったけど,蘇民祭というのでは,寒い夜中にちんちん丸だしでお祭り > やってんねんでー。こいつら,本物のアホーとちゃうねんでー。 >(3)せめて自分だけでも,言葉による意思疎通をしっかりする。 > 言葉で伝達した内容は,すくなくとも電子mailで確認を取ることだす。 > それから,主語をはっきりとして,ものを言う。 > 重文や複文をつこても,相手にはその内容は伝われへんでー。これは, > 日本語の宿命やでー。 > >ほな,さいなら。 >おきばりやす。 -------------------------- 別の自分を見つける、、、(気分転換、ストレス解消?) 意思疎通をしっかりする。(そう、これが欠けてるかも) 最近、バカ飲みしてないなぁ。。。 昔の話ですが、 2月の寒い時期、飲みすぎて、線路で寝てたことあったなぁ。。 コート・カバン・靴が無くなってたけど、 なぜか、サイフはあったんですよ。不思議だなぁ。 (よく、凍死しなかったなぁ、、) /* * 4.おまえ、暗いだろ */ 3つ目は、 -------- >おまえ暗いだろ、このメルマガ見てみ。 >http://www.tky.3web.ne.jp/~coz/boss/index.htm > >メールマガジン「理想の上司になるために」 >部下を持っている人、これから部下を持つ人のためのメールマガジンです。 >部下を持ったばかりの現役サラリーマンが贈る正直なメッセージです。 >週刊 マガジンID:0000017159 > >Ken3の暗いメルマガ期待してるぞ -------
現在発行して無いみたいです | (2002/12/31) |
都合によりカットしました | (2002/12/31) |
No.44 | 2000/03/22 Ken3の独り言 お金じゃない何か?を探して... |
[ページTOPへ戻る] |
<Ken3の独り言 お金じゃない何か?を探して...> 目次 1.はじめの挨拶 2.休眠中のメールなぜか転職情報?ばかり? 3.フリーの技術者って、大変だけどやりがいある? 4.不況じゃなきゃ、こんな会社にいない、、、 5.お金じゃない何かって? 6.おわりの挨拶 ---------------------------------------------------------------------------- /* * 1.はじめの挨拶 */ こんにちは。 今回も、プログラム以外のたんなるグチです。 *自分へ一言、、再開したと思ったら、また愚痴かよ。 では、いつものグチ、聞いてください。 の前に、再開1発目の枠外アンケートの途中経過、、、予想していたが悪いです。 ■ アンケート途中経過 質問: 今回のメルマガ、面白かったですか? ■面白かった 4人 (21%) ********** ■まあまあ 3人 (16%) ******** ■今回はチョット、、 1人 (5%) ** ■すみません、つまらないですよ。 11人 (58%) ***************************** って感じです。みなさん正直ですね(笑) ★協力:クリックアンケート< http://clickanketo.com/ >
昔からツマラナイと言われてたんだぁ(笑) | (2002/12/31) |
↑ここもリンク切れだぁ | (2002/12/31) |
ここまで、読んでいただきどうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。
質問や要望など連絡方法でお互い確認が取りやすく、便利なのが掲示板なのですが、私の対応のまずさから不定期で荒れてしまい、掲示板は現在封鎖中です。(反省しなきゃ)
感想や質問・要望・苦情など 三流君へメッセージを送る。 時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。 |
項目別に↓に本音?それとも建て前?的な記事をまとめました。お探しのジャンルを選択してください。
[ルーキー rookies]・・・ 新人さん達 初心者さんへ
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話
[共同作業 team]・・・チーム、グループ作業
[プログラムは心? spirit]・・・プログラマー 心・気質・魂
[掲示板デビューしようぜ bbs]・・・掲示板関係の話、質問者・回答者の気持ちほか
[昔はできた seo]・・・三流式の効果無しSEOとアフィリエイト
[仕事や作業、転職 job]・・・仕事や転職、評価、作業など
[その他 etc]・・・その他 分類外の記事
※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。
Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]