tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルExcel の グラフタイトルの1文字づつのフォント変更
記事No9429
投稿日: 2009/10/02(Fri) 14:59
投稿者ハルク
Excel2007のグラフのタイトルをある部分のみ下付き文字にしたいのですが、
どうしてもできません。手動での変更は可能です。

オートシェイプではできたのですが、
グラフのタイトルはオートシェイプとは異なるみたいです。

今回は、VBAで実験していますが、最終的にはVB.NETで行います。

オートシェイプにて変更可能のVBAは以下です。
ActiveSheet.Shapes("正方形/長方形 1").TextFrame2.TextRange.Text = "H2O"
Call ActiveSheet.Shapes("正方形/長方形 1").TextFrame2.TextRange.Characters(2).InsertSymbol("Arial", AscW("2"))
ActiveSheet.Shapes("正方形/長方形 1").TextFrame2.TextRange.Runs(2).Font.BaselineOffset = -0.25

グラフタイトルのVBAは以下です。
シンボルが追加されないようです。
ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "H2O^"
ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Format.TextFrame2.TextRange.Characters(2).InsertSymbol "Arial", AscW("2")
ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Format.TextFrame2.TextRange.Runs(2).Font.BaselineOffset = 0.1

[ツリー表示へ]
タイトルRe: Excel の グラフタイトルの1文字づつのフォント変更
記事No9437
投稿日: 2009/10/08(Thu) 21:56
投稿者camputer
 こんばんは.

 「グラフタイトル」については Chart.ChartTitle で取りますが,
>ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "H2O^"
ということは,「軸ラベル」の方ですね.
 手元のVB2008で探してみましたが,下付き文字にするだけでよろしければ
BaselineOffsetせずに
      ChartObject.Chart.Axes.Item.AxisTitle.Characters.Font.Subscript = True
で可能です.

 少しでもご参考になれば幸いです.
 
(せっかく上級者&超上級者の方々が閲覧してくださるので,VB歴の記入など
特にGoogleで検索しても出てこないようなHNの方ならば(私もそうですが orz )
【掲示板ご利用に際し】を順守した投稿の方が分かりやすいかもしれません)

[ツリー表示へ]
タイトルRe^2: Excel の グラフタイトルの1文字づつのフォント変更
記事No9438
投稿日: 2009/10/12(Mon) 18:30
投稿者ハルク
こんばんわ。

>  「グラフタイトル」については Chart.ChartTitle で取りますが,
> >ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "H2O^"
> ということは,「軸ラベル」の方ですね.
>  手元のVB2008で探してみましたが,下付き文字にするだけでよろしければ
> BaselineOffsetせずに
>       ChartObject.Chart.Axes.Item.AxisTitle.Characters.Font.Subscript = True
> で可能です.

この方法であれば、すべての文字が下付文字になると思います。
H2Oであれば、2のみ下付文字にしたいのです。

質問は、
グラフのタイトルのフォントはすべて同じフォントなのですが、
1部のみ異なるフォントにする方法はどうすればいいのでしょうか?
というものです^^

そういうことがEXCELを操作(手動)するとできるのですが、
プログラムでやるとできないのです。

以上、よろしくお願いします。

[ツリー表示へ]
タイトルRe^3: Excel の グラフタイトルの1文字づつのフォント変更
記事No9439
投稿日: 2009/10/13(Tue) 09:46
投稿者花ちゃん
> そういうことがEXCELを操作(手動)するとできるのですが、
> プログラムでやるとできないのです。

Excel 上でその時のマクロを取って見ましたか?

[ツリー表示へ]
タイトルRe^4: Excel の グラフタイトルの1文字づつのフォント変更
記事No9440
投稿日: 2009/10/13(Tue) 10:38
投稿者ハルク
> Excel 上でその時のマクロを取って見ましたか?

Excel 2007でのマクロの記録は記録が行えない仕様です。
Excel 2003のマクロの記録を参考に初めの質問の内容のマクロをくみ上げました。

[ツリー表示へ]
タイトルRe^5: Excel の グラフタイトルの1文字づつのフォント変更
記事No9442
投稿日: 2009/10/13(Tue) 11:53
投稿者るしぇ
> Excel 2007でのマクロの記録は記録が行えない仕様です。
ん?これはマクロを記録したけどコードが出力されなかったと言っていますか?

マクロの記録は実行できるんですよね?
http://soumukouboo.blog91.fc2.com/blog-entry-107.html

[ツリー表示へ]
タイトルRe^6: Excel の グラフタイトルの1文字づつのフォント変更
記事No9444
投稿日: 2009/10/13(Tue) 12:02
投稿者ハルク
> > Excel 2007でのマクロの記録は記録が行えない仕様です。
> ん?これはマクロを記録したけどコードが出力されなかったと言っていますか?
>
> マクロの記録は実行できるんですよね?

記録自体は行えます。

http://74.125.153.132/search?q=cache:Hn3ICeCoolsJ:download.microsoft.com/download/e/f/9/ef977b5f-3f45-47b7-beb4-475f5d49ed93/2007OfficCompatibility_20070730.doc

に、「Excel 2007 では図形オブジェクトの操作はマクロに記録されなくなりました。」とあります。
グラフは図形オブジェクトのようです。

[ツリー表示へ]
タイトルRe^5: Excel の グラフタイトルの1文字づつのフォント変更
記事No9443
投稿日: 2009/10/13(Tue) 12:00
投稿者花ちゃん
下記ではできませんか?

ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters(2, 1).Font.Subscript = True

[ツリー表示へ]
タイトルRe^6: Excel の グラフタイトルの1文字づつのフォント変更
記事No9445
投稿日: 2009/10/13(Tue) 12:09
投稿者ハルク
> ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters(2, 1).Font.Subscript = True

一番初めに実行しましたが、できませんでしたので、
原因を調査してみた結果、フォントの一部のみ変更する処理が必要なようです。

一部の文字でフォントが変更された場合、
ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Format.TextFrame2.TextRange.Runs.Count
が、1ではなくなることからの予想です。

その結果、フォントを追加する方法を検索した所、
InsertSymbolで追加できるようでしたので、
行ってみましたが、追加されませんでした。

オートシェイプの場合は追加できるようですが。。。

[ツリー表示へ]
タイトルRe^7: Excel の グラフタイトルの1文字づつのフォント変更
記事No9446
投稿日: 2009/10/13(Tue) 12:40
投稿者花ちゃん
> > ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters(2, 1).Font.Subscript = True
>
> 一番初めに実行しましたが、できませんでしたので、
> 原因を調査してみた結果、フォントの一部のみ変更する処理が必要なようです。

どうできなかったのでしょうか?
WindowsXP Excel 2007 で動作確認したところ、タイトル文字の2文字目だけが
下付き文字になりましたが、それではだめと言う事でしょうか?

[ツリー表示へ]
タイトルRe^8: Excel の グラフタイトルの1文字づつのフォント変更
記事No9447
投稿日: 2009/10/13(Tue) 13:12
投稿者ハルク
>
> どうできなかったのでしょうか?
> WindowsXP Excel 2007 で動作確認したところ、タイトル文字の2文字目だけが
> 下付き文字になりましたが、それではだめと言う事でしょうか?

Windows XP Excel 2007で動作確認したところ、
何も変化はありませんでした。
以下、コードです。

    ActiveSheet.ChartObjects("グラフ 2").Activate
    ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "H2O"
    ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters(2, 1).Font.Subscript = True

[ツリー表示へ]
タイトルRe^9: Excel の グラフタイトルの1文字づつのフォント変更
記事No9448
投稿日: 2009/10/13(Tue) 13:56
投稿者花ちゃん
> Windows XP Excel 2007で動作確認したところ、
> 何も変化はありませんでした。
エラーもでませんか?

ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "H2O"
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters(2, 1).Font.Subscript = True

適当にグラフを作成して、事前に実行前のようにタイトルを適当に書いておけば
上記コードを実行すると実行後のように2文字目が下付き文字に変更されますし、
タイトルもH2Oに変わります。

実行図
http://hanatyan.sakura.ne.jp/yybbs/read.cgi?no=165

[ツリー表示へ]
タイトルRe^10: Excel の グラフタイトルの1文字づつのフォント変更
記事No9449
投稿日: 2009/10/13(Tue) 14:37
投稿者ハルク
> 実行図
> http://hanatyan.sakura.ne.jp/yybbs/read.cgi?no=165

すみません、お手数ですが、version番号を教えて頂いてもよろしいですか?

こちらのversion番号です。
Microsoft Office Excel 2007 (12.0.6504.5001) SP2 MSO (12.0.6425.1000)

誤解の無いように、グラフはExcel2007で作成したものと思います(色、文字、つや等で)。
小さい方のversionが違うのかそうでないのか知りたいのです。

同じ場合は、グラフの作成方法を変更してみます。

[ツリー表示へ]
タイトルRe^11: Excel の グラフタイトルの(追加)
記事No9450
投稿日: 2009/10/13(Tue) 15:35
投稿者花ちゃん
> Microsoft Office Excel 2007 (12.0.6504.5001) SP2 MSO (12.0.6425.1000)

 Microsoft Office Excel 2007 (12.0.4518.1014) SP2 MSO (12.0.4518.1014)
  WindowsXP Excel 2007
  多分バージョンの違いは関係ないと思いますよ。

ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "H2O"
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters(2, 1).Font.Subscript = True

新規シートに、適当にグラフを作成(手動で実行前のように)して、事前に実行前のように
タイトルを適当に書いて(手動で)おけば上記コードを実行すると実行後のように
2文字目が下付き文字に変更されますし、タイトルもH2Oに変わります。


念の為にと思いVistaで確認したところ、全ての文字が下付きになってしまいますね。
バージョンは
Microsoft Office Excel 2007 (12.0.6504.5001) SP2 MSO (12.0.6425.1000)
なので、原因が、バージョンのせいか、Vista のせいかは解りませんが、バグのような
気がしますね。

[ツリー表示へ]
タイトルRe^12: Excel の グラフタイトルの1文字づつのフォント変更
記事No9451
投稿日: 2009/10/13(Tue) 17:08
投稿者ハルク
> > Microsoft Office Excel 2007 (12.0.6504.5001) SP2 MSO (12.0.6425.1000)
>
>  Microsoft Office Excel 2007 (12.0.4518.1014) SP2 MSO (12.0.4518.1014)
>   WindowsXP Excel 2007
Office を再インストールして、以下のversionで実行すると動きました。
どのパッチで不具合が発生するのかこれから検証したいと思います。
個人的には、SP2が怪しいと思います。
かなり時間がかかると思いますが、結果は報告します。

Microsoft Office Excel 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

以上、お手数をかけまして、本当にありがとうございました。

[ツリー表示へ]
タイトルRe^13: Excel の グラフタイトルの1文字づつのフォント変更
記事No9452
投稿日: 2009/10/13(Tue) 17:47
投稿者花ちゃん
ヘルプのAxisTitle オブジェクトの使用例に下記のようなコードが記載しておりますが
それを実行しても全ての文字が対象になってしまいます。

使用例
次の使用例は、埋め込みグラフ 1 をアクティブにし、数値軸ラベルの文字列を設定します。文字列は、MS ゴシックで 10 ポイントにし、"millions" という文字列は斜体にします。

Visual Basic for Applications
Worksheets("sheet1").ChartObjects(1).Activate
With ActiveChart.Axes(xlValue)
    .HasTitle = True
    With .AxisTitle
        .Caption = "Revenue (millions)"
        .Font.Name = "MS ゴシック"
        .Font.Size = 10
        .Characters(10, 8).Font.Italic = True
    End With
End With

[ツリー表示へ]
タイトルRe^14: Excel の グラフタイトルの1文字づつのフォント変更
記事No9453
投稿日: 2009/10/13(Tue) 18:26
投稿者ハルク
一部だけ異なるフォントにすることができないようです。

また、手動で下付き文字に設定したタイトルであっても、
マクロでタイトルを設定すると同じフォントになります。(一番最後に設定したフォント)

中間報告します。

Microsoft Office Excel 2007 (12.0.4518.1014) MSO (12.0.4518.1014)    OK
Microsoft Office Excel 2007 (12.0.6214.1000) SP1 MSO (12.0.6213.1000)    OK
Microsoft Office Excel 2007 (12.0.6341.5000) SP1 MSO (12.0.6320.5000)    OK

やはり、SP2が怪しいです。
残りは後日にて行います。

[ツリー表示へ]
タイトルRe^15: Excel の グラフタイトルの1文字づつのフォント変更
記事No9462
投稿日: 2009/10/14(Wed) 18:19
投稿者ハルク
やはり、SP2でした。

Microsoft Office Excel 2007 (12.0.4518.1014) MSO (12.0.4518.1014)    OK
Microsoft Office Excel 2007 (12.0.6214.1000) SP1 MSO (12.0.6213.1000)    OK
Microsoft Office Excel 2007 (12.0.6341.5000) SP1 MSO (12.0.6320.5000)    OK
Microsoft Office Excel 2007 (12.0.6504.5001) SP1 MSO (12.0.6320.5000)    OK
Microsoft Office Excel 2007 (12.0.6504.5001) SP2 MSO (12.0.6425.1000)    NG
ここで、SP2のアンインストールを行いました。

以下のコマンドです。
oarpman.exe /remove O12SP2    
Microsoft Office Excel 2007 (12.0.6504.5001) SP1 MSO (12.0.6320.5000)    OK

これ以上はどうしようもなかったので、
(SP2のパッチを個別にアンインストールはできませんでした。)
SP2からはできないようです。マイクロソフトのサポートに問い合わせます。

ありがとうございました。

[ツリー表示へ]