いきさつ
- GoogleカレンダーをExcelにつなげて印刷したい-1
- いきさつは上記サイトにある‥‥ (たぶん)
- GoogleカレンダーをOutlook経由で csvファイルに出力するまでは出来た‥‥ で、終わった。
- GoogleカレンダーをExcelにつなげて印刷したい-2
- Googleカレンダーの「内容」欄(列)に HTMLコードがあるものがあり、Excelの書式設定では対応できない(取り除けない)ことが判った...
内容欄(列)の HTMLコードを削除する
これは前回の宿題で、VBAで対応するしかないと、Google先生に参考になるサイトを教えてもらった。
事前調査
改行コードを使う【vbCrLf、vbLf、vbCrがあります】|大体でIT
daitaideit.com
≪要旨≫
文字列に改行コードが含まれるか判定する【InStr関数】【ExcelVBA】 | VBA Create
vba-create.jp
- セル内の改行 Alt + Enter ではvbLfの改行です。
- 他システムからエクスポートされたCSVファイルなどはvbCrLfの形も多いです。
- という事は、vbLfだけの判定では改行チェックとしては、弱いかもしれません。
- 逆に改行コードを判定するのではなく、指定の改行コードに変換してしまうのも手です。
セル内の改行を検索/置換する | 日経クロステック(xTECH)
xtech.nikkei.com
「ホーム」タブ右端の「検索と選択」ボタンをクリックして「置換」を実行しよう。表示される「置換」ダイアログボックスの「検索する文字列」ボックスをクリックしたら、[Ctrl]キーを押しながら[J]キーを押そう。この[Ctrl]+[J]キーが改行コードを意味するのだ。
[Ctrl]+[J]キーを入力しても「検索する文字列」ボックスは何も変化しない。だがそれでいいのだ。
UTF-8とUTF16の違いは?
atmarkit.itmedia.co.jp
UTF-8は英数は1バイトで表現し、日本語は3バイトで表現するようになっています。
バイナリダンプ アプリ
- PowerShell の Format-Hex コマンドでファイルダンプしてみたが、日本語が表示されず、位置を特定し難しいので諦めた。
- FavBinEdit を窓の杜よりダウンロードした。
- このアプリに決めたのは、サンプル画像に日本語が表示されていたから...
マクロ(VBA)でHTMLタグ等を取る
- Googleカレンダーでは‥‥
- 右図はたまたま見つけたもの。
- 右図はたまたま見つけたもの。
- Exelにつなぐと‥‥
- 改行されていない。
- 後半はhtmlタグだらけ...
- VBAで行ったことは‥‥(完成版)
- 結果は
空白行が取れない原因は...
上記 3.3 は当初無かった。無くても上手く処理されていたように見えたのだが、気になるカレンダーが見つかった。
- Googleカレンダーの内容
- 「普通」だと思うのだが...
- 「普通」だと思うのだが...
- Outlook経由で見た Excelのセル
- 英語で、カレンダーには無い情報が書かれている。
- 空白行は取ったはずなのだが...
- SimpleTranslate/Firefox に頼んで翻訳してもらうと‥‥
- Google Meet をもっと勉強しろ‥‥ と、言っているようだ。
- Googleカレンダーで何処かを触ったのだろう...
- 16進数でダンプするしかないと思い‥‥
- "0D0A" が連続していることがわかったので‥‥
- vbCrLf を vbLf に置換した後、
- vbLf & vbLf を vbLf に置換するようにした。
編集後記
- Windows(=Googleカレンダー)の改行は 0D0A であることをうっかり忘れていた。
- Excelのセルに "0D0A" が「ある」ということが判ったが、今後に役立つことは無いだろう...
- 今は 休腰中‥‥ 来週から 田んぼ/水路 の土浚いを始める予定なので、色々調べたいこと(解っても恐らく役に立たない...)もあるが、 アップすることにした。
- 次回は、自分のために全手順を整理したい...
*1:Replace(セルの値,"<*>","")