Excelで、標準モジュール内にVBAの記述をするのですが、

直打ちだと、例えば余計なスペースや改行が入っていたりと、
見た目がかなり汚くなってしまいます。

この「見た目」をきれいできるような機能、もしくは実現可能
なフリーソフトがありましたら教えていただけないでしょうか。

どうぞよろしくお願い致します。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2010/12/19 06:16:56
  • 終了:2010/12/26 06:20:02

回答(1件)

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 CoolDriver 20 17 4 2010-12-19 10:09:22
  • id:asuka645
    標準のマクロエディタだと、スペースやインデントを入れることで読みやすくしているわけですが、「『見た目』をきれいできるような」というのは具体的にどのような方式のことを指しておられますか?
    いくつか事例をあげていただけると答えやすくなります。
  • id:miku1973
    例えば、1行が長すぎたら「_」を使って改行が入るとか、
    IFで始まる箇所が半角スペース2つの後からだったら
    End IFも半角スペース2つ後から始まるとか。
    こんな感じです。
    これらを手動ではなく自動で実施したい。
       

    直打ちするとぐちゃぐちゃになりがちで見難いのと、
    人に提供するときにみっともないというのを避けたい
    のです。
  • id:hathi
    私も、VBEのコードウインドウで、標準モジュール内にコードを直接書きますが、あまり汚いとは思っていません。
    『余計なスペースや改行』は【入ってしまう】のではなくて【自分が入れた】のではないかと思います。
     
    なにが余分であるのか、どれだけ入れるのが見やすいかは、個人の感覚の問題もあると思います。適当にインデントしたり、行を開ける(空改行を入れる)ことも場合によっは、見やすく知る工夫だと思っています。 
     
    1行のコードを複数行に分割して表示させたい場合も、区切りの付け方は、本人の理解とか、コードの内容によって変わると思います。 
    1行を区切った次の行の実質書き出し位置をどこにするのかも、人でなくては、、、

    > Function Area5gon_xy(x1, x2, x3, x4, x5, y1, y2, y3, y4, y5) As Variant
    > '五角形の面積xy座標から求めます
    > '3角形が3つ合わさったものが5角形
    >  Area5gon_xy = Area3Angle_xy(x1, x2, x3, y1, y2, y3) + _
    >   Area3Angle_xy(x1, x3, x4, y1, y3, y4) + _
    >    Area3Angle_xy(x1, x4, x5, y1, y4, y5)
    > End Function

    > For n = 0 To array_size - 2
    >  '3角形が(n-2)合わさったものがn角形
    >  AreaPolygon_xyarray = AreaPolygon_xyarray + _
    >  Area3Angle_xy(xs(0), xs(n + 1), xs(n + 2), ys(0), ys(n + 1), ys(n + 2))
    > Next n

    表示される1行の長さも、画面のウインドウの幅の広げ方で変わります。印刷する場合も縮小印字の仕方で適当な量が違います。 
     
    「見た目」をきれいできるような機能をもつフリーソフトがあるとして、カスタマイズが必要ではないかと思います。 それよりも直に自力でスペースを入れたり、改行を入れる方が良いと私は思います。
  • id:miku1973
    いい例が浮かばないのですが、
    例えばマイクロソフトのFrontPageというソフトがあります。
    まあ、htmlを編集できるソフトなんですが、
    例えばぐっちゃぐっちゃで改行すら入っていないようなhtml記述を入れても、
    ちゃんと自動的に見栄えをキレイにしてくれます。
    すごい便利です。

    このイメージのようなことがVBA記述でもできるものがあっても変では
    ないと思うのです。同じような機能のものが欲しい。

    もちろん細かいメンテは手動でやりますが、大雑把なメンテはやってほしい。
    FrontPage程度でよいので。
  • id:hathi
    申し訳ありません。
    マイクロソフトのFrontPageを使ったことがないので、イメージが湧きません。
     
    Htmlのタグを判定して改行したり、行頭位置をコントロールするのでしょうか。
    人にもよるでしょうが、dimとか、いくつかのものは、コードの行頭に置くのが普通でしょうが、
    私の場合、Select Case とか For は、ほとんど行頭ですが、Ifでも、行頭に置くことが多いとは言え、行中に使うこともあります。 入力したコードを自動的に改行をして欲しいと思ったことはありません。
     
    miku1973さんは、ブラインドタッチで入力されるのかもしれませんが、頭の中のイメージでは、何かのブロッキングをしてるのではないでしょうか。 その段落の終わりや、文の終わりで、改行を入力すれば、ほとんどきれいに整形されていませんか。
     
    改行を入力した行の行頭位置で、次の行の行頭が始まるのも、それなりに便利だと思っています。
    IFで始まるブロックや、Forで始まるブロックを入力するときには、私は、次の行に End IF やNextを入力して行頭位置を一致させてしまってから、End IFやNextの行頭に戻り改行を入れて空行のブロックにして、そこに内容を入力します。
    元にもどっても半角スペース2つ後から始まるとか。
     
    http://miyahorinn.fc2web.com/vbabegin/s_06.html
    http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_vbe.html
    http://www.add-ins.com/macro-products-for-Microsoft-Excel/how-to-indent-vba-code/how-to-indent-vba-code.htm
    http://translate.google.co.jp/translate?hl=ja&sl=en&u=http://www.add-ins.com/macro-products-for-Microsoft-Excel/how-to-indent-vba-code/how-to-indent-vba-code.htm&ei=JZ4QTeriG4OmvgO72JH_DQ&sa=X&oi=translate&ct=result&resnum=7&ved=0CFMQ7gEwBg&prev=/search%3Fq%3DSmart%2BIndenter%26num%3D20%26hl%3Dja%26prmd%3Divns
     
    CoolDriverさんの回答に いい答えがあるかもしれません。 開いてご覧になったらいかがでしょうか。
  • id:asuka645
    なぜ回答をオープンせずに質問をキャンセルしたのでしょうか?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません