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

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

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

■現在、自分が、分かっている文字間隔と幅を取得するPG(URL参照)
http://detail.chiebukuro.yahoo.co.jp/qa/question …
下記の方法ですと、MsgBoxで、[文字間隔を広げる]設定値が取得されます。
For Each wkbWorksheets In ActiveWorkbook.Worksheets
For Each wksShapes In wkbWorksheets.Shapes
With wksShapes.TextFrame2.TextRange.Characters
MsgBox .Font.Spacing
End With
Next wksShapes
Next wkbWorksheets

※[標準]、[文字間隔をつめる]、[カーニング]で、vbaから設定値を取得するには?

「vbaで、オートシェイプ文字幅と間隔につ」の質問画像

A 回答 (1件)

元の値が0なので取得できないと勘違いしたのでしょう。


下記のように自分で指定してみればわかります。

Sub test()
 Dim wkbWorksheets As Worksheet
 Dim wksShapes As Shape
For Each wkbWorksheets In ActiveWorkbook.Worksheets
For Each wksShapes In wkbWorksheets.Shapes
With wksShapes.TextFrame2.TextRange.Characters
.Font.Spacing = 5
.Font.Kerning = 10
MsgBox .Font.Kerning
MsgBox .Font.Spacing
End With
Next wksShapes
Next wkbWorksheets

End Sub

この回答への補足

カーニング値の取得方法ありがとうございました。
[文字間隔をつめる]設定値の取得は、.Font.Spacingで、マイナス値になるようですね。
[文字間隔を広げる]設定値の取得は、.Font.Spacingで、プラス値になると…。
ご指導ありがとうございました(__)。

補足日時:2014/11/06 02:28
    • good
    • 0

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