パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
たかちゃんさんの投稿
(投稿ID: 4867)
小川 慶一さんのコメント
(コメントID: 6822)
Captcha:
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2025年04月22日 05:41
2025年04月18日 09:15
2025年04月09日 07:21
2025年04月06日 09:31
2025年04月05日 16:12
2025年04月24日 21:55
2025年04月22日 05:44
2025年04月22日 05:42
2025年04月19日 19:19
2022年02月24日 10:59
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2025年04月15日 11:30
2025年04月08日 16:30
2025年04月07日 16:30
2025年04月04日 15:45
2025年03月27日 13:30
2025年02月04日 08:51
2025年02月03日 12:58
2024年11月27日 11:48
2024年11月25日 12:07
2024年11月17日 09:51
2025年03月26日 22:33
2025年03月26日 22:12
2025年03月24日 22:28
2025年03月19日 20:10
2025年03月18日 20:52
2025年04月16日 08:30
2025年03月18日 09:07
2025年03月18日 09:06
2025年03月15日 13:23
2025年02月26日 16:37
2025年04月02日 21:01
2025年04月02日 20:47
2025年04月02日 20:37
2025年04月01日 22:03
2025年04月01日 21:27
2025年04月16日 08:32
2025年03月18日 09:10
2025年03月18日 09:09
たかちゃんさんの投稿
(投稿ID: 4867)
恐らく仕事で、「初めて作成する物」だったり「もし作成出来なかったらどうしよう?」みたいな環境だと
パニックになってしまいそうですが・・・。
今回は、見本と1行づつ見比べた所、ほぼ同じようにかけて満足です。
3つ疑問が出来たので、質問させて下さい。
【1つ目】Setで設定する位置について。
これは、Dim 〇〇と全部宣言を書いたあとで、Set〜と書くのと、
Dim shFm as worksheet と書いた後に、直ぐにSet〜と書くのでは
どちらの書き方が推奨というのはありますか?(どちらでも動きますが、気になったので。)
Set shFm = Worksheets("main")
【2つ目】dt = shFm.Range("C" & lnFm).Valueの設定する位置について。
この↓の記述の直前に設置した方が良いのか?、For lnFm = 2 To lnFmMxの直後に書いた方が良いのか?
迷いました。結局、動くので同じなんですが、設定するのは動作に影響が出ない範囲でなるべく上の方がいいのかなぁと
一瞬思ったんですが、推奨する位置とかありますか。
shTo.Range("B" & lnTo).Value = Right(Year(dt), 2)
shTo.Range("C" & lnTo).Value = Month(dt)
shTo.Range("D" & lnTo).Value = Day(dt)
【3つ目】書いているとついつい、見やすいように空白行を入れてしまうことがあります。
見本を見ると、タブで横にはずれているものの、殆ど詰めて書いてありました。
空白行は、こんな時以外は入れない方が良いなどありますか?
先生の講座は本当に楽しいです。
最初は伝票が作れたら満足って思っていましたが、今では密かに講座を全制覇目指すことも可能じゃないか?と
思いはじめました。(^^;
本当に良い講座に出会えました。
小川 慶一さんのコメント
(コメントID: 6822)
おはようございます。
> 先生の講座は本当に楽しいです。
> 最初は伝票が作れたら満足って思っていましたが、今では密かに講座を全制覇目指すことも可能じゃないか?と
> 思いはじめました。(^^;
> 本当に良い講座に出会えました。
それは何よりです (^^*
> 伝票作成は、0から作成しようとすると一瞬不安になりましたが、落ち着いてゆっくりでしたが書けました!
> 恐らく仕事で、「初めて作成する物」だったり「もし作成出来なかったらどうしよう?」みたいな環境だと
> パニックになってしまいそうですが・・・。
型に慣れれば、ささっとできるようになりますよ。
料理と同じです (^^
> 3つ疑問が出来たので、質問させて下さい。
>
> 【1つ目】Setで設定する位置について。
オブジェクト型変数に限らず、「ローカル変数を宣言するタイミング」ということで広く一般的に言えることを書きます。
以下のとおりに整理して理解しておいてください。
[1] 変数は、その変数に値なり参照なりを設定するより前に宣言するのであれば、どこで宣言してもよい。
[2] ループの中で宣言するのは好ましくない
[1]について。
以下のそれぞれについて、どちらが良いか?はケースバイケースです。
それぞれにメリット/デメリットがあります。
[a] 変数宣言をプロシージャ上部にまとめる
[b] 変数を利用する箇所のなるべく近くにするか、
[a] のメリット:
・整然としている
・プロシージャ上部の変数群(と、必要に応じてコメント)を見れば何をしたいのかだいたい見当がつく。(もちろん、変数名が適切で、コメントが分かりやすい場合)
[b] のメリット:
・変数を実際に活用するタイミングで、その変数の宣言箇所がすぐ目につく。なので、その変数のデータ型やその変数の宣言趣旨が(コメントが付与されていれば)すぐ分かる。
・その変数を活用する直前まで変数を宣言しなければ、予め頭にその変数を入れずにコードを読めるので、読む時に負担が少ない。特に、プロシージャ内で何度も構造が出てくる等の理由で全体の見通しが悪い場合など。
僕の好みは[a]です。なるべく[a]になるようにコーディングします。
[b]の状況になることは、以下の方法でなるべく避けます。
[b-1] そもそも、ひとつのプロシージャをあまり大きなボリュームのものにしない。
[b-2] そもそも、ひとつのプロシージャ内で For ... Next 文を何度も入れない。
発展編2に進むと、上に示したような手直しをさらに容易にできるようになります。
[2]について。
ループの中で変数宣言してしまうと、ループの回数だけその変数を宣言することになります。これは非効率。ループの手前で宣言して、それをループ内で使い回すほうが良い。
> 【2つ目】dt = shFm.Range("C" & lnFm).Valueの設定する位置について。
> この↓の記述の直前に設置した方が良いのか?、For lnFm = 2 To lnFmMxの直後に書いた方が良いのか?
> 迷いました。結局、動くので同じなんですが、設定するのは動作に影響が出ない範囲でなるべく上の方がいいのかなぁと
> 一瞬思ったんですが、推奨する位置とかありますか。
>
> shTo.Range("B" & lnTo).Value = Right(Year(dt), 2)
> shTo.Range("C" & lnTo).Value = Month(dt)
> shTo.Range("D" & lnTo).Value = Day(dt)
僕は直前が良いと思います。
【1つ目】への回答[b]と趣旨は同じです。B, C, D列に値を入れようとするこの3行にしか影響しない話題なので。
> 【3つ目】書いているとついつい、見やすいように空白行を入れてしまうことがあります。
> 見本を見ると、タブで横にはずれているものの、殆ど詰めて書いてありました。
> 空白行は、こんな時以外は入れない方が良いなどありますか?
その空白行にどのような意味をもたせるのか?という目的次第です。
メールの文章でも、メリハリのために空白行を入れることがありますね。どのタイミングで空白行をどの程度の入れるか?は、読者に期待する読解力次第でもあります。