エクセル表貼り付けについて(HTMLメール編No.02100
佐藤 さん 17/09/22 04:29
 
大変お世話になっています。
使い始めてまだ数週間ですが、細かいところが気になっており質問させてください。

HTMLメール編集アドインを使わせていただいていますが、エクセル表を張り付けた際
の再現は非常に高く大変ありがたく使わせていただいています。
ただエクセル表上、列や行を隠したうえでコピーしそれを張り付けた場合、秀丸メー
ル上はうまく隠れているのですが、送信されたメールがGmail上ではセルとセルの間
が離れて表示されてしまいます。。

下記のようなコードなのですが、秀丸メール上はうまくa と bがくっついて表示され
ますが、Gmail上はうまく表示されないようです。

<table width="147" style="width: 110pt; border-collapse: collapse;" border="
0" cellspacing="0" cellpadding="0"><font face="MS Pゴシック">
 </font><colgroup><col width="79" style="width: 59pt; mso-width-source: user
set; mso-width-alt: 2889;"><font face="MS Pゴシック">
 </font><col width="68" style="width: 51pt; mso-width-source: userset; mso-w
idth-alt: 2486;"><font face="MS Pゴシック">
 </font><tbody><tr height="20" style="height: 15pt;"><font face="MS Pゴシ
ック">

  </font><td width="79" height="20" style="border: 0.5pt solid windowtext; w
idth: 59pt; height: 15pt; background-color: transparent;"><font face="Calibr
i">a</font></td><font face="MS Pゴシック">
  </font><td width="68" style="border-width: 0.5pt 0.5pt 0.5pt 0px; border-s
tyle: solid solid solid none; border-color: windowtext windowtext windowtext
 black; width: 51pt; background-color: transparent;"><font face="Calibri">d<
/font></td><font face="MS Pゴシック">

 </font></tr><font face="MS Pゴシック">
</font></tbody></table>

上記のメールをGmailアカウントに送付し、webメーラーを使用してそのまま転送した
テーブルデータは下記のようになります。a と dが引き離されます。

<table width="147" style="width:110pt;border-collapse:collapse" border="0" c
ellspacing="0" cellpadding="0"><tbody><tr><td><font face="MS Pゴシック">
 </font></td></tr></tbody><colgroup><col width="79" style="width:59pt"></col
group><colgroup><col width="68" style="width:51pt"></colgroup><tbody><tr hei
ght="20" style="height:15pt"><td width="79" height="20" style="border:0.5pt
solid windowtext;width:59pt;height:15pt;background-color:transparent"><font
face="Calibri">a</font></td><td><font face="MS Pゴシック">
  </font></td><td width="68" style="border-width:0.5pt 0.5pt 0.5pt 0px;borde
r-style:solid solid solid none;border-color:windowtext windowtext windowtext
 black;width:51pt;background-color:transparent"><font face="Calibri">d</font
></td><td><font face="MS Pゴシック">

 </font></td></tr><tr><td><font face="MS Pゴシック">
</font></td></tr></tbody></table>

なにか簡単にできる対策があれば教えていただけないでしょうか。。
宜しくお願い申し上げます。

[ ]
RE:02100 エクセル表貼り付けについて(HTMNo.02104
秀まるお2 さん 17/09/22 10:04
 
 テストしてみたら再現はできました。

 HTMLメールを自分のgmailアカウントに送信して秀丸メールで受信すると、

 |a_____|d_____|

 みたいな感じの表として出てきますが、Webブラウザでgmailにログインして見
ると、

 |a_____        |d_____|

 みたいな感じで間が出来るようです。htmlのソースを見ると、「a」」と「d」
の間に余計な空の<td>〜</td>タグが入ってるようでした。

 秀丸メールから送信するHTMLの文面に1つ無駄なfontタグがあるようでした。

 表の列は、

   <td>.....</td>
   <td>.....</td>

 の羅列になってるのが普通ですが、今回のは

   <td>.....</td><font face="MS Pゴシック">
   </font><td>.....</td>


 みたいに、列と列の間に余計なfontタグがあります。試しにこの無駄なfont
タグを取って送信したら、Webブラウザ上でもうまく、変な間が入ることなく表
示されました。

 これらの問題は、つまり、

 − Excelの方での非表示列について、余計なfontタグを生成することが問題。

 − GmailのWebメールの方で、余計なfontタグを空の<td>〜</td>タグに変換
   するっていう、おせっかいな処理がある。

 の合わせ技で発生してるってことなんだと思います。

 ということで、つまり、秀丸メールでどうにか出来る問題では無いということ
で、あきらめてもらうか・・・、または、秀丸メールの方で、余計なfontタグを
手作業で削除して送信するかしていただくしか無いかなぁと思います。

 今回のケースだと、

    <font face="Calibri">a</font></td><font face="MS Pゴシック">

 とある所の末尾のfontタグと、その次の行の先頭にある</font>タグを取れば
大丈夫でした。

[ ]
RE:02104 エクセル表貼り付けについて(HTMNo.02106
秀まるお2 さん 17/09/22 10:34
 
 マクロでなんとかするとしたら、

    setcompatiblemode 0x00020000;
    replaceallfast "<font.*?>[\\s\\n]*?</font>" , "" , regular, nocasesense;

 ってマクロを実行すれば、こういう無駄なfontタグを削除することが出来ます。
もし今回のようなケースが今後も繰り返し起きそうでしたら、例えば上記ような
マクロを作った上で、「マクロ - マクロ登録...」の「自動起動」ページの「あ
とで送信/今すぐ送信時」に登録しておく作戦もあると思います。

[ ]
RE:02106 エクセル表貼り付けについて(HTMNo.02110
佐藤 さん 17/09/23 01:13
 
早速のご対応本当にありがとうございます。
頂いたマクロですと(aやらdの)テーブルの中身まで消えてしまったのですが、頂いた
ものからアスタリスクを消したものでもよいでしょうか?
(お恥ずかしながら正規表現を追いかけるのでやっとのレベルです。)

setcompatiblemode 0x00020000;
replaceallfast "<font.*?>[\\s\\n]?</font>" , "" , regular, nocasesense;

何かまた不明な点等ありましたら質問させていただくかもしれませんが、今回も素早
いご対応ありがとうございました。

[ ]
RE:02110 エクセル表貼り付けについて(HTMNo.02111
佐藤 さん 17/09/23 02:46
 
失礼しました。さきほどのはエクセル上で2列行を隠した場合機能しないことがわか
りましたので、下記のように変更したら上手くいっているようです。
意図としては改行前に</font>を含まないものとして挿入しました。
正直素人目には自信がありませんが、ご参考までに投稿させていただきます。。

setcompatiblemode 0x00020000;
replaceallfast "<font((?!</font>).)*?>[\\s\\n]*?</font>" , "" , regular, noc
asesense;

[ ]
RE:02111 エクセル表貼り付けについて(HTMNo.02114
秀まるお2 さん 17/09/25 08:43
 
 正規表現間違ってすみません。

 fontタグにマッチさせるのを、たぶん、

   <font[^<>]*?>

 みたいにしたら良かったのかなぁと思います。

[ ]
RE:02114 エクセル表貼り付けについて(HTMNo.02130
佐藤 さん 17/09/26 04:46
 
早速ご教示いただき、ありがとうございました。
快適に使用させていただいています。助かりました。

[ ]