5倍速!メールマガジン
外部アカウントで登録
             
         
    
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
 
        小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
 
                             
                             
                             
                         
         
    
表示できる投稿はありません。
 
        この学習サイトの教材制作、サポート、システム開発をすべてやっています。
 
szさんの投稿
(投稿ID: 4890) 添付ファイルのダウンロード権限がありません
宿題を提出いたします。
添削の方を宜しくお願い致します。
マクロ記録やステップインして確認して作成しました。
伝票作成ボタン等を作成する際に、気になったのがフォームコントロールとActiveXコントロールの違いです。
今回は、フォームコントロールボタンを使いました。
こちらのボタンの方がいい等ありましたら、ご教授お願いしたいです。よろしくお願いいたします。
小川 慶一さんのコメント
(コメントID: 6848)
こんにちは。
いくつかコメントを入れました。
まずは返送します。
他にも議論すべき点はありますが、まずは、以下にあるコメントを参考のうえ、講座で説明している見本との比較をご自身でしてください。
講座で説明しているものとは異なる手法を使ったものについては、再提出時は、以下を述べてください。
[a] その手法をあえて取ることのメリットは何か
[b] その手法をあえて取ることのデメリットは何か
[c] なぜあえてその手法を取ったのか
たとえば denpyosakusei の中で Denpyosakujo を呼び出さないことについてならば、以下のような感じでしょうか。
[a]
「他のプロシージャを呼び出す」という、より高度な技術を用いないで済む。
書くことが減って、コーディングが楽。
[b]
伝票作成ボタンを2回連続で押したとき、2回目はエラーで停止する。なので、利用者には、「伝票がすでにある場合は、先に『伝票削除』ボタンを押してください」と案内しなくてはならない。
エラーで停止すると「main1 (2)」という名前のシートがゴミとして残るので、手動で削除する手間が発生する。
動作テストのときにもやることがひと手間多く、いちいち面倒。
[c]
([a], [b]比較のうえ、あえてこのやり方で行こうと決めた理由を述べる)
これをやると、よい学びになりますよ。
szさんのコメント
(コメントID: 6850) 添付ファイルのダウンロード権限がありません
見本と自分のコードを比較し修正しました。
そしてメリットデメリットについて考えてみました。
【罫線を別プロシージャにしていなたっか点】
[1-1]&[1-2]
[a]先生の言われる通り、高度なマクロの手法を使わなくても書くことが減って楽だった。
[b]コードの流れが掴みにくく、メンテナンス性が悪い。
[c]あえてこの手法を使ったのではなく、手法を学んでいたものの「とりあえず動く」のを確認した時点で満足してしまい、別プロシージャにした方がいいかもという思いに至らなかった。
【if文内で重複処理していた点】
[2-1]&[2-2]
[a]if文の中で同じコードは必要ないのでメリットはないです。繰り返し作業ということに気付けていなかったです。
[b]コードの流れが掴みにくく、メンテナンス性が悪い。余分なコードを読む必要があるので処理時間が長くなる。
[c]あえてこの手法をとったのではなく、別プロシージャにできるコードも放置していたために、自分自身コードが読みにくかったんだと思います。なぜこうしたのか、今となっては疑問です。
メリットデメリットを比較すると、自分の書いたコードがいかにお粗末なものかがよく分かりました。
プログラミング技術の習得は「分離可能なものをより分離していくもの」でしたね。
分離できるところはないか、という視点で振り返ってみる視点が欠けていました。
小川 慶一さんのコメント
(コメントID: 6849)
だいぶ良くなったと思います。
コメントを返送します。
自分で書いて、自分で検討すると、よく学べます☆
szさんのコメント
(コメントID: 6851)
>'ひとつのセルの指定では ("行" & 変数) と .offset( ) の両方を使うよりどちらかだけにしたほうがよいです。
こちらについてですが、どちらかだけにした方が良いのはどうしてなのか分かりません。動作に支障がでるのでしょうか?
小川 慶一さんのコメント
(コメントID: 6852)
> >'ひとつのセルの指定では ("行" & 変数) と .offset( ) の両方を使うよりどちらかだけにしたほうがよいです。
> こちらについてですが、どちらかだけにした方が良いのはどうしてなのか分かりません。動作に支障がでるのでしょうか?
動作への支障はないです。
以下ソースコードの[A], [B]を読み比べてみてください。どちらのほうが、より目移りせずに値入力先のセルを見いだせるでしょうか。
また、メンテナンス性についてはどうでしょうか。
発想としては、エクセルワークシート関数とマクロを組み合わせるより、マクロだけのほうがよい。
アクセスとエクセルを組み合わせるより、エクセルだけのほうがよい。
といったことと同様です。同じことを実現するのであれば、ひとつの技術だけで済ませたほうが良いです。
その理由は、使う技術が少ないほうが、集中を向けるべき事項が減ること、メンテナンス性が高いことです。
DPRで言うと、「P」をシンプルにするということです。
https://www.exvba.com/dpr.php
受講生さんのコメント
(コメントID: 6853)
メンテナンス性も高くなると、なるほど。
ありがとうございます。
小川 慶一さんのコメント
(コメントID: 6855)
考え方の基本は、やはり、DPRです。
「Pの最適化」ですね。
慣れてくると自然にいろいろと気づけるようにもなるかと思います。