• ベストアンサー

ここに投稿すると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

  • エクセル VBAコードを表示できません

    職場のエクセル2000についての質問です。 通常Visual Basicの画面でVBAのコードを表示できるかと思います。 ところがこのVisual Basicの画面を色々といじっているうちに、コードを表示できなくなってしまいました。 普通にコードが表示される画面に戻すにはどうすれば良いのでしょうか? よろしくお願いします。

  • このサイトでVBAコードのインデントを反映させる方法?

    いつもお世話になっております。 このサイトでVBAの質問をよくさせていただいております。 今回、疑問に思ったのは、自分で書いたコードをVBEからここにコピペすると、入っているはずのインデントがすべて消えてしまっているということです。 他の方の投稿を見るとやはり同じように消えているものや、ちゃんとはいっているものもあります。 どうやったら、インデントを反映させることができるのでしょうか?

  • お礼メールが送られてこないようにするには

    OKWEBで質問に対して回答をして相手からお礼があると OKWEB側からお礼がありましたというメールが送られてくるのですがこのメールを送られてこないようにすることはできますか?

  • No.2014068のつづきです。VBAで困ってます。

    いったん解決したのですが新たな問題が起きましたので質問させてください。 No.2014068で質問し、Sheet1に下記3つのコードが入ったファイルができました。 1) 質問で書いたH列からA列にもどるVBA 2) No.3の回答のVBA 3) No.4の回答に対するお礼のVBA このファイルを単独で使う時は大丈夫なのですが、ほかにExcelファイル(新規でも既存でも)を開いてファイル内でEnterを押すとエラーメッセージが出てしまいます。 アイコンの画は停止メッセージのものです。 また、この状態でVBA入りファイルを先に閉じ、残ったVBAの入っていないファイル内でEnterを押すと、マクロを含んだファイルを開くときに出るメッセージが出て、いま閉じたVBA入りのファイルを呼び出してしまいます。 コードも開いてみましたがどれも白紙でした。 どうしてこの現象が起きるのかわかりません。 ためしに… 1) いったんExcelのソフトを閉じて、次に立ち上げた時にでてくる新規Book.1内でEnterを押した時のEnterは、普通にセル移動の役目をしました。 2) VBAが(1)と(2)だけだと他にファイルを開いても影響しませんでした。 VBA(3)が影響しているのでしょうか。 (でもこの機能はあると助かるのです…。) 今回も伝え方がうまくいかないのですが、ご回答よろしくお願いします。

  • excel VBA ブック間コピーについて

    evcel VBA初心者です。 ブック間コピーの方法を探っていて以下の質問にたどり着きNO.2 NO.3の回答を試してみましたが、値のみしかペーストされません。 書式を含めすべてコピペする方法を教えて下さい。 Range("**")を変えればいいというものなのでしょうか。 また、NO2の回答のコードの中で sFindbook の変数はどこで宣言しているのでしょうか。 http://okwave.jp/qa/q5261470.html

  • 同じ様な投稿を繰り返す質問者。

    このサイトで、同じような質問を繰り返し行ったり(○○が1番と)、複数の回答者が丁寧に回答をしていても、毎回みんな一括で同じ文章をコピペして貼り付けるだけで、回答が役に立ったかどうか不明という質問者を複数見かけます。 別に、個人ごとにお礼が欲しいとかいうのではなく、回答が役に立って疑問が解消したかどうか回答者側は気になるところです。 こういう質問者って、何を考えて同じような投稿を繰り返すのでしょうか?

  • 再投稿について

    先日このサイトで質問したのをすっかり忘れていました。で、此処からのメールで思い出しあわてて 確認をした所、回答が一件ありました。メールにも「何らかの反応を示せ」との事。 ところが、このサイトに慣れてないのにもかかわらず「お礼」を記入しようとしたら、肝心の回答者の NAMEが判らず、解答欄を確認してイザ、という時もう投稿されているようでした。何も書いてない にもかかわらず・・・。やり直そうと思ったら二度目はだめ!とのことで「お礼」が出来ません。 こんな場合どうすれば再び「お礼」の言葉を記入できるのでしょうか? 困ってます。お解かりの方の回答をお待ちしますが、果たして{お礼」の言葉が・・・?

  • タメ口投稿

    タメ口回答は、しばしば見受けられます。タメ口回答を寄せられても、よい印象は持たない方が多いかもしれません。  稀に、タメ口質問を見かけます。タメ口回答をしても叩かれないのに、それらの質問者は、タメ口での質問やお礼が、叩かれているのです。  不思議に感じられますので、皆さんにいくつか質問いたします。 【Q-1】 タメ口回答をするのはなぜでしょうか?また、どういう人がするのでしょうか? 【Q-2】 タメ口回答をしても、叩かれないのはなぜでしょうか? 【Q-3】 タメ口での質問やお礼が、叩かれるのはなぜでしょうか? 【Q-4】 タメ口回答者と質問者とでは、どちらが上位にあるのでしょうか? 【Q-5】 タメ口投稿は、好ましいといえるのでしょうか?  以上、恐れ入りますが、できるかぎり各項目に沿ってお答え願います。

  • OKWEBのシステムについて

    OKWEBのことについて質問です。 質問をして回答が返ってくるとそこの回答欄の下にあるお礼欄にお礼を書くと回答者にメールで通知がいくようになってますが補足欄に書いても相手に補足通知メールっていくのでしょうか?

  • お礼メールについてお聞きします。

    ここのカテゴリーで良いのか迷いましたが宜しくお願いします。 okwebに回答するとお礼通知メールがパソコンに届きますが その受信メールを拒否設定することはできますか? もし拒否したらokwebから退会させられるでしょうか? 昨日 知っている子が私の家に来てパソコンを使ったんですが 私に『お前 okwebに入ってるんだなー』 と言われました。 その子は 私がパソコン初心者なので色々と教えてくれるためにパソコンを使ったので 私は何も言えません。 でもこれから先、お礼メールなどを見られると嫌なのでどうすれば良いのかと質問しました。受信拒否できるのなら それが一番良いと考えてます。