[No.125 Excel 起動画面を表示しないで、UserFormを開く]
[No.126 Access Like演算子でパターンマッチングしてみた]
[No.127 要求を聞き、疑問点をつぶし、仕様書を書く]
[No.128 AccessにExcelのシートをインポートする]
[No.129 Access いろいろとクエリーでグループ集計をしてみる]
www.ken3.org(サイト内)から Google を利用して、

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



No.125 2003/09/13
Excel 起動画面を表示しないで、UserFormを開く
[ページTOPへ戻る]

<Excel 起動画面を表示しないで、UserFormを開く>

どうも、 最近、質問もらうけど、 なかなか、解答できてない三流プログラマーのKen3です。 ※私のレベルで手に余る高度な質問が多くて。  (返信遅いのは、答えられないからで、   お金払えば答える、有料版の読者にしか答えない、そんなことは無いので・・・   有料版読者の質問に優先的に答えてはいますが、、、、)

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

質問のメッセージをもらいました。 ----- In message "QA B-ETC - No.0", >次のようなことは、できるのでしょうか。 >Excelファイルを開いたときに、Excel画面を表示させずに、ユーザーホームだけを >表示させる方法はないのでしょうか。 ----- Excelの画面を表示させないでかぁ・・・

/* * 2.普通のパターン */

通常は、test999.xlsとExcelのファイルがあったら、
Public Sub Auto_Open() '読み込み時に実行される
    Application.Visible = False 'アプリを見えなくする
    UserForm1.SHOW  'ユーザーフォームの表示
End Sub
なんて感じで、Excelが起動したら、 Application.Visible = False 'アプリを見えなくする で、Excel本体を隠して、 UserForm1.SHOW 'ユーザーフォームの表示 で、ユーザーフォームを表示させてます。

/* * 3.苦肉の策、VBSでExcelを起動してみる。 */

test999.xlsをダブルクリックすると、 どうしても、Excelが起動してしまう。 これを回避したいので、xxxx.vbsとvbScriptで起動してみたいと思います。 拡張子を.vbsとしてファイルを作成します。 ~~~~~~~~~~~~~ test.vbsとファイルを作成してください(拡張子に注意) ^^^^^^^^ msgbox "test" なんて一行書いて、保存。 ダブルクリックで実行すると、 あらら不思議、メッセージが表示されたよ。 ↑実行結果画面 これがウイルスの温床と噂のVBスクリプトってヤツですね。 よんでね.VBSとか、I Love Youとファイル名を付けて、添付する・・なんてヤツですね。 まぁ、そんな話は、置いといて、 Excelのオブジェクトを作って、Excelを起動します。 Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True 'Only XL 97 supports UserControl Property On Error Resume Next oApp.UserControl = True '*1↓頭にCreateObjectで作成した変数を追加しただけ oApp.Workbooks.Open FileName:="E:\work\test999.xls" '^^^^ おいおい、コンパイルエラーかよ(笑) ↑エラー画面 あっ、VBScriptって変数の型指定ができないんだっけ、 Dim oApp As Object みたいに、As XXXXはダメなんだっけ、忘れてた。 これを取って、 えっ、まだダメなの? oApp.Workbooks.Open FileName:="E:\work\test999.xls" の場所? oApp.Workbooks.Open "E:\work\test999.xls" と引数の名前指定を外して見た(う〜ん、後で調査ですね) 無事、固定のファイルが開けたので、 ユーザーフォームを開きますか、 と、同時に、Excelは隠しておきたいんだっけ。 test999.xls内に、ユーザーフォームを表示するSub関数を1つ作ります。 'フォームを開くモジュール
Public Sub SHOW_UserForm1()
    UserForm1.SHOW
End Sub
こんな感じで、1つ、フォームを開くモジュールを作成します。 次に起動用のtest.vbsファイルを作成します 'test.vbs '^^^^^^^^^ Dim oApp Set oApp = CreateObject("Excel.Application") oApp.Visible = False '不可視にする 'Only XL 97 supports UserControl Property 'On Error Resume Next oApp.UserControl = True 'Excelファイルを開く oApp.Workbooks.Open "E:\work\test999.xls" 'ユーザーフォームを表示するマクロを呼ぶ oApp.RUN "SHOW_UserForm1" 'ここまで 簡単な解説は、 Set oApp = CreateObject("Excel.Application") で、Excelのオブジェクトを作成して、 oApp.Visible = False '不可視にする と、不可視にする。 その後、 oApp.Workbooks.Open "E:\work\test999.xls" で、目的のExcelファイルを読み込んだら、 oApp.RUN "SHOW_UserForm1" と、ユーザーフォームを開くマクロを起動する。 無事、フォームが表示されると思います。

/* * 4.メモリに残りっぱなし・・・ */

さてと、これで安心してはイケマセンよ(笑) 私の作るプログラムらしく、 フォームを終了すると、見た目は何も無くなってます。 ですが、Ctrl+Alt+Delでタスクを見てみると、 あれ?Excelが残っているよ・・・ ↑プロセスが残っている・・(タスクマネージャーで確認) これを終了させたいよね。 まぁ、普通にフォームを閉じた時に、自身のアプリを消しますか。
Public Sub Auto_Open() '読み込み後に実行される
    Application.Visible = False 'アプリを見えなくする
    UserForm1.SHOW  'ユーザーフォームの表示
    Application.Quit 'アプリを終了する
End Sub
単純に、 Application.Quit 'アプリを終了する と、 フォームの表示後(閉じられた後)に、.Quitしてみました。 あれれ・・・まだ残っているよ・・・ これだけじゃ、ダメなんですね。。。 う〜ん、うまく行ったと思ったんだけどなぁ・・・ Excelのプロセスを完全に消さないと、完璧とは言えないですね。 -【けんぞう!】--------------------------------------------------------- 転職関係、在宅プログラマー、SOHOの広告まとめました http://www.ken3.org/etc/500yen/zaitaku.html いろいろとあるので転機の人はぜひ 登録料無料、匿名で探せるので在宅で小金稼ぎの人も見てね ~~~~~~~~~~~~~~~~ オレ様、私は、SE様だ、月給30万以上ボーナス100万を探すのもありだよ。 私にみたいにVBA少しできるぐらいだと仕事無いよ・・・なんて冷たく、 と軽く言われても匿名なら気にならないし(笑) 逆にこんな簡単な仕事で月給27万貰えるの?って会社もあるし、世の中イロイロ。 http://www.ken3.org/etc/500yen/job.html ------------------------------------------------------------------------ 

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

どうでしたか? 今回は、なんとか、Excel残りつつも、半分は回答までもっていけたなぁ。。。 最近、回答率低くって・・・(オイオイ) なんて、いつもの自分落としネタを書いておいて、 Excel残りの回避を考えないとなぁ。 Excel/Access大好き、三流プログラマーKen3でした。

No.126 2003/09/16
Access Like演算子でパターンマッチングしてみた
[ページTOPへ戻る]

<Access Like演算子でパターンマッチングしてみた>

どうも、三流プログラマーのKen3です。 最近、質問もらうけど、 なかなか、解答できてない三流プログラマーのKen3です。 ※私のレベルで手に余る高度な質問が多くて。 今回の、サンプルファイルは、 http://www.ken3.org/vba/lzh/vba126.lzh にdb126.mdb(Access2000版)が保存されています。

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

ヤバイ・・・ほったらかしの問題が、多いんだよね。 http://www.ken3.org/backno/backno_vba22.html#107 の No.107 Access サブフォームの明細データを検索、メインを移動 で、 メンバーを検索、親のグループを移動、なんて処理を作ったんだけど、 イロイロと課題を残したままでした。 まぁ、クリアしたい課題は、 テーブルにはフルネームで入っているけど検索は一部でしたい (複数レコードが該当(メンバー名で同じ名前)した場合) なんて感じの処理かなぁ。 親テーブル名:T_バンド名 バンドID オートナンバー バンド名称 テキスト 備考 メモ型 子テーブル名:T_メンバー 個人ID オートナンバー バンドID 長整数型(親テーブルとリンクする) 名前 文字型 楽器 文字型 出身地 文字型 生年月日 日付型 *今回関係ないけど 備考 文字型 *今回関係ないけど と、テーブルがあって、データが (野球のデータ入れるけどカンベンしてね、あっ阪神優勝おめでとう・・・) テストデータ 親テーブル名:T_バンド名 ^^^^^^^^^^^^ バンドID バンド名称 備考 1 BOOWY 伝説のバンド? 2 てすと モーニング娘はメンバー多いしバンドじゃないし(笑) 3 てすとですよ う〜ん、音楽関係、無知(笑) 4 プロ野球 野球選手 テストデータ 子テーブル名:T_メンバー ^^^^^^^^^^^^ 個人ID バンドID 名前 楽器 出身地 生年月日 備考 1 1 氷室 群馬 2 1 布袋 群馬 3 1 松井 群馬 4 1 高橋 福島 5 2 Ken3 東京 6 2 ZZZ 神奈川 7 2 AAA 東京 8 3 ジャガイモ 北海道 9 3 リンゴ 青森 10 3 メロン 北海道 11 3 コメ 新潟 12 2 高橋 愛 どこ? 13 4 高橋 雅裕 不明 14 4 高橋よしのぶ 不明 15 4 高橋ひさのり 不明 なんて感じのデータがあった時、 名前の検索で、高橋が指定された時に、 現在のDlookupで検索だと、対応できない。 今回は、リストボックスを使って、選択してみたいと思います。 --- 枠外・余談 --- 高橋と言えば高橋 雅裕でしょ(オイオイ) 高橋 愛?ダレそれ?・・・オイオイ 高橋と言えば、思い浮かぶのは、人それぞれだと思います。 プロ野球だと、高橋よしのぶ/ひさのり(漢字知らなくて(笑)) 高橋 雅裕?ってダレって人も多いと思います。 名古屋電気高から大洋ホエルズに83(4)〜 96年に千葉ロッテへ移籍 Ken3が好きだった選手の一人なんですね。 ^^^^^^^^^^^^^^^^^^^^^^^^^^ ピーク時は、 88年は遊撃手としては打率.293、守備率.989と12球団トップだったが、 タイトルは全て立浪に持っていかれる。 ※88〜89年、山下を超える連続守備機会無失策の新記録(353)も達成したが、  翌年からは、あれ?ポロポロと失策王の道へ、、外野へコンバート? 月刊ホエールズの「まーちゃんのおしゃべり泥棒」なんてのもあったなぁ。 今、名ショートと言えば、ヤクルト宮本選手や巨人の川相選手って感じだけど。

/* * 2.データが複数存在するかDCount関数とLike演算子で判断する */

まずは、データが複数存在するか、判断しますか。 元のソースは、
Private Sub btn検索_Click()
    Dim str検索条件     As String
    Dim str検索されたID As String
    
    'フォームの値を元に検索条件を作成する
    str検索条件 = "名前 = '" & Me!txt検索 & "'"

    'str検索条件を条件にバンドIDをT_メンバーテーブルから検索する
    str検索されたID = "" & DLookup("バンドID", "T_メンバー", str検索条件)

    '結果のテスト表示
    If str検索されたID = "" Then '検索できなかった?
        MsgBox Me!txt検索 & "は、見つかりませんでした"
    Else
        'データを移動させる
        DoCmd.GoToControl "バンドID"  'コントロールをIDへ移動
        DoCmd.FindRecord str検索されたID    'データを検索する
    End If

End Sub
こんな感じです、 ここに、高橋でパターンが一致するデータを数えるか。 データを数えるのって? Dcount関数があったから、これを使ってみますか。 Dcount関数のヘルプを見ると、 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expression.DCount(Expr, Domain, Criteria) =DCount("[受注コード]", "受注", "[出荷先都道府県] = '愛知県'") ってことは、 =DCount("フィールド名", "テーブル/クエリー", "検索条件") って感じだから、 nRCount = DCount("メンバー名", "T_メンバー", "名前 Like '*高橋*'") とすればOKかなぁ。 ※テストで確認したいときは、イミディエイト ウインドウを使って、 ? DCount("名前", "T_メンバー", "名前 Like '*高橋*'") 5  って感じで、テストすると、簡単ですよ。 ↑確認イメージ画面。 オイ、なんだよ条件に指定してある、 "名前 Like '*高橋*'"って? あっ、これですか? 通常 名前 = '高橋'なんて感じでイコールの完全一致なんだけど、 Like演算子を使用して、*や?を使って、パターンのマッチングが出来るんですよ。 名前 Like '*高橋*' とすることで、高橋を含むデータを取り出すことができます。 ※Like演算子、知っとくと便利ですよ。 さてと、カウント処理を組み込んでみましょう。
Private Sub btn検索_Click()
    Dim str検索条件     As String
    Dim str検索されたID As String
    Dim nRCNT           As Integer  '検索されたレコード数
    
    'フォームの値を元に検索条件を作成する
    'Like演算子と*を前後に勝手に付けるNo.126で追加、ついでにtrimも
    str検索条件 = "名前 Like '*" & Trim(Me!txt検索) & "*'"

    'データを条件指定で検索して、該当数を求める
    nRCNT = DCount("名前", "T_メンバー", str検索条件)

    '検索結果によって、処理を分ける
    Select Case nRCNT
        Case 0: 'レコード数=0 見つからなかった
            str検索されたID = "" 'IDに見つからなかった印として、""を代入
            MsgBox Me!txt検索 & "は、見つかりませんでした"
        Case 1: '1件見つかった(単独の時)
            'str検索条件を条件にバンドIDをT_メンバーテーブルから検索する
            str検索されたID = "" & DLookup("バンドID", "T_メンバー", str検索条件)
            '↑バンドIDがほしかったので、DLookupでバンドIDを検索する
        Case Is >= 2:  '2件以上の時(Case Elseでも可能)
            '複数データがあったので、別フォームから選択させる
            MsgBox "複数見つかったよ、選んでね"
    End Select

    'データを移動させる
    If str検索されたID <> "" Then 'バンドIDがセットされている?
        DoCmd.GoToControl "バンドID"  'コントロールをIDへ移動
        DoCmd.FindRecord str検索されたID    'データを検索する
    End If

End Sub
変更したポイントは、 ^^^^^^^^^^^^^^^^^^^^ str検索条件 = "名前 Like '*" & Trim(Me!txt検索) & "*'" で、検索条件を 名前 Like '*高橋*' とテキストボックスの前後に*を+した。 次に、メンバーテーブルから、名前のパターンが一致するレコード件数を nRCNT = DCount("名前", "T_メンバー", str検索条件) のように、DCount関数を使い、求めます。 あとは、求められた件数によって、分岐させてます。 Select Case nRCNT Case 0: 'レコード数=0 見つからなかった str検索されたID = "" 'IDに見つからなかった印として、""を代入 MsgBox Me!txt検索 & "は、見つかりませんでした" Case 1: '1件見つかった(単独の時) 'str検索条件を条件にバンドIDをT_メンバーテーブルから検索する str検索されたID = "" & DLookup("バンドID", "T_メンバー", str検索条件) '↑バンドIDがほしかったので、DLookupでバンドIDを検索する Case Is >= 2: '2件以上の時(Case Elseでも可能) '複数データがあったので、別フォームから選択させる MsgBox "複数見つかったよ、選んでね" End Select 普通に、 Case 0:だったら、該当データ無しにして、 Case 1:だったら、1件見つかったので(複数じゃないので)     親のバンドIDをそのまま求めます。 Case Is >= 2: 初めて書いたけど、2以上なら、複数なのでさらに選択処理を行う。     0と1以外のCase Elseって書き方でもいいけど、複数を強調したかったので、     気分で、Case Is >= 2としてみました。 なんとか、分岐したね。 あとは、複数時の選択処理ですね。 --- 余談・補足 --- イミディエイト ウインドウ? って感じの人は、 http://www.ken3.org/vba/iwind.html に イミディエイト ウインドウ(Ctrl+G) と Debug.Print なんて感じて、軽く書いてあるので、見てください。 関数の簡単なテスト実行など、できます。

/* * 3.データを選択後、結果を返すフォームを作成する */

ここまで、なんとか、できたので、 あとは、 高橋 愛 高橋 雅裕 高橋よしのぶ 高橋ひさのり を 選択させる処理を作成するか。 http://www.ken3.org/backno/backno_vba19.html#91 の No.91 Access ダイアログフォームって?何? acDialogとPublic変数を使用 で、 ダイアログフォームとPublic変数を使用して、 リストボックスから選択した値を返す方法をテストしてました。 この方法を使ってみたいと思います。 フォームを1つ作ります。 フォーム名: F_名前選択 リストボックス lst名前 選択ボタン btn選択 キャンセルボタン btnキャンセル 上記、3つのコントロールを配置します。 ↑画面イメージ リストボックス(lst名前)は、 ^^^^^^^^^^^^^^^^^        子テーブル名:T_メンバー 親テーブル名:T_バンド名   個人ID オートナンバー バンドID オートナンバー <--> バンドID 長整数型(親テーブルとリンクする) バンド名称 テキスト 名前 文字型 備考 メモ型 楽器 文字型 バンドIDでテーブルをつなげて、 バンドID,バンド名称,名前 を表示するように設定します。 まず、リストボックスのプロパティで、 値集合ソースを選択して、..のビルドボタンを押します ↑ビルドを押す画面イメージ すると、クエリーウィザードが起動するので、 テーブルをつなげて、表示データを作ります ↑クエリーの作成イメージ あとは、列見出しや幅のプロパティを調整します。 ここで、フォームを実行すると、 データがリストボックスに表示されると思います。 ↑リストボックス、フォームのイメージ あれれ、全部のデータが表示されているよ。 まぁまぁ、それは、最後に取っといて(オイオイ) 次に、標準モジュールに、Public変数とフォームの起動関数を書きます。 Public str選択バンドID As String 'グローバルでIDのエリアを取る 'フォームを開き、選択されたバンドIDを返す
Function SELECT_メンバー名()

    Dim stDocName As String
    Dim stLinkCriteria As String

    str選択バンドID = ""  'グローバル変数の初期化

    stDocName = "F_名前選択"
    'acDialog指定でフォームを開く
    DoCmd.OpenForm stDocName, , , stLinkCriteria, , acDialog

    'フォーム終了後、
    SELECT_メンバー名 = str選択バンドID  'リターン値として返す

End Function
グローバルで、確保した変数、 str選択バンドIDを””で初期化してから、 F_名前選択フォームを開きます。 acDialog指定なので、フォームが閉じられたら、制御が戻ってきます。 フォーム側でグローバル変数に選択結果がセットされているので、 SELECT_メンバー名 = str選択バンドID として、リターン値で値を返します。 F_名前選択フォーム側には、 まず簡単なのが、btnキャンセルの処理。 これは、キャンセルボタンがクリックされたら、何もしないでフォームを閉じます。
Private Sub btnキャンセル_Click()
    DoCmd.Close  '何もしないで閉じる
End Sub
クリックイベントに、DoCmd.Closeを書いただけでした。 次は、本命、選択ボタンがクリックされた時。 これも、あっけないんだけど、
Private Sub btn選択_Click()
    'リストボックスの値をグローバルにセットする
    str選択バンドID = Me!lst名前.Value
    '↑連結列でリストボックス(1列目)はバンドIDにしてあるので
    '値をそのまま代入してみた
    'フォームを閉じる
    DoCmd.Close  '閉じる
End Sub
クリックイベントで、 リストボックスの値をグローバルstr選択バンドIDにセットして、 フォームを閉じました。 フォームが閉じられると、 stDocName = "F_名前選択" 'acDialog指定でフォームを開く DoCmd.OpenForm stDocName, , , stLinkCriteria, , acDialog 'フォーム終了後、 SELECT_メンバー名 = str選択バンドID 'リターン値として返す と、 SELECT_メンバー名 = str選択バンドID の代入処理が走り、選択した値がFunction関数で返る、そんな仕組みです。 ※なんか、スムーズじゃないんだけどね。。。

/* * 4.リストボックスに条件を追加する */

さて、ここまで出来たので、あとは、 F_名前選択のリストボックスで、 条件指定してデータを表示すればOKかなぁ。 条件指定の方法、簡単な方法は、 リストボックスのクエリーに条件を追加します。 追加する条件は、名前の条件に、 Like "*" & Forms![F_Main]![txt検索] & "*" を追加します。 ↑クエリーに条件を追加したイメージ Forms![F_Main]![txt検索] と、メインフォームの検索条件、[高橋 ]と入力されているので、 それを使用しただけでした。 SELECT_メンバー名の関数で、メンバー選択後のバンドIDが返ってくるので、
Private Sub btn検索_Click()
    Dim str検索条件     As String
    Dim str検索されたID As String
    Dim nRCNT           As Integer  '検索されたレコード数
    
    'フォームの値を元に検索条件を作成する
    'Like演算子と*を前後に勝手に付けるNo.126で追加、ついでにtrimも
    str検索条件 = "名前 Like '*" & Trim(Me!txt検索) & "*'"

    'データを条件指定で検索して、該当数を求める
    nRCNT = DCount("名前", "T_メンバー", str検索条件)

    '検索結果によって、処理を分ける
    Select Case nRCNT
        Case 0: 'レコード数=0 見つからなかった
            str検索されたID = "" 'IDに見つからなかった印として、""を代入
            MsgBox Me!txt検索 & "は、見つかりませんでした"
        Case 1: '1件見つかった(単独の時)
            'str検索条件を条件にバンドIDをT_メンバーテーブルから検索する
            str検索されたID = "" & DLookup("バンドID", "T_メンバー", str検索条件)
            '↑バンドIDがほしかったので、DLookupでバンドIDを検索する
        Case Is >= 2:  '2件以上の時(Case Elseでも可能)
            '複数データがあったので、別フォームから選択させる
            MsgBox "複数見つかったよ、選んでね"
            str検索されたID = SELECT_メンバー名() '複数選択のフォーム処理
    End Select

    'データを移動させる
    If str検索されたID <> "" Then 'バンドIDがセットされている?
        DoCmd.GoToControl "バンドID"  'コントロールをIDへ移動
        DoCmd.FindRecord str検索されたID    'データを検索する
    End If

End Sub
追加したのは、 Case Is >= 2: で2件以上を判断したら、 str検索されたID = SELECT_メンバー名() '複数選択のフォーム処理 と、複数のデータを選択してみました。 ↑高橋を検索したイメージ -【けんぞう!】--------------------------------------------------------- 転職関係、在宅プログラマー、SOHOの広告まとめました http://www.ken3.org/etc/500yen/zaitaku.html いろいろとあるので転機の人はぜひ 登録料無料、匿名で探せるので在宅で小金稼ぎの人も見てね ~~~~~~~~~~~~~~~~ オレ様、私は、SE様だ、月給30万以上ボーナス100万を探すのもありだよ。 私にみたいにVBA少しできるぐらいだと仕事無いよ・・・なんて冷たく、 と軽く言われても匿名なら気にならないし(笑) 逆にこんな簡単な仕事で月給27万貰えるの?って会社もあるし、世の中イロイロ。 http://www.ken3.org/etc/500yen/job.html ------------------------------------------------------------------------ 

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

今回は、Like演算子を使用して、検索文字の一部を入力させて、 名前 Like '*高橋*'みたいな、パターンマッチングに挑戦してみました。 今回の、サンプルファイルは、 http://www.ken3.org/vba/lzh/vba126.lzh にdb126.mdb(Access2000版)が保存されています。 ※実際にデータを検索しながら、試してみてください。 なんか、処理的にまだまだなんだけど、何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。

No.127 2003/09/17
要求を聞き、疑問点をつぶし、仕様書を書く
[ページTOPへ戻る]

<要求を聞き、疑問点をつぶし、仕様書を書く>

どうも、三流プログラマーのKen3です。 最近、質問もらうけど、 なかなか、解答できてない三流プログラマーのKen3です。 ※私のレベルで手に余る高度な質問が多くて。

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

質問をHPの感想書き込みでもらいました。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 質問者をお客様と見立てて、 勝手なストーリーを数回展開していく予定です。 ※質問者にしてみれば、メルマガ書いてるヒマあったら、  回答速くヨコセって感じだと思うけど。 下記、もらった質問です。 ------------------------ 郵便番号についての集計を行うのですが、 条件が複数あり、どのように組めばいいのか迷っています。 使用するのはエクセル2000もしくはアクセスの2000。 元データはエクセルで保存されています。 条件 1郵便番号として入力した数値の選別・集計  1.7桁そろっているもの  2.3桁しかないもの  3.2桁しかないもの  4.その他  5.△(4で説明) 2選別した郵便番号の番号順にセルに貼り付ける 31の1.以外に該当したものは別のシートに分ける 4ただし、集計した全ての郵便番号の中で数が1〜9の場合は  「△」という名前にして集計表の最後に表示する。   (この△の場合、郵便番号欄が△という名称になる) 5選別した1〜5の色を分ける 5印刷の幅が決まっていて、郵便番号欄・集計数のセル幅が8.50、  セルの高さが13.50 A4用紙横で並べてゆき、足りない場合は  改ページを行う。(エクセルでの高さ、幅) ・・・注文が多くて申し訳ありません。 大変失礼な質問と思いますが、どうかよろしくお願い致します。 もし、アドバイスを頂けたら、と思います。 ---------

/* * 2.ステップ1 やりたいことの理解 */

さてと、いきなりプログラムを組み始める人も居るけど、 通常は、やりたいことを理解します。 なんとなく、データを集計するんだなぁといったイメージは、わかりました。 処理やシステムの理解で、ポイントは、データの流れなので、 入力されるデータ(もらえるデータ) と 処理して出力するデータ(結果・成果物、印刷、表示) を中心にイメージすると、わかりやすいと思います。 ※はじめのデータと結果から、途中をイメージする方法です。

/* * 3.ステップ2 疑問点を洗い出し、質問してつぶす */

次は、わかったフリしないで、疑問点をまとめて、 もし疑問点があったら、依頼元に質問を出します。 今回私が、出した質問メールは、 ---------- イメージが少し沸かない部分があるので、メールしました。 >郵便番号についての集計を行うのですが、 >条件が複数あり、どのように組めばいいのか迷っています。 >使用するのはエクセル2000もしくはアクセスの2000。 >元データはエクセルで保存されています。 まず、元データがExcelのシートに保存されていると思います。 これは、下記のようにA列に郵便番号が入っている、そんな感じですか? A列 2200001 1940001 123 444 それとも、住所やその他、データが付いているのですか? >条件 >1郵便番号として入力した数値の選別・集計 > 1.7桁そろっているもの > 2.3桁しかないもの > 3.2桁しかないもの > 4.その他 > 5.△(4で説明) >2選別した郵便番号の番号順にセルに貼り付ける 単純に、コードの順番か? >31の1.以外に該当したものは別のシートに分ける 7桁そろっているもの と 3桁しかないもの,2桁しかないもの,その他,△(4で説明) の2つの結果シートを作成する? >4ただし、集計した全ての郵便番号の中で数が1〜9の場合は > 「△」という名前にして集計表の最後に表示する。 >  (この△の場合、郵便番号欄が△という名称になる) 集計とは、同じ郵便番号を数えるのか? 郵便番号 集計数 1940001 5 2280002 20 3010005 6 だったら、 この1940001のデータは、△にする? そして、表の最後に持ってくる。 とすると、3010005の6個も?△となる、そして最後に移動すると、 郵便番号 集計数 2280002 20 △△△ 5 △△△ 6 となるのか? >5選別した1〜5の色を分ける まぁ、イロを付けるとして、 >5印刷の幅が決まっていて、郵便番号欄・集計数のセル幅が8.50、 > セルの高さが13.50 A4用紙横で並べてゆき、足りない場合は > 改ページを行う。(エクセルでの高さ、幅) これは、横に並べる、 郵便番号 集計数 郵便番号 集計数 郵便番号 集計数 2280002 20 2280003 15 2280005 20 △△△ 5 △△△ 6 と、左から右、次の行か? それとも、縦に並べて、上から下、次の列? 郵便番号 集計数 郵便番号 集計数 郵便番号 集計数 2280002 20 2600003 15 330005 20 2280003 15 2280005 12 ・  ・ △△△ 6 ---------------- と、疑問点を相手に伝え、回答を待つ。 メールで軽く質問したけど、 質疑応答表(票) ^^^^^^^^^^^^^^^^ なんて感じで、日付・回答期限・回答者など付いた、 正式なフォーマットを使用している会社もあると思うので、 ^^^^^^^^^^^^^^^^^^先輩に聞いてみてください。

/* * 4.回答をもらったら、疑問がつぶれたか確認する */

質疑応答表(票)を送ると(質問・疑問を送ると) しばらくすると、回答が来ます。 こちらの疑問がつぶれたか、心の中のヤバイ空気、ドス黒い疑問が晴れたか確認します さらに、疑問が発生したら、その疑問に対して、また質問を投げかけます。 もらった回答は、下記のような感じです。 (かなり、見えてきましたね) 下記、もらった回答です。 -------- イメージの補足についてご説明させていただきます。 > > まず、元データがExcelのシートに保存されていると思います。 > これは、下記のようにA列に郵便番号が入っている、そんな感じですか? > > A列 > 2200001 > 1940001 > 123 > 444 > > それとも、住所やその他、データが付いているのですか? >  これは住所や電話番号などが、順番についています。  A列に郵便番号・B列に氏名・C列に住所・D列に電話番号・・・  とエクセルシートに横並びに入力されています。 > >条件 > >1郵便番号として入力した数値の選別・集計 > > 1.7桁そろっているもの > > 2.3桁しかないもの > > 3.2桁しかないもの > > 4.その他 > > 5.△(4で説明) > > >2選別した郵便番号の番号順にセルに貼り付ける > 単純に、コードの順番か? はい。コードの順番です。 > > >31の1.以外に該当したものは別のシートに分ける > > 7桁そろっているもの > と > 3桁しかないもの,2桁しかないもの,その他,△(4で説明) > の2つの結果シートを作成する?     そうです。結果シートが2つになります。 > > >4ただし、集計した全ての郵便番号の中で数が1〜9の場合は > > 「△」という名前にして集計表の最後に表示する。 > >  (この△の場合、郵便番号欄が△という名称になる) > > 集計とは、同じ郵便番号を数えるのか? > 郵便番号 集計数 > 1940001 5 > 2280002 20 > 3010005 6 > だったら、 > この1940001のデータは、△にする?      そのとおりです。 > そして、表の最後に持ってくる。 > とすると、3010005の6個も?△となる、そして最後に移動すると、 > 郵便番号 集計数 > 2280002 20 > △△△ 5 > △△△ 6 > となるのか?   この場合は   2280002 20   △△△  11(上の△部分の和)になります。郵便番号の区別無く、   △として処理、加算します。 > > >5選別した1〜5の色を分ける > > まぁ、イロを付けるとして、 > > >5印刷の幅が決まっていて、郵便番号欄・集計数のセル幅が8.50、 > > セルの高さが13.50 A4用紙横で並べてゆき、足りない場合は > > 改ページを行う。(エクセルでの高さ、幅) > > これは、横に並べる、 > 郵便番号 集計数 郵便番号 集計数 郵便番号 集計数 > 2280002 20 2280003 15 2280005 20 > △△△ 5 > △△△ 6 > と、左から右、次の行か? > > それとも、縦に並べて、上から下、次の列? > 郵便番号 集計数 郵便番号 集計数 郵便番号 集計数 > 2280002 20 2600003 15 330005 20 > 2280003 15 > 2280005 12 > ・ >  ・ > △△△ 6 たてに郵便番号、その横に、集計数、最後に三角となります。簡単ですが エクセルイメージを添付させていただきます。(2シートにしています) -----

/* * 5.設計にとりかかる */

疑問も解決してきたので、 これくらい、設計無しでも?といった、上級者のかたも居るかもしれませんが、 ラフでも、流れぐらいは書かないと。 OS、使用言語・動作条件など ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ あまり書かないけど、Windows2004で動かない、 Access2005でエラー発生した、、、など、環境変わった時のタメに、 キチント仕様書には、OSや言語を明記しますか。 ※いちばんありうるのは、Access97とExcel97の古いマシーンでも動かしたい  なんて感じで、あとから言われるパターンかなぁ。  だったらAccess97で作ったのに・・2000で作ったからフォームが・・なんてね。 Excel2000とAccess2000の環境で、今回は作成します。 ※まぁ、ぐだぐだと基本設計書、要求仕様書がこんな感じで続くけど、  今回はパスします(オイオイ) 次に詳細設計に入ります。 プログラマーさん達が最低限ほしいのは、入力のフォーマットと出力、 中身の計算、集計処理内容なので、まず、そこら辺からつぶすと、 入力データ/入力ファイルフォーマット ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ チャント分析すると、いつ・どこで・ダレが・このデータを作成する。 データの作成・閲覧・変更・削除の権限は?なんて堅いこと書くけど、 手抜きでシンプルに、 集計データはExcel2000のシートに保存されています。 A列 B列 C列 D列 郵便番号 氏名 住所 電話番号 700-0941 あべ*** 岡山県岡山市・・・ 090-9999-9999 別紙、xxxx.xls参照とかやって、逃げるのもアリかなぁ ※質問者からは、丁寧なxlsファイルをもらいました。 ↑入力シートイメージ 集計処理(集計ルール) ^^^^^^^^^^^^^^^^^^^^ あとは、入力データをどんな感じで、 集計したり、加工したりするルールを書くんだけど、 1.データのインポート Excel2000の住所データをAccess MDBへインポートする。  郵便番号の項目をインポートする 2.集計処理 郵便番号をカウントする 郵便番号が7桁そろっているものを集計する 同様に、3桁しかないもの,2桁しかないもの,その他 を集計する。 集計結果が10以下(1〜9)のデータは、最後に△で集計する。 3.結果の出力 データをExcelシートへ出力する たぶん、上記文章で書いても作業者から質問来るので、 質疑応答票を添付して、お客さんとのやりとりを見せたほうが、 話が早かったりします。 出力データ/出力、印刷イメージ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 出力は、Excelのシート2枚です。 シート1(7桁正しいデータ) 郵便番号 集計数 000-0001 20 000-0002 19 000-0003 18 000-0004 11 郵便番号が正しく7桁そろっているもの、 なおかつ、集計数が10以上の ものが郵便番号の番号順に並ぶ。 ↑出力シートイメージ シート2(7桁以外のデータ) 郵便番号 集計数 郵便番号 集計数 561 15 98 13 562 16 97 56 ←郵便番号が2桁しかないもの、なおかつ 563 20 78 35  集計数が10以上のものを番号順に並べる 564 36 565 29 2 15 ←郵便番号が1桁しかないもの、なおかつ 566 39 3 20  集計数が10以上のものを番号順に並べる 567 11 568 22 △△△ 1045 569 44 ↑ 郵便番号の集計で1〜9までのモノがあれば 570 33 △△△として郵便番号が何桁であろうが 571 55 この部分に計上することになる。 572 66 ↑ 郵便番号が3桁しかないもの、なおかつ 集計数が10以上のものを番号順に並べる -【けんぞう!】--------------------------------------------------------- 転職関係、在宅プログラマー、SOHOの広告まとめました http://www.ken3.org/etc/500yen/zaitaku.html いろいろとあるので転機の人はぜひ 登録料無料、匿名で探せるので在宅で小金稼ぎの人も見てね ~~~~~~~~~~~~~~~~ オレ様、私は、SE様だ、月給30万以上ボーナス100万を探すのもありだよ。 私にみたいにVBA少しできるぐらいだと仕事無いよ・・・なんて冷たく、 と軽く言われても匿名なら気にならないし(笑) 逆にこんな簡単な仕事で月給27万貰えるの?って会社もあるし、世の中イロイロ。 http://www.ken3.org/etc/500yen/job.html ------------------------------------------------------------------------ 

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

今回は、 プログラム作成依頼が来たら、どんな感じで設計するか、 そんな話でした。 ※なんか、うまく書けなかったけど。 何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。

No.128 2003/09/17
AccessにExcelのシートをインポートする
[ページTOPへ戻る]

<AccessにExcelのシートをインポートする>

どうも、三流プログラマーのKen3です。 最近、質問もらうけど、 なかなか、解答できてない三流プログラマーのKen3です。 ※私のレベルで手に余る高度な質問が多くて。

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

前回、軽く郵便番号の集計システムの設計をしました。 今回は、データのインポート方法を探ってみたいと思います。 入力データ/入力ファイルフォーマット ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 集計データはExcel2000のシートに保存されています。 A列 B列 C列 D列 郵便番号 氏名 住所 電話番号 700-0941 あべ*** 岡山県岡山市・・・ 090-9999-9999 ・ ・ Excelのシートをインポートする方法を探ってみます。

/* * 2.シートをインポートするマクロを作成する */

AccessでVBAで組まなくても、 繰り返し行う操作をマクロ登録する機能があります。 マクロの新規作成を選択して、 アクションを探ると、 おっ、ワークシート変換なんてのがありますね。 これを使ってみるか。 ↑マクロのアクションを選択したイメージ ワークシートの変換を選択すると、 イロイロとパラメータを入れろと画面が出てくる。 変換の種類は、インポートだろ、 次は、ワークシートの種類か、Microsoft Excel 8-10と規定値のまま使用、 テーブル名はMOTO_DATA、 ファイル名は、e:\work\data.xlsとデータの位置をセット、 フィールド名は、はいにして先頭行をフィールド名指定にしました。 範囲は、空のまま。 これを保存します。 ↑パラメータの入力イメージ 保存後、実行すると、Excelのシートがインポートされます。 テストで何回か実行した後、 テーブルのデータを見てみると、 おっ?マクロを実行した回数分データが追加されているよ。 なんかイヤナ感じだけど、インポートはOKですね。 ↑回数分データが追加されているがインポート後のテーブルイメージ データを消さないとイケナイのか、 DEL_MOTO_DATAって名前の削除クエリーを1つ作ります。 通常クエリーは選択クエリーなので、 メニューのクエリから削除を選択して、 テーブル内のデータを全て削除するクエリーを作成します。 ↑削除クエリーの作成イメージ あとは、マクロのアクションに、 今作成したDEL_MOTO_DATAをインポート前に実行するように、記述します。 右ボタンを押して、挿入を選択して、 ワークシート変換の前にクエリーを開くのアクションを挿入します。 開くのは作成したDEL_MOTO_DATAです。 ↑クエリー開くを追加したイメージ このマクロを実行すると、無事、データが入りました。

/* * 3.マクロを変換して、VBAのモジュールにする */

マクロが出来たので、今度は、そのマクロをVBAのモジュールに変換してみます。 ※まぁ、変換しないでもいいんだけど、ネタ的に使いたかったので(笑) 変換したいマクロを選択して、 右ボタンを押して、ショートカットメニューを表示させます。 その中から、名前を付けて保存を選択します。 貼り付ける形式をモジュールにします。 ~~~~~~~~~~~~~~~~~~~~~~~~~~ ↑マクロを選択後、右ボタン・形式をモジュールにする OKボタンを押すと、下記のモジュールが作成されます。 '------------------------------------------------------------ ' マクロ1 '------------------------------------------------------------
Function マクロ1()
On Error GoTo マクロ1_Err

DoCmd.OpenQuery "DEL_MOTO_DATA", acViewNormal, acEdit
DoCmd.TransferSpreadsheet acImport, 8, "MOTO_DATA", "e:\work\data.xls", True, ""
マクロ1_Exit:
    Exit Function

マクロ1_Err:
    MsgBox Error$
    Resume マクロ1_Exit

End Function
こんな感じで、Accessのマクロをモジュールに直すことが出来ます。 まぁ、 DoCmd.OpenQuery と DoCmd.TransferSpreadsheet を知っていればorヘルプから調べればいいんだけど。 変換されたモジュールを見ると、 DoCmd.TransferSpreadsheet acImport, 8, "MOTO_DATA", "e:\work\data.xls", True, "" の、"e:\work\data.xls"の部分を変更すれば、違うファイルも出来そうだし、 "MOTO_DATA"はテーブル名とか、なんとなくわかりそうだよね。 -【けんぞう!】--------------------------------------------------------- 月500円、タバコなら2箱、120円缶コーヒーなら4缶分の謝礼をGetするなら http://www.ken3.org/etc/500yen/ ←無料アンケート系の広告です。 『チッ、がんばって回答して月500円かよ』(お馬鹿なプログラマー:30歳) ------------------------------------------------------------------------ 

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

今回は、 AccessにExcelのシートをインポートする方法 を探ってみました。 マクロのアクションで作って、それをVBAのモジュールに変換してみました。 なんか、あまりスマートじゃなかったけど、 こんな方法もあるってことで。 データがインポートできたので、次は、集計ですね。 何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。

No.129 2003/09/17
Access いろいろとクエリーでグループ集計をしてみる
[ページTOPへ戻る]

<Access いろいろとクエリーでグループ集計をしてみる>

どうも、三流プログラマーのKen3です。 最近、質問もらうけど、 なかなか、解答できてない三流プログラマーのKen3です。 ※私のレベルで手に余る高度な質問が多くて。 今回の、サンプルファイルは、 http://www.ken3.org/vba/lzh/vba129.lzh にdb129.mdb(Access2000版)が保存されています。 ※クエリーをいじって、遊んでみてください。

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

郵便番号の集計システムを現在やってます。 前回、ExcelのシートをAccessにインポートしました。 今回は、データを集計してみたいと思います。 集計方法(集計ルール) ^^^^^^^^^^^^^^^^^^^^^^ In message "[VBAで楽しく No.127] - 要求を聞き、疑問点をつぶし、仕様書を書く", >2.集計処理 > 郵便番号をカウントする > 郵便番号が7桁そろっているものを集計する > 同様に、3桁しかないもの,2桁しかないもの,その他 > を集計する。 > 集計結果が10以下(1〜9)のデータは、最後に△で集計する。 --- なんて、ルールより、ほしい結果を見た方がわかり易いかな。 (※だったら、このわかりにくい設計書は失敗ってことでは?) シート1(7桁正しいデータ) 郵便番号 集計数 000-0001 20 000-0002 19 000-0003 18 000-0004 11 シート2(7桁以外のデータ) 郵便番号 集計数 郵便番号 集計数 561 15 98 13 562 16 97 56 ←郵便番号が2桁しかないもの、なおかつ 563 20 78 35  集計数が10以上のものを番号順に並べる 564 36 565 29 2 15 ←郵便番号が1桁しかないもの、なおかつ 566 39 3 20  集計数が10以上のものを番号順に並べる 567 11 568 22 △△△ 1045 569 44 ↑ 郵便番号の集計で1〜9までのモノがあれば 570 33 △△△として郵便番号が何桁であろうが 571 55 この部分に計上することになる。 572 66 ↑ 郵便番号が3桁しかないもの、なおかつ 集計数が10以上のものを番号順に並べる

/* * 2.単純に集計を行う */

早い話が、インポートされた、 MOTO_DATA テーブルを同じ郵便番号で集計して(数を数えて) それぞれの条件で扱いやすければいいって感じで。 MOTO_DATAテーブル内のテストデータ 郵便番号 氏名 住所 電話番号 194-0012 三流 東京都町田市 070-9999-8888 228 タコスケ 神奈川県相模原市 070-9999-8889 220-0021 金城 神奈川県横浜市西区 070-9999-8890 220-0021 内川 神奈川県横浜市西区 070-9999-8891 220-0021 鈴木尚 神奈川県横浜市西区 070-9999-8892 ・ ・ ・ まずは、単純に集計してみます。 クエリーで、MOTO_DATAを選択後、郵便番号を選び、 メニューの表示を選択、集計にして、 グループ化とカウントを入れます ↑操作イメージ すると、郵便番号でカウントされた値が集計されたクエリーができます。 郵便番号 郵便番号のカウント 194-0012 1 220-0021 14 228 1 232 11 700-0941 1 ↑クエリー結果イメージ

/* * 3.文字数を数えてみる(演算フィールドの追加) */

結果が、 郵便番号 郵便番号のカウント 194-0012 1 220-0021 14 228 1 232 11 700-0941 1 と、なったけど、このままでは、使いにくいです。 194-0012 1 220-0021 14 700-0941 1 と 228 1 232 11 の2つに分けたいんだけど、何か、方法は無いのか・・・ 当たり前の話、文字数が違うので、Len関数を使って、文字数を求めてみます。 桁数:Len([郵便番号])とクエリーの演算フィールドを作成してみます。 フィールドに桁数:Len([郵便番号]) 集計を演算にしたフィールドを作成します。 ↑演算フィールド作成イメージ このクエリーを実行すると、 郵便番号 郵便番号のカウント 桁数 194-0012 1 8 220-0021 14 8 228 1 3 232 11 3 700-0941 1 8 上記のような結果が得られます。 ↑実行結果イメージ

/* * 4.大きく3つのパターンに分ける */

郵便番号 郵便番号のカウント 桁数 194-0012 1 8 220-0021 14 8 228 1 3 232 11 3 700-0941 1 8 ここまで、なんとか、クエリーでもってこれました。 これを パターン1 郵便番号7桁(−付で8桁)、カウント10以上 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 郵便番号 郵便番号のカウント 桁数 220-0021 14 8 パターン2 郵便番号7桁以外(−付で8桁以外)、カウント10以上 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 郵便番号 郵便番号のカウント 桁数 232 11 3 パターン3 カウント数が10以下(1〜9)※郵便番号が何桁であろうが ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 郵便番号 郵便番号のカウント 桁数 194-0012 1 8 228 1 3 700-0941 1 8 に分けてみたいですね。 元のクエリーに条件を付けて、 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3つのクエリーを作成してみたいと思います。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ パターン1 Q_YUBIN_7 郵便番号7桁(−付で8桁)、カウント10以上 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 郵便番号 郵便番号のカウント 桁数 220-0021 14 8 --- 条件は >=10(10以上) で =8(桁数は8桁) ↑設定・実行結果イメージ パターン2 Q_YUBIN_ETC 郵便番号7桁以外(−付で8桁以外)、カウント10以上 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 郵便番号 郵便番号のカウント 桁数 232 11 3 --- 条件は >=10(10以上) で <>8(桁数はNot 8桁) ↑設定・実行結果イメージ パターン3 Q_YUBIN_1to9 カウント数が10以下(1〜9)郵便番号が何桁であろうが ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 郵便番号 郵便番号のカウント 桁数 194-0012 1 8 228 1 3 700-0941 1 8 --- 条件は <10 (10以下) で (桁数の条件は無し) ↑設定・実行結果イメージ -【けんぞう!】--------------------------------------------------------- 月500円、タバコなら2箱、120円缶コーヒーなら4缶分の謝礼をGetするなら http://www.ken3.org/etc/500yen/ ←無料アンケート系の広告です。 『チッ、がんばって回答して月500円かよ』(お馬鹿なプログラマー:30歳) ------------------------------------------------------------------------ 

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

今回は、 グループ化の集計方法 を探ってみました。 3つのグループを作成することが出来ました。 あとは、この集計結果をExcelへ出力です。 なんか、あまりスマートじゃなかったけど、 こんな方法もあるってことで。 今回の、サンプルファイルは、 http://www.ken3.org/vba/lzh/vba129.lzh にdb129.mdb(Access2000版)が保存されています。 ※クエリーをいじって、遊んでみてください。 何かの参考となれば幸いです。 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系バックナンバー目次へ移動]