プロが教えるわが家の防犯対策術!

VBScriptにてエクセルを使用してグラフを作成し、作成したグラフを画像として保存する処理を行っています。
横棒グラフでY軸の項目名(ラベル)が長すぎて折り返されてしまう事があります。
折り返された結果、中央寄せになってしまって見栄えが悪い為、何とかしたいです。
(項目名をすべて表示、又は左寄せにしたい)

項目名はVBScriptを実行する度に値が変わります。
フォントサイズは8(これ以上小さくはできません)、最大文字数は全角半角含めて40文字程度です。

何か良い方法は無いでしょうか?

下記の事は試しました。

(1)グラフの全体サイズを大きくする。
 →項目名が1行で表示されるまで大きくした所、あまりにもグラフサイズ大きくなりすぎたので、できれば避けたい。

(2)プロットエリアの幅を調整する。
 →PlotAreaのwidthでプロットエリア全体の調整は可能な様ですが、項目名の部分の幅は変わりませんでした。
  プロットエリア内部のグラフ部分の幅を狭くできれば項目名を全て表示できるのではないかと思ったのですが、PlotAreaのInsideWidthは参照のみな様で、設定はできませんでした。

(3)Y軸の項目名を非表示にして、プロットエリアを右に移動し、分類名ラベルを左に異動する。
 →分類名ラベルも折り返し表示になっており、サイズ変更不可らしく1行表示ができませんでした。

「エクセルグラフの項目名を折り返されない様」の質問画像

A 回答 (4件)

空白を均等に配置するマクロ(EX.「あいうえ」→「あ  い  う  え」)を組んで、関節参照します。



自動分割されれば

項目名 あ  い    _____
        う  え

という感じですか。

正直そこまでやる必要があるのか分かりませんが。
というかマクロのプログラムは宿題とさせて頂きます。
    • good
    • 0

問題の解決策を自作できたのでしたら,それはそれで良かったのではありませんか。


他の良い方法と言われても,再現性のない?「起こったり起こらなかったりするけど何だか思ったとおりにいかないのだけは間違いない」では,スミマセンがちょっとアドバイスのしようもありません。


まぁ関係あるか判りませんが,思いつきだけ並べておきます。
それぞれのグラフでグラフの横幅(グラフエリア・プロットエリア)の設定が違っているからかも?しれません。同じサイズに統一します。
単純にフォントの種類がプロポーショナルフォントになっているからかも?しれません。MS明朝などの等幅フォントにします。
フォントのサイズの設定が違うのかも?しれません。同じフォントサイズになるようにプログラムで明記します。
    • good
    • 0

落とし処の深さがちょっと見えませんが,とりえあえず言えることとしては



●項目軸ラベルの表示幅を選択的に操作する方法はありません。
 横棒グラフを前提に「幅」と言いますが,プロットエリアの横幅を広げて(その広げ代としてグラフエリアの幅を広げて)やるしか,手はありません。
 最大40文字を8ptで押し込めたときに1行に表示するのに必要なプロットエリアとグラフエリアの幅を調査し,それで全グラフを描画するのが一番手っ取り早いといえば手っ取り早い方法です。
 複数作成するグラフを「皆同じサイズ」で描いてしまっていいのか,それぞれグラフの幅を「データに応じた最適幅」で可変にしたいのかによって,工夫の深さが変わります。


○左詰に関して言えば
 =LEFTB(項目名セル&REPT("□",40),40)  □は半角スペース
 などのようにして全文字幅を調整(統一)すれば,左に揃います。
 手を尽くせば,当該のグラフの項目軸ラベルの最大文字数を事前に調査してから数式の固定値を調整してしまうことも出来ますね。(全角半角込みの40文字と言ってるのか,半角換算で40バイトと言ってるのかちょっと不明です)
 わざわざ関数のために別セルを用意しなくても,プログラムで実データの後ろにスペースを継ぎ足し書き換えてグラフにしてもイイと思います。
    • good
    • 0
この回答へのお礼

項目名が可変で半角全角漢字ひらがな記号等入り乱れているせいか、空白を追加して全て同じバイト数にしても、意図していない位置で折り返されたりしてしまいます。

項目軸ラベルの表示幅はエクセル側で独自に計算しているらしく、40バイト幅を最大にすることもあれば50バイト幅を最大にすることもあり、条件がよく分かりません。
例えば下記の様に「おおおおお」だけが折り返し表示されている場合、「おおおおお」を「おおおお」に直したりしてもまた折り返し表示になることがあります。(必ずではない)

・ああああ
・いいい
・えええ
・おおおお
  お



・あああ
  あ
・いいい
・えええ
・おおお
  お

※4文字目で折り返していたはずなのに、修正後は3文字目で折り返される様になってしまった。


最後の項目名にダミー文字列"あああああああ"……等、実際の項目名長よりかなり長い文字列を設定すると幅が自動調整されてその他項目名は全文字列が1行で確認できる様になります。
グラフを画像化する際にダミー項目の箇所を隠して画像化する苦肉の策をとることにしました。

もし他に何か他に良い方法があれば教えて下さい。

お礼日時:2012/01/21 20:54

グラフの項目名を元の物ではなく、元の物をLEFT関数で字数制限をつけて関節参照したものを使ってみたらどうでしょう。

    • good
    • 0
この回答へのお礼

全項目を同じバイト数(LEFTB使用)で表示してみたのですが、
項目名が全角半角記号色々入り乱れているせいか、ガタガタになってダメでした……。

お礼日時:2012/01/21 20:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています