5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
田中 宏明さんの投稿
(投稿ID: 4234)
出力結果とコードの一部です。素晴らしいです。
2018/12/01 13:37:09, [INFO] , --------------- ログファイルオープン ---------------
2018/12/01 13:38:04, [ERROR] , エラー番号:-2147023783/種類:Unicode 文字のマッピングがターゲットのマルチバイト コード ページにありません。
2018/12/01 13:41:19, [INFO ] , ---------------正常終了 ---------------
小川 慶一さんのコメント
(コメントID: 5802)
ところで、クラスモジュールにすることのメリットは何でしょう?
田中 宏明さんのコメント
(コメントID: 5803)
クラスモジュールを使うメリットは、まだ実感できないです。
オブジェクトを深く理解するための手段として使う意味があると考えます。
> どんどん上達されていてなによりです。
> ところで、クラスモジュールにすることのメリットは何でしょう?
小川 慶一さんのコメント
(コメントID: 5804)
> クラスモジュールを使うメリットは、まだ実感できないです。
正直、このくらい単純なプログラムだと、無いように思います。
利用者を選びますし。
とはいえ、いろいろな書き方を試されるのはとても良いことだと思います。
ログ出力用クラスを作って複数マクロで使い回すということでしたら、以下は、 Initialize ではなく、クラス生成後のプロパティの設定で行いたいところですね。
「呼び出し元モジュールからログ生成先パスの設定を行う。この過程で、作成先フォルダなり記入先ファイルなりが見つからないときには自動生成する」
クラスモジュールを使った僕の自作ライブラリがあります。
近日、公開したいと思っています。
> 小川慶一先生:
>
> クラスモジュールを使うメリットは、まだ実感できないです。
> オブジェクトを深く理解するための手段として使う意味があると考えます。
>
> > どんどん上達されていてなによりです。
> > ところで、クラスモジュールにすることのメリットは何でしょう?
田中 宏明さんのコメント
(コメントID: 5805)
ありがとうございます。
実現したいことは「ログ出力用クラスを作って複数マクロ(個人あるいは担当内)で使い回す」です。最初の投稿で気づいておられたのですね。
最初に作ったものがベースなるので、ご意見をいただけてよかったです。下記実装に向けて設計からやり直してみます。
> ログ出力用クラスを作って複数マクロで使い回すということでしたら、以下は、 Initialize ではなく、クラス生成後のプロパティの設定で行いたいところですね。
> 「呼び出し元モジュールからログ生成先パスの設定を行う。この過程で、作成先フォルダなり記入先ファイルなりが見つからないときには自動生成する」
>
> クラスモジュールを使った僕の自作ライブラリがあります。
> 近日、公開したいと思っています。
小川 慶一さんのコメント
(コメントID: 5806)
「ログ出力機能は標準モジュールに実装し、使い回す際には、それをコピペする」でも効果は同じですからね...。
どちらの場合も、 Scripting.Dictionary を使うなら、それぞれのエクセルファイルで参照設定が必要ですし。
・初期化段階で連動して自動的に○○がなされる
・プロパティ設定段階で連動して自動的に○○がなされる
・プロパティ取得段階で連動して自動的に○○がなされる
・メソッド実行段階で連動して自動的に○○がなされる
といった、「ついでに○○がなされる」ということがクラス内で生じるのでなければ、わざわざクラスモジュールにする意味がないです。
というか、可読性という点を考えると、標準モジュールに実装するほうが、利用者に求める知識がいたずらに高度にならない分だけ有利と感じます。
> 小川慶一先生:
>
> ありがとうございます。
> 実現したいことは「ログ出力用クラスを作って複数マクロ(個人あるいは担当内)で使い回す」です。最初の投稿で気づいておられたのですね。
> 最初に作ったものがベースなるので、ご意見をいただけてよかったです。下記実装に向けて設計からやり直してみます。
>
> > ログ出力用クラスを作って複数マクロで使い回すということでしたら、以下は、 Initialize ではなく、クラス生成後のプロパティの設定で行いたいところですね。
> > 「呼び出し元モジュールからログ生成先パスの設定を行う。この過程で、作成先フォルダなり記入先ファイルなりが見つからないときには自動生成する」
> >
> > クラスモジュールを使った僕の自作ライブラリがあります。
> > 近日、公開したいと思っています。
田中 宏明さんのコメント
(コメントID: 5807)
ログ出力機能ですが、標準モジュールに実装することに決めました!
思考と行動が逆になっており、プロセスと結果が良くなかったことに気づきました。
<相談後>
ログ出力したい⇒実現したいことを具体化⇒標準モジュールに実装可⇒速攻で完成
<相談前>
クラスを勉強 ⇒ログ出力で活用を考えた⇒クラスモジュールに実装⇒素晴らしい
> 田中 宏明さん:
>
> 「ログ出力機能は標準モジュールに実装し、使い回す際には、それをコピペする」でも効果は同じですからね...。
> どちらの場合も、 Scripting.Dictionary を使うなら、それぞれのエクセルファイルで参照設定が必要ですし。
>
> ・初期化段階で連動して自動的に○○がなされる
> ・プロパティ設定段階で連動して自動的に○○がなされる
> ・プロパティ取得段階で連動して自動的に○○がなされる
> ・メソッド実行段階で連動して自動的に○○がなされる
>
> といった、「ついでに○○がなされる」ということがクラス内で生じるのでなければ、わざわざクラスモジュールにする意味がないです。
> というか、可読性という点を考えると、標準モジュールに実装するほうが、利用者に求める知識がいたずらに高度にならない分だけ有利と感じます。
小川 慶一さんのコメント
(コメントID: 5808)
> ログ出力機能ですが、標準モジュールに実装することに決めました!
それが良いと思います。
クラスが意味を持つのは、前回指摘したことに加えて、複数インスタンスを生成する必要があるときです。
> 小川慶一先生:
>
> ログ出力機能ですが、標準モジュールに実装することに決めました!
> 思考と行動が逆になっており、プロセスと結果が良くなかったことに気づきました。
>
> <相談後>
> ログ出力したい⇒実現したいことを具体化⇒標準モジュールに実装可⇒速攻で完成
>
> <相談前>
> クラスを勉強 ⇒ログ出力で活用を考えた⇒クラスモジュールに実装⇒素晴らしい
>
> > 田中 宏明さん:
> >
> > 「ログ出力機能は標準モジュールに実装し、使い回す際には、それをコピペする」でも効果は同じですからね...。
> > どちらの場合も、 Scripting.Dictionary を使うなら、それぞれのエクセルファイルで参照設定が必要ですし。
> >
> > ・初期化段階で連動して自動的に○○がなされる
> > ・プロパティ設定段階で連動して自動的に○○がなされる
> > ・プロパティ取得段階で連動して自動的に○○がなされる
> > ・メソッド実行段階で連動して自動的に○○がなされる
> >
> > といった、「ついでに○○がなされる」ということがクラス内で生じるのでなければ、わざわざクラスモジュールにする意味がないです。
> > というか、可読性という点を考えると、標準モジュールに実装するほうが、利用者に求める知識がいたずらに高度にならない分だけ有利と感じます。
田中 宏明さんのコメント
(コメントID: 5839)
ログ出力機能について経過報告です。
Subプロシージャ単位で正常動作したプログラム(他人が作成したプログラムを含む)をコピペし、別のプログラムに流用しています。
過去に正常動作を確認済みのSubプロシージャは、再度テストすることなく使っていますが、実際にログ出力させてみると、自分が想定している動きをしていない場合があることがわかりました。
ステップ実行すれば、発見できることですが、時間がかかってしまうので省略していたことを反省しつつ、ログ出力の成果が体感できました。
本当にこの講座のおかげです。ありがとうございます。
> 田中 宏明さん:
>
> > ログ出力機能ですが、標準モジュールに実装することに決めました!
>
> それが良いと思います。
> クラスが意味を持つのは、前回指摘したことに加えて、複数インスタンスを生成する必要があるときです。
小川 慶一さんのコメント
(コメントID: 5840)
おはようございます。
ログの件、いろいろ学べてよかったですね。
手元でのテストだけなら debug.print でも十分です。
が、ログ出力機能は、遠隔地で起きていることの把握等では特に力を発揮します。
ひきつづき、よい学びを☆
> 小川慶一先生:
>
> ログ出力機能について経過報告です。
>
> Subプロシージャ単位で正常動作したプログラム(他人が作成したプログラムを含む)をコピペし、別のプログラムに流用しています。
>
> 過去に正常動作を確認済みのSubプロシージャは、再度テストすることなく使っていますが、実際にログ出力させてみると、自分が想定している動きをしていない場合があることがわかりました。
>
> ステップ実行すれば、発見できることですが、時間がかかってしまうので省略していたことを反省しつつ、ログ出力の成果が体感できました。
>
> 本当にこの講座のおかげです。ありがとうございます。
>
> > 田中 宏明さん:
> >
> > > ログ出力機能ですが、標準モジュールに実装することに決めました!
> >
> > それが良いと思います。
> > クラスが意味を持つのは、前回指摘したことに加えて、複数インスタンスを生成する必要があるときです。