[No.110 IE SELECTタグ OPTIONを選択する.Document.all(n).Selected=True]
[No.111 Access クエリーの作成画面で遊ぶ(項目別の集計)]
[No.112 IE 操作 .ExecWB でコマンド実行(検索したかったけど)]
[No.113 Access クエリー 2つのテーブル結合して集計したい]
[No.114 VBA で WScript.ShellのSpecialFoldersプロパティを使ってみた]

www.ken3.org(サイト内)から Google を利用して、

三流君 VBAで楽しくプログラミング(Excel/Access VBAの解説/サンプルです)
[VBA系のバックナンバー] [VBA系 TOP] [三流君 TOP]



No.110 2003/07/19
IE SELECTタグ OPTIONを選択する.Document.all(n).Selected=True
[ページTOPへ戻る]

<IE SELECTタグ OPTIONを選択する.Document.all(n).Selected=True>

どうも、三流プログラマーのKen3です。 今回は、 掲示板でもらった質問、 IEを起動してSELECTタグのoptionを選択 を少し、探ってみたいと思います。 いつものように、たいした解説、回答内容じゃないので、 暇つぶしに休み時間などに拾い読みしてください。 サンプルファイルは、 http://www.ken3.org/vba/lzh/vba110.lzh にtest110-book.xlsが保存されています。

/* * 1.今回のキッカケ */

掲示板に下記の質問をもらいました。 ---- > すみません。どうしても分からなかったので質問します。 > AccessからIEを起動してフォームに値を入れるというのは > 前回のめるまがでとても参考になりました。ありがとうございます。 > で、そこからなんですが、ドロップダウンの値を直接指定して入力 > することはできるんでしょうか。 > 【ソース例】 > <SELECT name="ken"> > <option value="1">1</option> > <option value="2">2</option> > <option value="3">3</option> > </SELECT> > Htmlソースは上の感じなんですが、これを > objIE.document.all.ken.value = "3" > と指定するとエラーが出ます。 > 指定の仕方が違うと思うのですが、検索しても分からなかったのです。 > プロの人だと「当たり前じゃねえか」と思われるかも知れませんが > 宜しくお願い致します。 ---- なんで、 > プロの人だと「当たり前じゃねえか」 なんて私は、思ったりしないんだけど、 あと、ご教授くださいとか多いんだろう?・・・・ それだけお偉いプログラマー様の回答者が世の中多いんだろうけど。。。 そんな偉いシステム屋さんと私も、同じ扱いを受けて光栄です そこまでレベル上げたいよね、 じゃなくって、なんか悲しいよね(涙) ※全体に言っている独り言なので、質問者の人には言ってないので、  気にしないでね(聞いてほしい独り言が多いってば・・・)  文句を言いたいのは、お偉い回答者さん達とそれを支える熱狂的なご教授信者さん  まぁ、そんなこと言っててもダメってのがツライよね。  また、ある掲示板へ戦いにじゃなくって宣伝に行くかな(ある掲示板って?どこ?) えっ、ハヤク解説始めろって? 質問の回答以外は聞きたくも無いって? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ それが三流作者のメルマガの特徴なので。 いつもの前置きが長かったですね(謎?)

/* * 2.語学力無いので、かなり苦戦する(笑) */

そんなの「当たり前じゃねえか」とは、言えないぐらいに苦戦しました(笑) いろいろと試行錯誤するが私も出来なかった。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 一流読者の人に、私も、そんなの「当たり前じゃねえか」なんて言われてんだろうなぁ と思いつつ、調べ始めます。 ※なかなか最後まで行き着かないので、  先に回答の3.サンプルを見たほうがいいかも。  で、見てからこちらに戻ってきてください。 IE ドキュメントオブジェクトは、 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 私のパターンは、下記のリンクから探り始めてます。 http://msdn.microsoft.com/workshop/browser/webbrowser/reference/properties/document.asp を見ると、 Microsoft Visual Basic programs that early bind to the HTMLDocument object can reference it through the IHTMLDocument, IHTMLDocument2, and IHTMLDocument3 interfaces. HTMLDocument objectは、 IHTMLDocument IHTMLDocument2 IHTMLDocument3 なんて、インターフェース?を持ってんの?だからなに? ※ここから下も勝手な和訳が続くので適当に読んでね。 (Ken3の独り言が続く(笑)) IHTMLDocument2 に .allがあって http://msdn.microsoft.com/workshop/browser/mshtml/reference/ifaces/document2/get_all.asp を見ると、 You can use the IHTMLElementCollection::length property to determine the number of element objects in the collection, and the IHTMLElementCollection::item or IHTMLElementCollection::tags function to retrieve individual objects or collections of objects from the collection. You can 何いってんのか、わかんないよ。 日本に来たら、日本語話せよとコンビニ店長時代ならレジ打ったあと言ってたけど、 .comに来たら、英語ぐらい読めと言われそう・・・ なんて話は置いといて、 IHTMLElementCollection って、Elementのコレクションがあるんだってさ。 オブジェクトって階層構造になっていて、 コレクションが階層構造になっているのと、 一番下にプロパティやメソッドがあるので、 それをイメージしながら探ると、英語読めなくても探れると思う。 ※ExcelならExcelアプリの下にブックがあってシートにセル、  セルは値や書式を持っている(プロパティ)、  セルのクリアやコピーの動作(メソッド)がある  なんてのが基本です。  *途中のブックにたいして、Saveなどのメソッドもあり、   一番下だけにプロパティ・メソッドがあるんじゃないことも注意かなぁ。 Document.All は、そんなコレクションからできてるんだってさ。 ^^^^^^^^^^^^^^^^^ だからなんだっつうの・・・オレは三流プログラマーだってばさ、 英語なんか読めないよ。 ハヤクサンプルソースまでたどり着きたい・・・ で、ここがDHTMLのオブジェクトだって・・・ http://msdn.microsoft.com/workshop/author/dhtml/reference/objects.asp おっ、ここに、HTMLでよく見かけるタグが存在する。 やっとたどり着いた? ※ここ、新たなブックマーク候補です。  ここから調べると、タグ単位で探りやすそうです。 相変わらず英語だけど、いろいろと出てきた。 input Creates a variety of form input controls. input type=button Creates a button control. input type=checkbox Creates a check box control. input type=hidden Transmits state information about client/server interaction. などなど、いろいろあるけど、 目的のオブジェクトは、 ~~~~~~~~~~~~~~~~~~~~~~ SELECT タグのOPTIONでしたね。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ option Denotes one choice in a SELECT element. http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/option.asp にやっと書いてありました。 Syntax HTML <OPTION SELECTED ... > Scripting OPTION.selected [ = bSelected ] Possible Values bSelected Boolean that specifies or receives one of the following values.false Default. Item is not selected as the default. true Item is selected as the default. よくわかんないこと書きやがって、、、 えっと、 OPTION.selected = bSelected と代入しろだって? で、bSelected Booleanだって? だったら初めから、 OPTION.selected = True/Falseって書けよ、、と怒り出すぞオイ。

/* * 3.サンプルを作成して、テストする */

http://www.ken3.org/vba/test110.html に、下記のテスト用HTMLを書きました。 <html> <head> <title>IE SELECT への セットをテストするためのHTML</title> </head> <body bgcolor=#ffffff text=#000000> <hr> <h1>IE SELECT への セットをテストするためのHTML</h1> <hr> <FORM ACTION="http://www.ken3.org/cgi-bin/test/test041-1.asp" METHOD="POST"> <font color="blue">TYPE=SELECT の入力テスト</font><br> <br> あなたの好きなセリーグの球団は? <SELECT name="ken"> <option value="1">阪神</option> <option value="2">中日</option> <option value="3">ヤクルト</option> <option value="4">巨人</option> <option value="5">広島</option> <option value="6">横浜</option> </SELECT><br> <br> 感想: <SELECT name="kansou"> <option value="3">IE最高</option> <option value="2">MSは日本語技術情報ハヤク作れ</option> <option value="1">イヤもっと英語力付けろ</option> <option value="0">メルマガふざけないで・・・まじめに書け</option> </SELECT> <br> <INPUT TYPE="submit" NAME="btn" VALUE="送信"> <INPUT TYPE="reset" VALUE="入力し直す"> </FORM> </body> </html> <SELECT name="ken"> と 項目名はkenにして6球団を選択 <option value="1">阪神</option> <option value="2">中日</option> <option value="3">ヤクルト</option> <option value="4">巨人</option> <option value="5">広島</option> <option value="6">横浜</option> </SELECT><br> <SELECT name="kansou"> と 項目名はkansouにして3〜0を選択 <option value="3">IE最高</option> <option value="2">MSは日本語技術情報ハヤク作れ</option> <option value="1">イヤもっと英語力付けろ</option> <option value="0">メルマガふざけないで・・・まじめに書け</option> </SELECT> Excelでテストルーチンを作成。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 6番の横浜を選択してみます。
Sub ie_test()

    Dim objIE    As Object  'IEオブジェクト参照用

    'インターネットエクスプローラーのオブジェクトを作る
    Set objIE = CreateObject("InternetExplorer.application")
    
    objIE.Visible = True '見えるようにする(お約束)

    '文字列で指定したURLに飛ぶ
    objIE.Navigate "http://www.ken3.org/vba/test110.html"

    '表示終了まで待つ
     Do While objIE.Busy = True
         '何もしないループ(笑)
         DoEvents
     Loop

     '項目名を探して、データをセットする
     Dim i As Integer

     '全ての項目を調べる
     For i = 0 To objIE.Document.all.Length - 1
        'インプットのタグか?.tagnameを見る
        Debug.Print i & ":" & objIE.Document.all(i).tagname
        If objIE.Document.all(i).tagname = "OPTION" Then
            'さらに、値が6(横浜)かチェックする
            If objIE.Document.all(i).Value = "6" Then
                'ここまで調べて、チェックを付ける
                objIE.Document.all(i).Selected = True
            End If
        End If
     Next i

End Sub
1つ1つ、タグを調べて行き、 .tagname = "OPTION" .Value = "6" だったら、 .Selected = True にしてみました。 よし、動いたよ。 あのさぁ、 .tagname = "OPTION" .Value = "6" だからいいけどさ、 .tagname = "OPTION" .Value = "2" 中日を選択にしたいから、 'さらに、値が2(中日)かチェックする If objIE.Document.all(i).Value = "2" Then とすると、全てのデータを回しているので、 <option value="2">MSは日本語技術情報ハヤク作れ</option> もONになるんじゃないの? あっ、確かに・・・ ↑中日とMSは日本語技術情報ハヤク作れが選択されたバグ。 さてと、どうしましょうかねぇ。 また、止めてオブジェクトを見てみます。 If objIE.Document.all(i).Value = "6" Then で、止めて、中身を確認してみます。 確認方法の詳細は No.52 InternetExplorer.application .document.body.innerText http://www.ken3.org/backno/backno_vba11.html#52 を参照してください。 止めて、オブジェクトを見てみると、 おっ、.Textってのがあるよ。 ↑オブジェクトの中身 .textに横浜と球団名が出てるから、これを使用して、 中日を選択するには、 '全ての項目を調べる For i = 0 To objIE.Document.all.Length - 1 'インプットのタグか?.tagnameを見る Debug.Print i & ":" & objIE.Document.all(i).tagname If objIE.Document.all(i).tagname = "OPTION" Then 'さらに、値が2とテキストが中日かチェックする If objIE.Document.all(i).Value = "2" _ And objIE.Document.all(i).Text = "中日" Then 'ここまで調べて、チェックを付ける objIE.Document.all(i).Selected = True End If End If Next i と、 objIE.Document.all(i).Value = "2" _ And objIE.Document.all(i).Text = "中日" の条件でチェックしました。 なんか情けないよねぇ、、、だとすると、 <option value="0">メルマガふざけないで・・・まじめに書け</option> をチェックするときは、 If objIE.Document.all(i).Value = "0" _ And objIE.Document.all(i).Text = "メルマガふざけないで・・・まじめに書け" Then 'ここまで調べて、チェックを付ける objIE.Document.all(i).Selected = True End If と書くの? 選択肢のテキストが変わったら、使えないよね・・・ また、 好きな球団横浜、 嫌いな球団XX をチェックするプログラム作りたかったら? SELECTのタグが違っても、同じ値をセットしてしまうよ・・・

/* * 4.1つ前のタグ、SELECTを覚える */

そもそも、 <SELECT name="ken"> と 項目名はkenにして6球団を選択 <SELECT name="kansou"> と 項目名はkansouにして3〜0を選択 これを無視しているからだよね。 いま、どのSELECTタグを通過したかを覚えて、 下記のように処理しました。 '項目名を探して、データをセットする Dim i As Integer Dim strSTAG As String '最近のSELECTタグの名前を保存 '全ての項目を調べる For i = 0 To objIE.Document.all.Length - 1 'インプットのタグか?.tagnameを見る Debug.Print i & ":" & objIE.Document.all(i).tagname If objIE.Document.all(i).tagname = "SELECT" Then strSTAG = objIE.Document.all(i).Name 'SELECT名前を代入 End If If objIE.Document.all(i).tagname = "OPTION" Then 'さらに、値が2と保存したSELECTがKenかチェックする If objIE.Document.all(i).Value = "2" And strSTAG = "ken" Then 'ここまで調べて、チェックを付ける objIE.Document.all(i).Selected = True End If 'さらに、値が1と保存したSELECTがkansouかチェックする If objIE.Document.all(i).Value = "1" And strSTAG = "kansou" Then 'ここまで調べて、チェックを付ける objIE.Document.all(i).Selected = True End If End If Next i ポイントは、 ~~~~~~~~~~~~ .tagname = "SELECT"の時、 strSTAG = objIE.Document.all(i).Name 'SELECT名前を代入 と、名前を保存します。 OPTIONよりも先にSELECTタグが現れるHTMLの仕様を利用してます。 ※OPTIONだけはありえないので。 で、あとは、保存されたstrSTAGと値を比べて、 必要なデータを選択してます。 -【けんぞう!】--------------------------------------------------------- 三流君の、小金稼ぎ、お小遣い稼ぎシリーズ第2弾(稼げないだろコラ!!) http://www.ken3.org/etc/500yen/yosou.html キャンペーン参加で得たコインを予想問題に投票。正解するとコインが倍増、 それを換金という画期的“お得エンタメ”です。 運と実力で誰でも現金獲得のチャンスがあります。 思ったよりもあたらないけど、無料なのでチャレンジしてみては? ------------------------------------------------------------------------ 

/* * 5.終わりの挨拶 */

もっと、直接指定する方法がありそうなんだけどなぁ・・・ ループでまわして、調べてみました。 今回は、 objIE.Document.all(i).Selected = True で、OPTIONを選択してみました。 サンプルファイルは、 http://www.ken3.org/vba/lzh/vba110.lzh にtest110-book.xlsが保存されています。 いろいろと三流プログラマーらしくハマった。 そんなお話でした。 何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。

No.111 2003/07/21
Access クエリーの作成画面で遊ぶ(項目別の集計)
[ページTOPへ戻る]

<Access クエリーの作成画面で遊ぶ(項目別の集計)>

どうも、三流プログラマーのKen3です。 今回は、 掲示板でもらった質問、 項目別に集計して金額 を探るついでに、クエリー画面で遊んでみたいと思います。 いつものように、たいした解説、回答内容じゃないので、 暇つぶしに休み時間などに拾い読みしてください。

/* * 1.今回のキッカケ */

掲示板に下記の質問をもらいました。 ---- In message "[BBS :232] ACCESSについて質問します", >年月日:項目:金額 という表で > >項目別に検索して、金額を表示することはできますが、 >項目別に集計して金額を表示する方法がわかりません。 ---- いろいろとやり方はありそうですが、 今回は、クエリーの集計を使用してみます。 えっと、ポイントは、表示・集計で集計指示を入力可能として、 グループ化と合計で出来ると思います。 なんて、文章で書いても?ですよね。

/* * 2.テストデータを作る */

ID 年月日 項目 金額 1 2003/01/01 あ \100 2 2003/01/05 い \50 3 2003/02/10 あ \250 4 2003/02/20 い \5 と、テーブルとテストデータを作成しました。 このデータから、 あ \350 い \55 と集計してみたいと思います。

/* * 3.クエリーを作成する、表示・集計がポイントです。 */

クエリーで普通に項目と金額を選択して表示させます。 ↑作成過程と実行結果 項目 金額 あ \100 い \50 あ \250 い \5 ぜんぜん、集計されてナイジャン? まぁまぁ、あわてないでよ。 次が操作のポイントで、 ~~~~~~~~~~~~~~~~~~~~~~ メニューから、表示、集計をクリックします。 ↑表示・集計をメニューより選択する すると、 集計: ^^^^^^ って行が勝手に表示されます(勝手では無くて、私が選択したからです) グループ化 グループ化と表示されていると思います。 ↑集計指示行のイメージ 項目 金額 グループ化 グループ化 となっている指定を、 項目でグループ化したいので、項目はそのまま、金額を合計に修正します。 ↑金額の集計指示を合計に変更する。 これで完成したので、クエリーを実行します。 ↑実行結果 無事に、350と55と結果が集計されました。

/* * 4.余談、SQLビュー */

ここからは、余談ですが、 よく掲示板で聞く、SQLビューで作成されたSQL文を見ろ、貼り付けろ? この意味なんですが、 クエリーの作成って、マウスでドラックしてフィールドを貼り付けたり、 並べ替えを選んでみたり、今回みたいに集計を指定してみたり、 簡単に作成してます。 私は、SQL文得意じゃないので、上記のように作成後、 表示・SQLビューで確認したりしてます。 ↑SQLビューの選択 選択すると、 SELECT DATA.項目, Sum(DATA.金額) AS 金額の合計 FROM DATA GROUP BY DATA.項目; と、SQL文を見ることが出来ます。 おっと、見るだけじゃなくて、ここで修正したりすることも出来ます。 SQL文からレコードセットを作る時など、 この手順を参考にすると、初めの頃は楽かもしれません。 質問とは関係なかったけど、 こんな便利なことも出来たんですね。 -【けんぞう!】--------------------------------------------------------- 三流君の、小金稼ぎ、お小遣い稼ぎシリーズ第2弾(稼げないだろコラ!!) http://www.ken3.org/etc/500yen/yosou.html キャンペーン参加で得たコインを予想問題に投票。正解するとコインが倍増、 それを換金という画期的“お得エンタメ”です。 運と実力で誰でも現金獲得のチャンスがあります。 思ったよりもあたらないけど、無料なのでチャレンジしてみては? ------------------------------------------------------------------------ 

/* * 5.終わりの挨拶 */

今回は、 クエリーの作成画面で集計を表示させて遊んでみました。 何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。 ※評価は↓で投票してね。感想は掲示板かメールでくださいね。

No.112 2003/07/28
IE 操作 .ExecWB でコマンド実行(検索したかったけど)
[ページTOPへ戻る]

<IE 操作 .ExecWB でコマンド実行(検索したかったけど)>

どうも、三流プログラマーのKen3です。 今回は、 掲示板とメールでもらった質問を処理するために、 IEのコマンドボタンを使う.ExecWBをイタズラしたそんな話です。 結局、出来なかったんだけど、途中経過を楽しんでね。 ※事前調査でつまずく、そんな例です。

/* * 1.今回のキッカケ */

掲示板に下記の質問をもらいました。 http://www.ken3.org/cgi-bin/bbs/vba/wforum.cgi ---- >タイトル:VBAからIEの検索を表示したい > >教えてください。 >環境(EXCEL2000) >EXCELからIEを立ち上げたときに「WEB ページの検索」を >常に表示させたいのですが? >ショートカットキーは、Ctrl + E ですが、 >同処理をVBAでは、どのようなコードになりますか。 >教えてください。 >宜しく、お願いします ---- IEでCtrl + Eを押した状態にする方法 と メールで、 ---- >アクセス2000の環境で、activeXにて、アクロバットリーダ >6 を挿入しました。(アクロバット直接ではなく、Ie6 >からPLUGINです) > >それで、WEBからPDFファイルを引っ張ってきていますが、 >このあと、そのPDFファイルを検索したいのです。 > >アクロバットの検索メニューからデータを入力すればOK >なのですが、これをAccessのフォームをクリックしてアク >ロバットに送り、自動的に検索したいのです。 > >アクロバットではJavaScriptがあると聞いていますが、 >VBAでなんとかいきませんか。 >何かヒントをいただければ幸いです。 ---- こっちは、検索のウインドウを自動ですね。

/* * 2.事前調査、テスト */

どちらも共通しているのは、IEの機能(ボタン)なので、 そのあたりから探ってみます。 IE Command で検索すると、 http://msdn.microsoft.com/workshop/browser/webbrowser/reference/methods/execwb.asp が検索される。 object.ExecWB( _ cmdID As OLECMDID, _ cmdexecopt As OLECMDEXECOPT, _ [pvaIn As Variant,] _ [pvaOut As Variant]) Parameters cmdID Long that represents the identifier of the command to execute. For more information on command identifiers, see MSHTML Command Identifiers. cmdexecopt OLECMDEXECOPT value that specifies the command options. pvaIn Optional. A Variant used for specifying command input arguments. pvaOut Optional. A Variant used for specifying command output arguments. で、ここが使えるコマンドかぁ。 http://msdn.microsoft.com/library/en-us/com/htm/oen_a2z_22sk.asp うわ、いっぱいあるよ・・・ typedef enum { OLECMDID_OPEN = 1, OLECMDID_NEW = 2, OLECMDID_SAVE = 3, OLECMDID_SAVEAS = 4, OLECMDID_SAVECOPYAS = 5, OLECMDID_PRINT = 6, OLECMDID_PRINTPREVIEW = 7, OLECMDID_PAGESETUP = 8, OLECMDID_SPELL = 9, OLECMDID_PROPERTIES = 10, OLECMDID_CUT = 11, OLECMDID_COPY = 12, OLECMDID_PASTE = 13, OLECMDID_PASTESPECIAL = 14, OLECMDID_UNDO = 15, OLECMDID_REDO = 16, OLECMDID_SELECTALL = 17, OLECMDID_CLEARSELECTION = 18, OLECMDID_ZOOM = 19, OLECMDID_GETZOOMRANGE = 20, OLECMDID_UPDATECOMMANDS = 21, OLECMDID_REFRESH = 22, OLECMDID_STOP = 23, OLECMDID_HIDETOOLBARS = 24, OLECMDID_SETPROGRESSMAX = 25, OLECMDID_SETPROGRESSPOS = 26, OLECMDID_SETPROGRESSTEXT = 27, OLECMDID_SETTITLE = 28, OLECMDID_SETDOWNLOADSTATE = 29, OLECMDID_STOPDOWNLOAD = 30, OLECMDID_ONTOOLBARACTIVATED = 31, OLECMDID_FIND = 32, OLECMDID_DELETE = 33, OLECMDID_HTTPEQUIV = 34, OLECMDID_HTTPEQUIV_DONE = 35, OLECMDID_ENABLE_INTERACTION = 36, OLECMDID_ONUNLOAD = 37, OLECMDID_PROPERTYBAG2 = 38, OLECMDID_PREREFRESH = 39, OLECMDID_SHOWSCRIPTERROR = 40, OLECMDID_SHOWMESSAGE = 41, OLECMDID_SHOWFIND = 42, OLECMDID_SHOWPAGESETUP = 43, OLECMDID_SHOWPRINT = 44, OLECMDID_CLOSE = 45, OLECMDID_ALLOWUILESSSAVEAS = 46, OLECMDID_DONTDOWNLOADCSS = 47, OLECMDID_UPDATEPAGESTATUS = 48, OLECMDID_PRINT2 = 49, OLECMDID_PRINTPREVIEW2 = 50, OLECMDID_SETPRINTTEMPLATE = 51, OLECMDID_GETPRINTTEMPLATE = 52 } OLECMDID; OLECMDEXECOPTのパラメータはここ、 http://msdn.microsoft.com/library/en-us/com/htm/oen_a2z_5k38.asp を参照すると typedef enum { OLECMDEXECOPT_DODEFAULT = 0, OLECMDEXECOPT_PROMPTUSER = 1, LECMDEXECOPT_DONTPROMPTUSER = 2, OLECMDEXECOPT_SHOWHELP = 3 } OLECMDEXECOPT; と、書いてある。 ※なんとなくわかりそうな英単語のような、違う意味のような・・・ 危なく無さそうな、印刷プレビューのコマンドで実験してみます。
Sub ie_test()

    Const OLECMDID_PRINTPREVIEW = 7    '参照設定している場合は不要です
    Const OLECMDEXECOPT_DODEFAULT = 0  'テストなので、

    Dim objIE As Object  'IEオブジェクト参照用
    Dim a, b 'ダミー変数

    'インターネットエクスプローラーのオブジェクトを作る
    Set objIE = CreateObject("InternetExplorer.application")
    
    objIE.Visible = True '見えるようにする(お約束)
    objIE.GoHome

    '表示終了まで待つ(ビジーの間ループする)
     Do While objIE.Busy = True
         DoEvents '何もしないループ(笑)
     Loop

    'IEのメニューコマンドを実行する(7番のコマンド)
    objIE.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT

End Sub
使用方法・ポイントは特に無く、 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 'IEのメニューコマンドを実行する(7番のコマンド) objIE.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT と、 定数を渡しただけで、初期ページのプレビューが表示されました。 ※頭でConst OLECMDID_PRINTPREVIEW = 7を定義してますが、  MicroSoft Internet Controls を参照設定してあれば、  そんなことしないので、注意してくださいね。 ↑実験結果。

/* * 3.検索関係を探る */

質問は検索の窓だよね、それらしい英単語をコマンド一覧から探すと、 OLECMDID_SHOWFIND = 42, これなんて、あやしいよね、SHOW FIND かぁ あと、 OLECMDID_FIND = 32, なんかは、そのまま、検索コマンドのような気がする。 'IEのメニューコマンドを実行する(42番のコマンド) objIE.ExecWB OLECMDID_SHOWFIND, OLECMDEXECOPT_DODEFAULT と、組み込んでテストしてみました。 テストで実行(心の中では、楽勝ムードだったが・・) あらら、実行時エラー・・ExecWBメソッドは失敗しました・・だってさ・・ デバッグメッセージ。 objIE.ExecWB OLECMDID_SHOWFIND, OLECMDEXECOPT_DODEFAULT 何がおかしいのか・・・ よし、ここは、他力本願、OLECMDID_SHOWFINDをキーワードに検索するぞ。 ※エラーになった関数で検索して、人様の成功例を探す、  そんな学習方法もアリですよ。 でも、見つからない・・みなさん、 .ExecWB OLECMDID_SHOWFIND なんて、使わないのか・・・・

/* * 4.SendKeysで逃げた */

印刷プレビューのテストが出来たので、 IEのコマンド操作、簡単だと思ったけど、 何かがおかしく、検索のウインドウを表示できなかった。 しかたがない、いつもの、古典的な手法、SendKeysで逃げます。
Sub ie_test_検索()

    Const OLECMDID_SHOWFIND = 42       '参照設定している場合は不要です
    Const OLECMDEXECOPT_DODEFAULT = 0  'テストなので、

    Dim objIE As Object  'IEオブジェクト参照用
    Dim a, b 'ダミー変数

    'インターネットエクスプローラーのオブジェクトを作る
    Set objIE = CreateObject("InternetExplorer.application")
    
    objIE.Visible = True '見えるようにする(お約束)
    objIE.GoHome

    '表示終了まで待つ(ビジーの間ループする)
     Do While objIE.Busy = True
         DoEvents '何もしないループ(笑)
     Loop
    
    'IEをアクティブにする。
    AppActivate "Microsoft Internet Explorer"
    SendKeys "^f", True  'Ctrl+Fをアクティブなアプリへ送る

End Sub
同様に、 'IEをアクティブにする。 AppActivate "Microsoft Internet Explorer" SendKeys "^e", True 'Ctrl+Eをアクティブなアプリへ送る でCTRL+Eを送ると、 左側に、検索のフレームが表示されます。 -【けんぞう!】--------------------------------------------------------- 三流君の、小金稼ぎ、お小遣い稼ぎシリーズ第2弾(稼げないだろコラ!!) http://www.ken3.org/etc/500yen/yosou.html キャンペーン参加で得たコインを予想問題に投票。正解するとコインが倍増、 それを換金という画期的“お得エンタメ”です。 運と実力で誰でも現金獲得のチャンスがあります。 思ったよりもあたらないけど、無料なのでチャレンジしてみては? ------------------------------------------------------------------------ 

/* * 5.終わりの挨拶 */

う〜ん、スッキリしないが、 何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。

No.113 2003/07/29
Access クエリー 2つのテーブル結合して集計したい
[ページTOPへ戻る]

<Access クエリー 2つのテーブル結合して集計したい>

どうも、三流プログラマーのKen3です。 今回は、 メールでもらった質問を処理するために、 Accessのクエリーで表を結合して集計してみたいと思います。

/* * 1.今回のキッカケ */

メールで下記の質問をもらいました ---- >ACCESSでのクエリで分からないことがあります。 > >下記のような表1、表2があった場合どうしても、思うような結合がされません。 >よい方法がないでしょうか。 表1 ID 項目 単位 入り数量 1 春 コ 5 2 夏 コ 6 3 秋 コ 7 4 冬 コ 8 5 冬至 m 5 6 夏至 m 6 7 春分 m 7 8 秋分 m 8 9 冬至 m 1 10 夏至 m 2 11 夏 コ 3 12 秋 コ 4 13 冬 コ 5 14 冬至 m 6 15 冬 コ 7 表2 ID 項目 単位 出力数量 1 春 コ 7 2 春 コ 8 3 春 コ 5 4 夏 コ 6 5 秋 コ 7 6 冬 コ 8 7 春 コ 1 8 春 コ 2 9 春 コ 3 10 春 コ 4 11 夏 コ 5 12 秋 コ 5 13 冬 コ 6 表まとめ 項目 単位 入り数量 出力数量 差(入り−出力) 春 コ 夏 コ 秋 コ 冬 コ 春分 秋分 の部分がどうしても出てこない 冬至 また、数量も集計されたものとなっていない 夏至 ---- 表をつなげて、集計してみるかぁ、、、 いろいろとありそうだけど、やってみますか。

/* * 2.結合方法の調査、テスト */

テーブルの結合方法を探ってみます。 えっ、なんで?ただ?線でつなげるだけじゃないの? 質問で、 春分 秋分 の部分がどうしても出てこない 冬至 また、数量も集計されたものとなっていない 夏至 入りのテーブルにあって、出力のテーブルに無いデータ、 春分 秋分 冬至 夏至 が出てきていないので、結合をまずは、探ってみます。 クエリーでテーブルを2つ表示させ、 まずは、項目でデータをつなげます。 その後、表示・集計を出し 項目をグループ化、単位を先頭、入り数量と出力数量は合計で クエリーを作成すると、 項目 単位の先頭 入り数量の合計 出力数量の合計 夏 コ 18 22 秋 コ 22 24 春 コ 35 30 冬 コ 40 42 と集計される。 ほんとだ、春分 秋分 冬至 夏至が集計されない。 なんでだろう?ってギャグはやめといて、 両方の項目が一致しないと、結合されないみたいですね。 これを防止したいので、表1の入り数量のテーブルを基準に結合してみます。 指定は簡単で、 ^^^^^^^^^^^^^^ 結合の線をクリック後、右ボタンを押すと、結合プロパティが表示されます。 2番の、表1の全レコードと表2の同じ結合フィールド を選択します。 実行すると、 項目 単位の先頭 入り数量の合計 出力数量の合計 夏 コ 18 22 夏至 m 8 秋 コ 22 24 秋分 m 8 春 コ 35 30 春分 m 7 冬 コ 40 42 冬至 m 12 となります。 なんか、集計値がおかしくない? えっ、どこが? 夏の入り数の合計ってさ、 18になっているけど、データ見ると、 ID 項目 単位 入り数量 2 夏 コ 6 11 夏 コ 3 で9じゃないの? 同様に、春ってさ35になっているけど、 ID 項目 単位 入り数量 1 春 コ 5 の5しか、データ無いんだけど(笑) あらら、ホントだ、なんで? 表1と表2をつなげてグループ化してるけど、 表1と表2って1対1じゃないから、 レコード数がn*n作成されるんですね、 そのレコード群に対してグループ化の集計をかけてるからねぇ。 表2の夏は、 ID 項目 単位 出力数量 4 夏 コ 6 11 夏 コ 5 と、2レコード 表2の春は、 ID 項目 単位 出力数量 1 春 コ 7 2 春 コ 8 3 春 コ 5 7 春 コ 1 8 春 コ 2 9 春 コ 3 10 春 コ 4 と、7レコードあったんですね。

/* * 3.スマートに出来なかったのでドロドロした方法 */

なんだよ、画面コピーしながら説明文作ってたけど、ダメだったってことジャン。 もったいないから、上の2章で意味無い失敗として使ってるけど(笑) さてと、気を取り直して、ドロドロした処理を作成しますか。 直接つなげられないなら(方法あるかもしれないが、今はわからないので) データをキレイにしてから、つなげますか。 キレイにする? えっと、データ料理の下準備じゃないけど、 先に表1と表2を集計するクエリー集計1と集計2を作成します。 表1のデータ ---- ID 項目 単位 入り数量 1 春 コ 5 2 夏 コ 6 3 秋 コ 7 4 冬 コ 8 5 冬至 m 5 6 夏至 m 6 7 春分 m 7 8 秋分 m 8 9 冬至 m 1 10 夏至 m 2 11 夏 コ 3 12 秋 コ 4 13 冬 コ 5 14 冬至 m 6 15 冬 コ 7 ---- を集計して、下記のようなクエリーを作成する。 集計1 ---- 項目 単位 入り数量の合計 夏 コ 9 夏至 m 8 秋 コ 11 秋分 m 8 春 コ 5 春分 m 7 冬 コ 20 冬至 m 12 ---- と、表1を元に集計を行うクエリーを作成する。 ↑作成イメージ 表2のデータ ---- ID 項目 単位 出力数量 1 春 コ 7 2 春 コ 8 3 春 コ 5 4 夏 コ 6 5 秋 コ 7 6 冬 コ 8 7 春 コ 1 8 春 コ 2 9 春 コ 3 10 春 コ 4 11 夏 コ 5 12 秋 コ 5 13 冬 コ 6 ---- を集計して、下記のようなクエリーを作成する。 集計2 ---- 項目 単位 出力数量の合計 夏 コ 11 秋 コ 12 春 コ 30 冬 コ 14 ---- と、表2を元に集計を行うクエリーを作成する。 ↑作成イメージ これで、双方、先に集計を行い、データがキレイにまとまってます。 この、集計1と集計2をつなげるクエリー、結合12を作成します。 テーブル選択でクエリーを選択します。 あとは、項目で結合して、それぞれの項目を表示します。 実行結果は、下記のようになります。 ---- 項目 単位 入り数量の合計 出力数量の合計 夏 コ 9 11 夏至 m 8 秋 コ 11 12 秋分 m 8 春 コ 5 30 春分 m 7 冬 コ 20 14 冬至 m 12 ---- やっと、完成しました。 オイオイ、何か、忘れてない? えっ?何? ボケんなよ、 表まとめ 項目 単位 入り数量 出力数量 差(入り−出力) 春 コ 夏 コ 秋 コ 冬 コ よく見ろよ、差って書いてあるでしょ・・・ あっ、ホントだぁ。

/* * 4.演算フィールドで差を計算する */

差を計算したいので、クエリーのフィールドに演算フィールドを作成します。 差:入り数量の合計 - 出力数量の合計 と空いているフィールドに入力します。(コロンは:と半角でお願いします) 入力すると、 差: [入り数量の合計]-[出力数量の合計] みたいに、[]が付くが、気にしないでね。 ↑入力位置 結果 ---- 項目 単位 入り数量の合計 出力数量の合計 差 夏 コ 9 11 -2 夏至 m 8 秋 コ 11 12 -1 秋分 m 8 春 コ 5 30 -25 春分 m 7 冬 コ 20 14 6 冬至 m 12 ---- よし、完成。と思ったが、出力が無いと、差が出てこない(計算されない) う〜ん、困った。 よし、NZ関数を使用して逃げてみます。 差: [入り数量の合計]-nz([出力数量の合計],0) と、NZ関数を使用して、NULLの時は0、それ以外は元の値を返すように細工して、 結果 ----- 項目 単位 入り数量の合計 出力数量の合計 差 夏 コ 9 11 -2 夏至 m 8 8 秋 コ 11 12 -1 秋分 m 8 8 春 コ 5 30 -25 春分 m 7 7 冬 コ 20 14 6 冬至 m 12 12 ---- やっと、完成したのかなぁ。 -【けんぞう!】--------------------------------------------------------- 三流君の、小金稼ぎ、お小遣い稼ぎシリーズ第2弾(稼げないだろコラ!!) http://www.ken3.org/etc/500yen/yosou.html キャンペーン参加で得たコインを予想問題に投票。正解するとコインが倍増、 それを換金という画期的“お得エンタメ”です。 運と実力で誰でも現金獲得のチャンスがあります。 思ったよりもあたらないけど、無料なのでチャレンジしてみては? ------------------------------------------------------------------------ 

/* * 5.終わりの挨拶 */

う〜ん、1つのクエリーで出来なかったので、 スッキリしないが、 こんな感じで、データを整理しながら集計する方法もある。 と 結合プロパティの使い方やデータが増えてしまう、 そんな感覚がわかってくれれば・・と思います。 私の失敗が、何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。

No.114 2003/07/30
VBA で WScript.ShellのSpecialFoldersプロパティを使ってみた
[ページTOPへ戻る]

<VBA で WScript.ShellのSpecialFoldersプロパティを使ってみた>

どうも、三流プログラマーのKen3です。 今回は、 CreateObject("WScript.Shell") と、スクリプトのシェルを作成して、 SpecialFoldersプロパティを使って、 デスクトップの位置を取得してみたいと思います

/* * 1.今回のキッカケ */

フォルダーの選択処理を前に作成しました。 詳細は、フォルダーを選択してファイルリストを作成する http://www.ken3.org/vba/vba-folder.html を見てください。 'フォルダー選択ダイアログを表示して、リターン値で選択場所を返す 'キャンセルの時は文字列キャンセル、 'デスクトップの時は文字列を返す
Function getFOLDER() As String

    Dim objShell  As Object 'Shell
    Dim objFolder As Object 'Shell32.Folder
    Const strTitle = "フォルダを選択してください。"

    'シェルのオブジェクトを作成する
    Set objShell = CreateObject("Shell.Application")

    'フォルダー参照に設定
    Const lngRef = &H1
    'ルートフォルダーをデスクトップに設定
    '5でMy Documents、6でFavoritesなど
    Const fldRoot = &H0
    
    Set objFolder = _
            objShell.BrowseForFolder(0, _
                strTitle, lngRef, fldRoot)
    
    'フォルダー名を取出し、リターン値をセット
    If objFolder Is Nothing Then 'キャンセルチェック
        getFOLDER = "キャンセル"  'リターン値にキャンセルをセット
    Else
        If objFolder.ParentFolder Is Nothing Then
            getFOLDER = "デスクトップ"
        Else
            getFOLDER = objFolder.Items.Item.Path 'パスをセットする
        End If
    End If

    Set objFolder = Nothing
    Set objShell = Nothing

End Function
と、一番上のデスクトップを選択されたら、 文字をそのまま返してました。 今回は、ログインしているユーザー、 デスクトップの場所を探す方法を探ってみます。

/* * 2.いつもの調査方法・・じゃなくって、たまたま見つけました */

いつもなら、ここで、XXXを条件に検索しました。 で、英語読みながら見つけましたと武勇伝を語るんだけど、 >今回は、ログインしているユーザー、 >デスクトップの場所を探す方法を探ってみます。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ スミマセン、ウソついてました(笑) 探ったんじゃなくて、 たまたま、隣のASP系のメルマガで、 VBScriptの関数の調査してたら目に止まりました(オイオイ、偶然かよ・・) ここ、 http://www.microsoft.com/japan/msdn/library/ja/script56/html/wsprospecialfolders.asp Windows Script Host の説明ページなのですが(日本語なので安心) SpecialFolders プロパティなんて説明があります。 ^^^^^^^^^^^^^^ 説明を見ると、 object.SpecialFolders(objWshSpecialFolders) 引数 object WshShell オブジェクトです。 objWshSpecialFolders 取得する特定フォルダの名前です。 解説 WshSpecialFolders オブジェクトはコレクションです。このオブジェクトには、 デスクトップのフォルダ、[スタート] メニューのフォルダ、個人用ドキュメント のフォルダなど、Windows の特定フォルダ セット全体が格納されます。目的の特定 フォルダを取得するには、フォルダ名をコレクション内のインデックスとして使用 します。要求したフォルダ (strFolderName) を使用できない場合は、NULL が返さ れます。たとえば、Windows 95 では、AllUsersDesktop フォルダがないため、 strFolderName が AllUsersDesktop と等しい場合に NULL が返されます。 使用できる特定フォルダは次のとおりです。 AllUsersDesktop AllUsersStartMenu AllUsersPrograms AllUsersStartup Desktop Favorites Fonts MyDocuments NetHood PrintHood Programs Recent SendTo StartMenu Startup Templates なんて、説明を、偶然発見しました。 いろいろな特殊フォルダーの位置を知ることができそうです。 -- 余談 -- 自分で調べごとを行うと? 頭のスミにデスクトップの場所の求め方知りたい・・とあったのか、 本来の調べごとをほったらかして、テストしてみました。 人に聞くばかりじゃなく、自分で調べると、 ~~~~~~~~~~~~~~~~~~~~~~ 調査の過程で違う知識が吸収できたりします。 (たまたまの出来事を偉そうに書いてますが、  そんな時・偶然やラッキーもあるんだぁ程度に思ってください) 本来の目的から脱線して、いろいろと違う場所を見るのも、ありですよキット。 えっ、脱線して、ネットでH系ページを会社から見るのも?ありかって? う〜ん・・・どうなんでしょう。 脱線するなら、 http://www.ken3.org/etc/okozukai.html の、ネットで小金稼ぎ、ヨロシクデス。 せっかく途中までエエ話だったのに、広告で閉めカヨ。。。 まぁ、三流君らしいけど。

/* * 3.簡単なテストプログラム */

話を戻して、簡単なテストプログラムを作成してみます。
Sub test()

    Dim objWShell As Object 'WScript.Shell
    Dim strDesktopPath  As String 'デスクトップの場所

    'Windows Script Hostのオブジェクトを作成する
    Set objWShell = CreateObject("WScript.Shell")

    'スペシャルフォルダ(特殊フォルダ)の場所を返す
    strDesktopPath = objWShell.SpecialFolders("Desktop")

    '確認メッセージの表示
    MsgBox "DesktopのPathは[" & strDesktopPath & "]です"

End Sub
ポイントは、 ~~~~~~~~~~~~ Set objWShell = CreateObject("WScript.Shell") で、 Windows Script Hostのオブジェクトを作成してます。 これは、.SpecialFoldersプロパティのオブジェクトだからです。 あとは、普通に"Desktop"とデスクトップを指定して、 'スペシャルフォルダ(特殊フォルダ)の場所を返す strDesktopPath = objWShell.SpecialFolders("Desktop") と、 .SpecialFoldersプロパティの値をもらってます。 わかってしまえば、簡単でした。 ※APIとか使うのかと思って、デスクトップの取得方法、  棚上げにしてたけど、こんなに簡単なら探せばよかった・・・

/* * 4.おまけ */

関数に組み込んでみます。 'フォルダー選択ダイアログを表示して、リターン値で選択場所を返す 'キャンセルの時は文字列""(空文字列)を返す
Function getFOLDER() As String

    Dim objShell  As Object 'Shell
    Dim objFolder As Object 'Shell32.Folder
    Const strTitle = "フォルダを選択してください。"

    'シェルのオブジェクトを作成する
    Set objShell = CreateObject("Shell.Application")

    'フォルダー参照に設定
    Const lngRef = &H1
    'ルートフォルダーをデスクトップに設定
    '5でMy Documents、6でFavoritesなど
    Const fldRoot = &H0

    Set objFolder = _
            objShell.BrowseForFolder(0, _
                strTitle, lngRef, fldRoot)
    
    'フォルダー名を取出し、リターン値をセット
    If objFolder Is Nothing Then 'キャンセルチェック
        getFOLDER = ""  'リターン値に""空文字列をセット
    Else
        If objFolder.ParentFolder Is Nothing Then  '下位を未選択デスクトップ?
            Dim objWShell As Object 'WScript.Shell
            'シェルのオブジェクトを作成する
            Set objWShell = CreateObject("WScript.Shell")
            'デスクトップの場所を返す
            getFOLDER = objWShell.SpecialFolders("Desktop")
            'オブジェクトの開放
            Set objWShell = Nothing
        Else
            getFOLDER = objFolder.Items.Item.Path 'パスをセットする
        End If
    End If

    Set objFolder = Nothing
    Set objShell = Nothing

End Function
Sub 選択テスト()

    Dim strWORK As String
    
    strWORK = getFOLDER()  'フォルダーの選択関数を呼ぶ
    
    If strWORK = "" Then   '空文字””でキャンセルのチェック
        MsgBox "キャンセル押されたよ"
    Else
        MsgBox "選択されたのは" & strWORK & "です"
    End If

End Sub
そんなに変わってないけど、 フォルダーの選択関数としては、少しは形になったかなぁ。 -【けんぞう!】--------------------------------------------------------- 月500円、タバコなら2箱、120円缶コーヒーなら4缶分の謝礼をGetするなら http://www.ken3.org/etc/500yen/ ←無料アンケート系の広告です。 『チッ、がんばって回答して月500円かよ』(お馬鹿なプログラマー:30歳) ------------------------------------------------------------------------ 

/* * 5.終わりの挨拶 */

今回は、たまたま、 別の調べごとでデスクトップの位置を返す方法を見かけたので WShell.SpecialFolders("Desktop") を使用してみました。 みなさんも、たまには、脱線した調べごとをしてみては? 新雪を行くか、それとも、人の跡をなぞるか ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 使用したこと無い、ツール、言語、、、 社内でダレもやったこと無い作業をやる時、 ワクワクしますよね? えっ、やりたくない、、、? スキーで新雪を行くか、それとも、人の跡をなぞるか みたいなものですね。。。 *スキー・スノボやらない運動音痴に言われたくないって?  あっ、ソリならやったことアルよ、、、 道に迷って、道を覚えるみたいで、 失敗しながら自分の道を見つけていくのが、 いいのでしょう でも、仕事でやるとなると、なんか、、、臆病になって・・・・ 回り道でも、目的地につけば、よしと思って、、、 何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。


検索して目的の情報を探す。

目的の情報を探すには、最近はググれとよく聞きます。なので、検索ボックスを付けました。
いろいろなキーワードを入れて、検索してみてください。

カスタム検索
三流君(site:www.ken3.org) 内を Googleを利用してキーワード する

ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。

質問や要望など メッセージを送る(三流君に連絡する)

質問や要望など連絡方法でお互い確認が取りやすく、便利なのが掲示板なのですが、私の対応のまずさから不定期で荒れてしまい、掲示板は現在封鎖中です。(反省しなきゃ)
感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。
あなたのお名前(ニックネーム):さん
返信は?: 不用(HP更新を待つ) , E-mail→ アドレス:に返事をもらいたい



(感想や質問・要望 メッセージはHPで記事に載せることがあります。)

急ぎで連絡がほしい、そんな時は:[三流君連絡先]に連絡してください。

リンクや広告など

項目別に↓に人気の記事をまとめてみました。お探しのジャンルを選択してください。
人気記事(来場者が多いTOP3):
[VBAでIE,WebBrowserを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[Access から Excel 連携 CreateObject("Excel.Application")]・・・AccessからExcelを操作したりデータの書き出しなどです
[VBAでOutlookの操作 CreateObject("Outlook.Application" )]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う]

仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力]

Excel関係:
[Excel UserFormを操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
[ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
[Excel関係 関数、その他]・・・その他Excel関係です

Access関係:
[Access UserForm/サブフォーム 操作]・・・アクセスでフォームを使ったサンプルです
[Access レポート操作]・・・レポートを操作してみました
[Access クエリーやその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です

その他:VBAの共通関数やテキストファイルの操作など
[VBAでテキストファイル(TextFile)の操作]・・・普通のテキストファイルを使ったサンプルです
[VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます

Blog:[三流君の作業日記]/ [サンプルコードのゴミ箱]/ 広告-[通販人気商品の足跡]



[三流君(TOP ken3.org へ戻る)] / [VBA系TOPへ] / [VBA系バックナンバー目次へ移動]