• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vbaで、オートシェイプ文字幅と間隔について)

VBAでオートシェイプ文字幅と間隔の取得方法

このQ&Aのポイント
  • VBAでExcelのオートシェイプ内の文字幅と間隔を取得する方法について詳しく知りたいです。
  • 現在、自分が分かっている文字間隔を取得する方法として、ActiveWorkbook内の全てのワークシートとシェイプをループして、TextFrame2.TextRange.Charactersのフォントのスペーシングの値を取得する方法があります。
  • しかし、これだけでは標準、文字間隔を広げる、カーニングの設定値を取得することはできません。他の方法やコードを知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.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

6ass3eu6
質問者

補足

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

関連するQ&A