Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表内文字列を中央揃えにするPowerPointマクロ

表内文字列を中央揃えにするPowerPointマクロ

対象:PowerPoint 2010, PowerPoint 2013, Windows版PowerPoint 2016

「vbs powerpoint 表 フォント センタリング」
という検索キーワードで、アクセスがありました。

PowerPointの、表内の文字列をセンタリング(中央揃え)する、VBScriptを探していらした方による検索です。

PowerPointの、表内文字列を操作するオブジェクトモデルは階層が深いので、PowerPoint VBAのコードをまずは確認することを、強くおすすめします。

[スポンサードリンク]

アクティブスライド上の表内文字列を中央揃えにするサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなスライドの表内文字列が中央揃えになります。


Sub 表内文字列の中央揃え()
 Dim shp As Shape
 Dim r As Long, c As Long

 For Each shp In ActiveWindow.Selection.SlideRange.Shapes
  If shp.HasTable Then
  With shp.Table
   For r = 1 To .Rows.Count
    For c = 1 To .Columns.Count
     .Cell(r, c).Shape.TextFrame _
       .TextRange.ParagraphFormat.Alignment _
       = ppAlignCenter
    Next c
   Next r
  End With
  End If
 Next shp
End Sub

アクティブスライドの全Shapeに対してFor Each~Nextループを回して、
 For Each shp In ActiveWindow.Selection.SlideRange.Shapes

もしもShapeが表であったら、
  If shp.HasTable Then

表の行に対するFor~Nextループの中で、
  With shp.Table
   For r = 1 To .Rows.Count

列に対するFor~Nextループを回します。
    For c = 1 To .Columns.Count

で、TableオブジェクトのCellメソッドに行番号と列番号を指定して、各セルを表すCellオブジェクトを取得して、文字列を中央揃えにします。
     .Cell(r, c).Shape.TextFrame _
       .TextRange.ParagraphFormat.Alignment _
       = ppAlignCenter

とにかく階層が深いので、大きく2つに分解して理解しましょう。

1つは、3重のループ処理の構造部分、
 For Each shp In ActiveWindow.Selection.SlideRange.Shapes
  If shp.HasTable Then
  With shp.Table
   For r = 1 To .Rows.Count
    For c = 1 To .Columns.Count
もう1つは、各セル内の文字列を中央揃えにする、
     .Cell(r, c).Shape.TextFrame _
       .TextRange.ParagraphFormat.Alignment _
       = ppAlignCenter
の部分です。

Shape.TextFrame.TextRangeの部分は、表以外の文字列に対する処理でも頻出するオブジェクト式でもあります。

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表内文字列を中央揃えにするPowerPointマクロ

TrackBack:0

TrackBack URL

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表内文字列を中央揃えにするPowerPointマクロ

Copyright © インストラクターのネタ帳 All Rights Reserved.

.