• 締切済み

エクセルグラフの項目名を折り返されない様にしたい

VBScriptにてエクセルを使用してグラフを作成し、作成したグラフを画像として保存する処理を行っています。 横棒グラフでY軸の項目名(ラベル)が長すぎて折り返されてしまう事があります。 折り返された結果、中央寄せになってしまって見栄えが悪い為、何とかしたいです。 (項目名をすべて表示、又は左寄せにしたい) 項目名はVBScriptを実行する度に値が変わります。 フォントサイズは8(これ以上小さくはできません)、最大文字数は全角半角含めて40文字程度です。 何か良い方法は無いでしょうか? 下記の事は試しました。 (1)グラフの全体サイズを大きくする。  →項目名が1行で表示されるまで大きくした所、あまりにもグラフサイズ大きくなりすぎたので、できれば避けたい。 (2)プロットエリアの幅を調整する。  →PlotAreaのwidthでプロットエリア全体の調整は可能な様ですが、項目名の部分の幅は変わりませんでした。   プロットエリア内部のグラフ部分の幅を狭くできれば項目名を全て表示できるのではないかと思ったのですが、PlotAreaのInsideWidthは参照のみな様で、設定はできませんでした。 (3)Y軸の項目名を非表示にして、プロットエリアを右に移動し、分類名ラベルを左に異動する。  →分類名ラベルも折り返し表示になっており、サイズ変更不可らしく1行表示ができませんでした。

みんなの回答

  • hirokoon
  • ベストアンサー率38% (7/18)
回答No.4

空白を均等に配置するマクロ(EX.「あいうえ」→「あ  い  う  え」)を組んで、関節参照します。 自動分割されれば 項目名 あ  い    _____         う  え という感じですか。 正直そこまでやる必要があるのか分かりませんが。 というかマクロのプログラムは宿題とさせて頂きます。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

問題の解決策を自作できたのでしたら,それはそれで良かったのではありませんか。 他の良い方法と言われても,再現性のない?「起こったり起こらなかったりするけど何だか思ったとおりにいかないのだけは間違いない」では,スミマセンがちょっとアドバイスのしようもありません。 まぁ関係あるか判りませんが,思いつきだけ並べておきます。 それぞれのグラフでグラフの横幅(グラフエリア・プロットエリア)の設定が違っているからかも?しれません。同じサイズに統一します。 単純にフォントの種類がプロポーショナルフォントになっているからかも?しれません。MS明朝などの等幅フォントにします。 フォントのサイズの設定が違うのかも?しれません。同じフォントサイズになるようにプログラムで明記します。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

落とし処の深さがちょっと見えませんが,とりえあえず言えることとしては ●項目軸ラベルの表示幅を選択的に操作する方法はありません。  横棒グラフを前提に「幅」と言いますが,プロットエリアの横幅を広げて(その広げ代としてグラフエリアの幅を広げて)やるしか,手はありません。  最大40文字を8ptで押し込めたときに1行に表示するのに必要なプロットエリアとグラフエリアの幅を調査し,それで全グラフを描画するのが一番手っ取り早いといえば手っ取り早い方法です。  複数作成するグラフを「皆同じサイズ」で描いてしまっていいのか,それぞれグラフの幅を「データに応じた最適幅」で可変にしたいのかによって,工夫の深さが変わります。 ○左詰に関して言えば  =LEFTB(項目名セル&REPT("□",40),40)  □は半角スペース  などのようにして全文字幅を調整(統一)すれば,左に揃います。  手を尽くせば,当該のグラフの項目軸ラベルの最大文字数を事前に調査してから数式の固定値を調整してしまうことも出来ますね。(全角半角込みの40文字と言ってるのか,半角換算で40バイトと言ってるのかちょっと不明です)  わざわざ関数のために別セルを用意しなくても,プログラムで実データの後ろにスペースを継ぎ足し書き換えてグラフにしてもイイと思います。

himawari0603
質問者

お礼

項目名が可変で半角全角漢字ひらがな記号等入り乱れているせいか、空白を追加して全て同じバイト数にしても、意図していない位置で折り返されたりしてしまいます。 項目軸ラベルの表示幅はエクセル側で独自に計算しているらしく、40バイト幅を最大にすることもあれば50バイト幅を最大にすることもあり、条件がよく分かりません。 例えば下記の様に「おおおおお」だけが折り返し表示されている場合、「おおおおお」を「おおおお」に直したりしてもまた折り返し表示になることがあります。(必ずではない) ・ああああ ・いいい ・えええ ・おおおお   お ↓ ・あああ   あ ・いいい ・えええ ・おおお   お ※4文字目で折り返していたはずなのに、修正後は3文字目で折り返される様になってしまった。 最後の項目名にダミー文字列"あああああああ"……等、実際の項目名長よりかなり長い文字列を設定すると幅が自動調整されてその他項目名は全文字列が1行で確認できる様になります。 グラフを画像化する際にダミー項目の箇所を隠して画像化する苦肉の策をとることにしました。 もし他に何か他に良い方法があれば教えて下さい。

  • hirokoon
  • ベストアンサー率38% (7/18)
回答No.1

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

himawari0603
質問者

お礼

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

関連するQ&A

  • グラフのサイズを揃えたいのでVBAを使っていたのですが、数値軸の最大値

    グラフのサイズを揃えたいのでVBAを使っていたのですが、数値軸の最大値などが異なる際は、 プロットエリアでは、幅が揃えられません。というのも、色々試した結果・・・ プロットエリアサイズは、数値軸の文字左側からグラフの右端までの長さを規定しているようなのです。 そこをグラフの箱部分のサイズを揃えることを可能にできないでしょうか? '// データを取得 With ActiveChart chtH = .Parent.Height chtW = .Parent.Width chtPH = .PlotArea.Height chtPW = .PlotArea.Width End With 現在上記のマクロで調整したグラフからサイズを取得し、他のグラフのデータを書き換えるという マクロを組んでいます。参考までにグラフを載せておきます。 この2つのグラフは、このマクロを使って揃えましたが、最大値が異なるため横幅が揃いません。 最大値を揃えると横幅が綺麗に揃います。しかしそのようにするとグラフが見難くなるためできません。 どなたかアドバイスをお願いします。 手動で揃えるには、大変な量なので・・・

  • エクセルのグラフについて

    よろしくお願いします。 エクセルで横棒のグラフを作っているのですが、項目数が25個あり、1つの項目の文字数が多く(多いもので40字)、項目軸の文字数が多いのか、文字通しが重なって、全部表示できません。 全部表示しようとするととんでもなく長いグラフになっていまいます。プロットエリアを大きくしょうとしても、なぜかプロットエリアの余白が大きくなるだけです。 項目の文字を折り返したりして、コンパクトに表示できないのでしょうか。 よろしくお願いします。

  • エクセル 3-Dグラフ x,y,z軸の項目軸について

    40×40の数値データを3-Dグラフで表示しています. A行にx軸,1列にy軸,それぞれ項目軸として 使いたいのですが, 片方の軸を項目軸ラベルとして使うと もう片方の軸を項目軸ラベルとして使う事が出来ません. S1,S2と表示してしまうので 任意の数値に変えて表示するには どうしたらよいでしょうか?

  • Excel(グラフについて)

    Excelのグラフについてなのですが、 一つのシートにグラフが数十枚(50枚くらい)あります。そのグラフの軸の最小値、最大値、、またサイズ(プロットエリア、グラフエリア)を簡単に揃えることってできるのでしょうか? 分かる方お願いします。

  • エクセルの折れ線グラフについて

    大学の研究で結果をエクセルの折れ線グラフで作成しているのですがx軸の値をグラフの下に表示する方法がわかりません。 扱うのは振動データでしてx軸を時間、y軸を振動データの値とします。このデータで折れ線グラフを作成し、プロットエリアの下とx軸のラベルの間に時間の値が表示されるようにしたいのです。 質問が分かりにくくて申し訳ありませんがやり方を教えてください。

  • エクセル グラフの項目軸

    エクセル2003を使ってグラフを作っています。 プロットエリア下側の項目軸を長く伸ばしたいのですが 方法が分かりません。分かる方教えてください。 軸の書式設定で「目盛の種類」を外向きにすると1、2mmほど軸が出てきますがこの線を下側に1、2Cmほど伸ばすやり方を教えてください。

  • Excel:グラフの項目名の位置をそろえるには

    Excelでレーダー型グラフを作成してます。 ここで調べて個々のグラフのサイズはそろえることができたのですが、項目名がグラフエリアからはみだして見えなくなってしまいます。 サイズを変えるしか手段はないのでしょうか? グラフエリア内の表示サイズは変えられないのでしょうか? よろしければ、教えてください。

  • エクセルのグラフの項目位置.

    エクセルのグラフを作ったときに,X軸の項目単位の位置を変えようとするのですが,相対位置が1000を超える位置に起きたい場合はどうすればいいでしょう? 主軸と,第2軸を使った場合にできなくなります. (主Y軸が0で交差,主軸のマイナスの位置で第2Y軸と交差.この第2Y軸上の0の部分に項目単位ラベルを持ってきたいのです) また,相関図の場合,十字にXY軸が来た場合,グラフの外に項目ラベルと持ってきたい場合もどうすればいいのかわかりません. 相対位置がないので,移動すらできません. どなたかご助力お願いいたしますm(_ _"m)ペコリ

  • Excelでグラフのサイズを揃える

    Excel97/2000のVBAを使って、埋め込みグラフのサイズなどを既存のグラフから設定を読み込み、別のグラフを同じサイズに設定するマクロを作成していますが、PlotAreaの位置と大きさだけがうまく動作しなくて困っています。 PlotAreaのWidth,Left,Height,Topの設定が上手くいかないのです。 ChartObjectのサイズより大きくWidthを設定できないとか、軸ラベルが入らないほど小さくは設定できないとかいうことは知っていて、そういう制限がないサイズや位置に設定しようとしても上手くいかない(たまに上手くいくときがあるのですが、どういう時に上手くいくのかはつかめていません) ネットで調べても、PlotAreaのサイズ設定に関しては、難儀している人が多く、上手くいったという話を見つけたことがありません。 PlotAreaの設定を上手くやる方法はあるのでしょうか?具体的なコツやポイントなどありますか?

  • Excel グラフの項目軸について

    各学年で実施した1学期・2学期のアンケート結果を帯グラフで表示させました。 Y軸・・・各学年 学期 X軸・・・各項目の% を表示しているのですが、どうしてもY項目軸の”学期”は横向きなのに、 ”学年名”は立て向きに表示されます。 この”学年名”を横向きで表示させたいのですが、 項目軸の書式設定の向きを変更してもかわりません。 どのようにしたら表示がすべて横向きになるのか教えてください。

専門家に質問してみよう