• ベストアンサー

ここに投稿するとVBAコードのインテンドが消えてしまうのはなぜ?

このサイトをよく利用させていただいております。特にOffice系ソフトカテゴリーをよく見ます。 OKWebへのお願いに近い質問なのですが、VBAコードを投稿すると、質問・回答を問わず、コード内のインテンドがすべて綺麗さっぱり消滅してしまいます。 非常に見づらくて困ります。 そのため、わざわざインテンドの代わりにスペースキーを何度も打って代用される方もよく見かけます。 (わたしはそこまでは出来ませんが) 不思議なのは、自分が書いた回答にお礼が付いたときに、OKWebからメールが届きますが、その際メールに記載されたわたしの回答にはちゃんとインテンドされているのです!? 不思議に思い、OKWeb画面のソースを表示してみると、わたしはHTMLには疎いのでよくわかりませんがどうもインテンドされているように見えます。 質問は 1.画面ではインテンドが消え、コピペしてもインテンドはされないのに、なぜメールでの通知はインテンドされているのでしょうか? 2.OKWeb画面からインテンド付きの状態でコピペする方法はないでしょうか? 3.なぜOKWebさんは、VBAコードからインテンドを削除するのでしょうか? 4.OKWebさんにVBAコードからインテンドを消さないでとお願いするにはどうしたらよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.2

●VBAコードのインデントが消えてしまうのはなぜ? まず、一般論として、 HTMLドキュメントをIE等のブラウザが解釈して表示する際に、  ・連続する半角スペースは単一のスペースとみなす  ・行頭の半角スペースは表示しない のが、標準的な仕様・動作です。 したがって、 投稿されたテキストについて、サイト側で特別な処理をしていない限り、 通常のブラウザでは半角スペースによるインデントは表示されません。 つまり 「インデントを削除している」というよりも 「インデントを表示するための処理をしていない」というのが、 このサイトの現在の仕様です。 ---------------------- ●1.画面ではインデントが消え、コピペしてもインデントはされないのに、   なぜメールでの通知はインデントされているのでしょうか? 通知メールはHTML形式ではなくテキスト形式で送られてくるので、 投稿したテキストがそのまま表示されます。 ---------------------- ●2.OKWeb画面からインデント付きの状態でコピペする方法はないでしょうか? 「困難」…と書くつもりでいろいろ試してみたら、意外とできますね(^^ 一手間かかりますが、後述のように[ユーザースタイルシート]を作成して切り替えれば、 参考画像のようにインデントが表示され、コピペも可能になります。 ---------------------- ●3.なぜOKWebさんは、VBAコードからインデントを削除するのでしょうか? 上述の通り、【何もしなければ表示されない】ので、  可能性1.単に何もしてないだけ  可能性2.技術スタッフの能力の問題 といったところでしょう。 ---------------------- ●4.OKWebさんにVBAコードからインデントを消さないでと   お願いするにはどうしたらよいでしょうか? ・FAQ  追加して欲しい機能/要望があります! http://faq.okwave.jp/EokpControl?&site=okwave&lang=en&tid=102992&event=FE0006 ・サポートへのお問い合わせ http://faq.okwave.jp/EokpControl?event=DE0001 --------------------------------------------- ●ユーザースタイルシートを使う 例えばインターネットエクスプローラをご使用の場合、 1.メモ帳で下記のように記述して、適当な場所に適当な名前で保存する td { white-space:pre; font-family:MS ゴシック; line-height:80% } 2.上記txtファイルの拡張子を css に変更する 3.IEを開き、 [ツール]>[インターネットオプション]>[全般]タブ>[ユーザー補助]で、 [自分のスタイルシートでドキュメントの書式を設定する]にチェックし、 2で作成したcssファイルを指定する。 ※他の部分の表示が崩れてしまうので、設定しっぱなしというわけにはいきません。  アクセスキーを使って切り替えるにしても   [ALT]+([T]→[O]→[E]→[D]) ⇒ [Enter] ⇒ [Esc]  ですから、実用になるかどうかは微妙ですね。 ※インデントの問題だけならwhite-spaceの設定だけで良いのですが、  <br>タグと改行が重複して1行ずつ開いた感じになるのでline-heightを減らしています。 ※「コードを見易くする」という趣旨で等幅フォントの設定もしています。 ※私にとっても畑違いの分野なので、最良最短の手法とは思いません。  より実用的な対策もありそうに思われます。 --------------------------------------------- なお、コードを投稿する際、 私も全角スペースでインデントをつけるようにしていますが、 投稿直前に半角スペース2つを全角スペース1つに置換しているだけで、 「スペースキーを何度も打って」いるわけではありません、念のため(^^;;; 以上ご参考まで。長乱文陳謝。

merlionXX
質問者

お礼

ありがとうございます。 そうなんですか、行頭のインデントが消えるのはIEの仕様なのですか。 ではそうならない画面表示はサイト側で特別な処理をしているということなんですね? 自分が見る方法としてはスタイルシートでドキュメントの書式を設定するというのがあるのはわかりました。でもけっこう面倒そうですね。 いっそのことメニューの「表示」、「ソース」でタグ付きのHTMLをコピーしてマクロで不要なHTML独自の記号?を消してしまえばいいのかも知れません。 あとは、誰にでもインデントされた状態で見てもらうには、やはりOKWebさんに「特別な処理」をしてくださいとお願いするしかないわけですね。 そのような声が多ければOKWebさんも考えてくれるかもしれませんね。 ありがとうございました。

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

全ては投稿システムの自動機能で行われています。 文頭のタブや半角スペースと文末の半角スペースやタブ・改行が自動的に削除されるのです。 ですから、VBAのコードに限った事ではありません。 >インテンドの代わりにスペースキーを何度も打って代用される方もよく見かけます。 半角スペースは削除されるので、投稿者は全角スペースを使っています。

merlionXX
質問者

お礼

ありがとうございます。 インテンドではなくインデントでしたね、失礼しました。 で、投稿システムの自動機能でなぜそのようなことをするのでしょうか? それを防ぐため、投稿者に全角スペースを無駄に打たせるOKWebさんはなぜそのような仕様にしたのか・・・。 不思議です。

関連するQ&A