5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
受講生さんの投稿
(投稿ID: 3065)
新規登録の場合も、チェックボックスはnullにはなりませんでした。
これもバージョンの違いなのでしょうか?当方は2016を使用しています。
小川 慶一さんのコメント
(コメントID: 4517)
いつも、細かいご指摘ありがとうございます。
26:30くらいの件ですね。
これはエクセルのバージョンの問題ではなく、ソースの側での書き方の違いから生じています。
当初から提供されているフォームの、イベントプロシージャ scrMain_Change では、以下の[1]のように書かれています。
この動画内での実装は[2]に近い書き方をしています。
[1] では、後半の Range("D" & v).Offset(, c).Value = True は評価式で、その演算結果が true/false のどちらかとして、 Controls("chk" & c).Value に渡されます。
故に、 Range("D" & v).Offset(, c).Value が ブランクのとき、true でないので false が渡されます。
[2] では、 Range("D" & v).Offset(, c).Value の値がそのまま Controls("chk" & c).Value に渡されます。
故に、 Range("D" & v).Offset(, c).Value が ブランクのとき、true でもfalseでもなく、ブランクが渡されます。ブランクはnullと解釈されます。
ちょうどよい機会なので、[1],[2]の違いを、当初から提供されているフォームを改変して確かめてみてください。
> お世話になっております。
> 新規登録の場合も、チェックボックスはnullにはなりませんでした。
> これもバージョンの違いなのでしょうか?当方は2016を使用しています。