- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vbaで、オートシェイプ文字幅と間隔について)
VBAでオートシェイプ文字幅と間隔の取得方法
このQ&Aのポイント
- VBAでExcelのオートシェイプ内の文字幅と間隔を取得する方法について詳しく知りたいです。
- 現在、自分が分かっている文字間隔を取得する方法として、ActiveWorkbook内の全てのワークシートとシェイプをループして、TextFrame2.TextRange.Charactersのフォントのスペーシングの値を取得する方法があります。
- しかし、これだけでは標準、文字間隔を広げる、カーニングの設定値を取得することはできません。他の方法やコードを知りたいです。
- みんなの回答 (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で、プラス値になると…。 ご指導ありがとうございました(__)。