セル集団

エクセルバカ相手の低レベルな通俗ネタである。気分転換のために手軽にちょっと「エクセルごっこ」で遊んでみたものである。ヒマつぶしにいい(笑)。
シート上のデータを行単位で処理する場合、セル集団(対象とするデータがあるセルの塊)のデータを連続したデータとして細大漏らさず取得するのは難しい。このデータをバイナリデータとしてファイルに書き込む場合にこういう考え方が必要になる。

下記の画像は想定できるセル集団の形である。下に行くほどデータの取得が面倒になる。
基本は、どのセルにデータがあるかを知ることである。それががわかれば値の取得は簡単になる。

標準的な形
これは今までよく出てきたものである。


変形パターン1
右端が不揃いな例である。


変形パターン2
右端は揃っているが内部に空白がある例である。


変形パターン3
右端が不揃いで内部に空白がある例である。


変形パターン4
上の場合で、先頭セルが空白の場合である。
これではどこがセル集団の開始位置かがわからない。
ところで、こういうものを「セル集団」として把握する必要があるのか疑問な例でもある。


参考
ipc3.bas@Ipc1.xlsm


変形パターン1の場合

この場合のデータの取得は簡単である。セル集団の外形の判断だけをすればよいからである。



変形パターン3の場合

この場合のデータの取得は、外形の判断のほかに、各セルのデータの中身を吟味する必要がある。
したがって、空白の部分に「篠崎愛」や「2015年2月2日」のようなデータがあっても、それらはデータとしては認めない。しかし、実際にはそんなデータが混じることはないだろう。



変形パターン4の場合

この場合のデータの取得は、セル集団の範囲を指定したうえで、各セルのデータの中身を吟味する必要がある。
これで34バイトのデータを書き込むことができる。しかし、このパターンの実用度は極めて低いだろう。すなわち、こんな書き込み方が必要になる場面が実際にはほとんどないということである。




マクロによって処理が自動化できるのは、「セル集団の形」でいえば最初の4つまでである。最後のパターンは自動化できない。したがって、この場合は「セル範囲」を指定してやる必要がある。こんな指定が必要になるということは実質的には「自動化」されていないことに等しい。

ここでの自動化とは、シート上のセルに書き込んだデータを、そのままで処理することをいう。どこから、どこまで、どんなデータを書き込んだか、そんなことを気にせずに処理できるようにすることである。

- 2015/02/02 -




SOURCE
セル範囲と2次元配列とCSVファイル(exc_0032)
セル範囲とRangeオブジェクト(exc_0038)
セル集団とセルデータの取得(exc_0053)
セル範囲の取得とVariant型(exc_0057)



Unicode,UTF-8,UTF-16,Big,Little,Endian,LE,BE,Shift_JIS,SJIS,CR,LF,CRLF,byte,bit,word,CSV,BOM,Encode,Decode,ANSI, Binary,Open,Byte,Get,Put,Input,InputB,Asc,AscB,AscW,Chr,ChrB,ChrW,Hex,Mod,EOF,LOF,Loc,FreeFile,ReDim,Encoding, Left,LeftB,Right,RightB,Mid,MidB,Len,LenB,InStr,InStrB,FileSystemObject,FSO,CreateTextFile,OpenTextFile, バイナリ,テキスト,文字列,文字コード,16進コード,16進文字列,変換,ビッグ,リトル,エンディアン,ユニコード,改行,サンプル, バイト,ビット,ヘキサ,2進数,16進数,読み込み,書き込み,エンコード,デコード,解析,変換,判定,判別,バイナリエディタ, 全角,半角,カタカナ,ひらがな,漢字,