Excelのシートを使ったバイナリエディタ

エクセルバカの大好きな語に「バイナリ」がある。しかし、能のないエクセルバカに「バイナリ」などは「ネコに小判」で、無意味なものである。こういうものをそんなドシロウトが使うような場面もないだろう。「ごっこネタ」の中でも「バイナリ、文字コード、改行、エンディアン」はエクセルバカの4大無意味である。
LOG
126.212.0.16 [22/Jun/2017:15:23:24] バイナリ解析 エクセル
60.121.116.116 [18/Jun/2017:10:31:02] excel バイナリ 解析
無知の代表例である。エクセルバカがExcelごときでこんなことができたら世の中に苦労はないことだろうよ。

そういうオバカたちのバカ騒ぎはset aside(脇に置いて)して、以下はExcelのシートを使ったバイナリエディタ「もどき」のものである。エクセルのシートに大きなファイルを全部バイナリダンプをすると非常に見にくいものになる。また容量的にも無理がある。これは指定したバイト位置から指定したバイト数だけをシート上に表示したり書き換えたりするツールである。

読み書きを同時にできるようにしたために、このダイアログはモードレスダイアログにしてある。
ファイルの16進ダンプ表示をし、このダイアログを閉じずにシート上のデータを書き換えて、「書き換え」ボタンを押せば書き換え(いわゆる上書き)ができる。

起動時はこうなる。



ファイルを指定すればそのサイズが表示される。
ファイルサイズ内で「開始バイト位置」と「表示バイト数」を指定する。
この例では300バイト目から220バイトをダンプ表示する。



「16進ダンプ」ボタンを押すとバイトデータがオバカの大好きな16進数で表示される。
1行に10バイトずつ表示される(最下行は端数になることもある)。
最上行と左端の列はわかりやすいように色が付き、固定枠になる(データが多い場合スクロールしてもこの表示は残る)。
左列の数字は表示バイト位置を示す数値である(わかりやすいように10進数で表示)。



このファイルはどこにどんなデータが書かれているかわからないので「書き換え」は別のファイルで実験する。
とりあえず「シートクリア」ボタンでデータを消去しておく。ゴテゴテした装飾も消える。
ここから同じファイルの別の位置のデータを表示させてもいいし、他のファイルを読み込んで同じように表示させてもかまわない。




書き換えの確認

もう少し短いファイルで「書き換え」の確認をしてみよう。
こんな内容のファイル(sample_binary.txt)がある。Shift_JISのテキストである。



短いので1バイト目から108バイト(要するに全ファイルになる)をダンプ表示する。
赤線で囲んだ2ヶ所の部分を書き換える。
「彼女」の「彼」が「&H94DE」で、「女」が「&H8F97」である(Shift_JIS)。



このように書き換えて、「書き換え」ボタンを押す。
「ゆか」の「ゆ」が「&H82E4」で、「か」が「&H82A9」である(Shift_JIS)。
「ユカ」の「ユ」が「&H8386」で、「カ」が「&H834A」である(Shift_JIS)。



書き換え後のバイトデータが最初読み込んだバイト数と違っている場合は、警告メッセージが出て書き換えられない。
正常に書き換えられたら終了メッセージが出る。



さて、バイナリ的に書き換えられているかどうか確認してみる。
正常に書き換えられている。



参考
BinaryEditor.frm@BinaryEditor.xlsm





エクセルバカが「バイナリ」なんて正気の沙汰か(ipc_0097)
愚民列伝/意味も知らずに「バイナリ」ごっこ(b1)



「バイナリ」などの意味は知らないが「バイナリごっこ」はしたいというのがエクセルバカに共通する性質である(強固なバイナリ幻想)。そんな程度のことだから、この連中が「何をしたいのか」ということが人に伝わることもない。それでどこかで拾ってきた「バイナリ」という言葉だけを振りかざしてインターネットをクラゲのように浮遊していくことになる。




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進数,読み込み,書き込み,エンコード,デコード,解析,変換,判定,判別,バイナリエディタ, 全角,半角,カタカナ,ひらがな,漢字,