dポイントプレゼントキャンペーン実施中!

動作環境
OS:Windows7(64Bit) Home Premium SP1
MS:Office Version2007 SP3

Excel図形内のテキストの編集で、マウスをドラッグしてテキストの領域を選択後、コンテキスト
メニューから、フォント(F)-フォント(設定ダイアログ)画面-[フォント]タブ上に、下線の色が、
あります。
テキスト設定した場合、vba上から下線の色を取得する方法が、知りたいです。
大体、目途は、付いています。
どなたか、ご指導願います。

■現在、自分が、分かっている下線の色を取得するPG
下記の方法ですと、全てエラーです。
For Each wkbWorksheets In ActiveWorkbook.Worksheets
For Each wksShapes In wkbWorksheets.Shapes
With wksShapes.TextFrame2.TextRange.Characters
MsgBox .Font.UnderlineStyle.ColorIndex
MsgBox .Font.UnderlineStyleColorIndex
MsgBox .Font.Underline.ColorIndex
MsgBox .Font.UnderlineColorIndex
End With
Next wksShapes
Next wkbWorksheets

A 回答 (2件)

1番目の文字列を含めて色付きアンダーラインを設定してから実行すれば


1文字目のものについて取得できます。
コードを書くときは適当に書いてもだめですから、
ピリオド(.)を打ってそのなかから適切なものを選択すれば下記のようにいくつかのことがわかります。
MsgBox .Font.UnderlineColor.SchemeColor
MsgBox .Font.UnderlineColor.RGB
MsgBox .Font.UnderlineStyle

前回のレスの通り、すべての文字について調べないといけないので面倒です。
当方はやる気がしないのでご自分で、さらにfor each を使って面倒な判定を設定して取得してください。
    • good
    • 0

.Font.Underline.ColorIndexというプロパティは無いようですが


そのままだとエラーになりませんか。

そのままでは目的のものを取得できません。
何も取得しないか最初の1文字のぶんだけ取得できるかでしょう。
.Charactersの中もすべての文字について調べる必要があります。
 Wordの場合だと書式を指定してアンダーラインの部分1か所ずつの単位で検索されるので簡単なコードで済みますが、エクセルでは1文字ずつでしか取得できません。

この回答への補足

はい、エラーになります。
ですので、エラーになる部分をエラーにならないように正しい取得が、
出来るvba(PG)が、知りたいのです。
エラーになる部分は、例として、想定したvba(PG)です。
ご指導の程、よろしくお願いします(__)。

補足日時:2014/11/27 21:35
    • good
    • 0

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