5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
浦山大さんの投稿
(投稿ID: 3540)
ひっそりこちらにお邪魔しています。
新しいところに顔を出す度に衝撃を受けています…。
練習していて、ふと感じました。
「挿入した列が塗りつぶされてしまうけどなんでかな」
「文字列とか、明らかに数値じゃないものが入ったら、
別の色にできないかな」
こういう感じで仕分けてみたくて、
練習がてら作成してみました。
1.空白セルを挿入した場合は何もしない
2.数値で、100より大きい場合は黒
3.数値で、100より大きくない場合は黄緑
4.数値として評価できない値が入ったら赤
当初、Isnumeric関数を使って条件判断すればいいのかな?
と思って試してみました。
しかし、空白セルを貼り付けるor列を挿入すると(1.を狙って)、
何故か黄緑(3.)になってしまいました。
TypeName関数で空白セルを貼り付けた際のデータ型を調べてみたらEmpty値でした。
あれ、Empty値って数値じゃないからIsNumeric関数はFalseなんじゃないの?と思い、
ヘルプを調べてみたら、数値としては「0」を判定し(この場合はIsNumericで判断してるのでEmptyは「0)」、
文字列(String型で変数が宣言されており、Empty値が入る場合)
としては「""」を返すと記載がありました…。
IsEmpty関数を更に上側に差し込んで、漸く機能実現しました。
この時点で深く追求することではないと思うのですが、
ちょっとムキになってしまって、調べてみたら学びが得られました。
折角学んだことだったので書いてみようと思いました(^^)
※色の指定や変数名が適当です…(Boolean変数は、ほぼほぼ初めて使いました…)。
※この後で、もっといい方法があるのかもしれません。進めていきます。
小川 慶一さんのコメント
(コメントID: 5017)
いろいろ研究してみてください。
空白と思えるセルに実は半角スペースなりが挿入されていた、といった場合の評価もあります。以下の条件文は参考になるかも。
[codeif len(trim(r.value)) then
'イミフな空白が入っているかもしれないけど、とにかく見た目上セルはブランク。
end if[/code]
いただいたサンプルコードについては、最終的にやりたいことが分からないので全体のことについてはコメント差し控えます。
1点だけ指摘..。
For Each 構文では個別セルに対して判定をしていますが、判定後の処理では個別に取り出したセル r ではなく、 Target のセル範囲全体に対して作業をしていますね。