Powerpoint VBAを使おう!

Powerpoint VBAやExcelのVBAで遊んでいます。Word VBAも始めました。

Collectionオブジェクトの準備 0,Null,Emptyを試す。

波のポイントを扱うなら,配列じゃなく,Collectionでやろうと昨日決めたので,問題点はないか,試しています。

配列じゃない理由は,ずらしやすい,の1点。昨日試した感じ遅いとも感じなかったのでいける気がしている。

ただ,全く値も入れずにいきなり150番の値を突っ込むとかはたぶん無理な気はするので,まずはダミーの値を入れてから扱うかと思い,Emptyを入れてみる。

Option Explicit

Sub CollectionTest()
Dim col As Collection: Set col = New Collection
Do
    col.Add Empty
Loop Until col.Count = 160
Stop
End Sub

f:id:chemiphys:20170221210605p:plain

自由なポイントに値をぽこっと入れて,好きな方の端っこの値をRemoveで引き抜けるので,私にとってはとても都合がいいことは確認できました。

残念だったポイントはEmptyも0も同じに判断されるみたい。

それが別物なら,パルス波などを扱おうとしたとき都合がよいと思ったんですが,それは残念。

ただ,全く違いがないわけではないみたいで,

VarType という関数で確認すると,Emptyと0の違いを確認できそうなことはわかった。
f:id:chemiphys:20170221211341p:plain

これなら,値が数値の0なのか,何も代入されていないか判断するのは不可能ではないみたいだなぁと思える。

Sub collectionTest2()
Dim col As Collection: Set col = New Collection
Do
col.Add Null
Loop Until col.Count = 160
Stop
End Sub

Nothingを入れたら,オブジェクトになったりしていて,絶対これは違うなと思ったので,Nullを入れてみた。

素人なので,このへんはいつもてきとーにやってて,困ったものです。

値のチェックが可能か確認していたら
f:id:chemiphys:20170221212331p:plain

若干私の理解を超える返答をしてくる。
イミディエイトウィンドウで?の後に数式を入れたら TrueかFalseを答えてくれるもの,と私は考えているわけですが,

Null ( ゚д゚)

とか答えてくる。

このあたり,ちょっと理解しがたいけど IsNullという関数があるようですし,私に都合がいいのは,EmptyよりNullを先にいれることなのかなぁと想像する。

こんなことを考えていたら・・・というか,わたしがこんなことを考える種が植えられていたのかもしれない。

ツイッターで交流させていただいている方が紹介されている記事を確かに私は見た。

togetter.com

普段Nullとか私使わないから,きっとこれに影響を受けたんだろうな・・(;´▽`A``

ありがたいことです。どんなことでも,いきなり自分がやりたいことに必要な知識となって登場したりするので,びっくりする。




今日職場では,がっつり仕事片付けてきたので,明日までがんばれば,きっと波のことを考える時間が作れそうな気がしています。

値を入れるところも準備できましたし,

周期Tや波長λを自分が想定した環境にどう落とし込むか。一番大事なところをクリアしないとな・・(;´▽`A``