PowerPointで複数テーブルの列幅をマクロで一括変更したかったので、
まず、スライドに挿入したテーブルの列幅を探ってみます
youtube.com
https://youtube.com/live/GzRznqxvKoA
目次
00:00 ライブ開始の挨拶
00:33 1.いつもの手ウォッチで探る
05:38 変数選択後、右クリック後、ウォッチ式の追加 操作方法
08:08 1.1 表の判断は HasTable
11:29 1.2 列幅は Width
15:14 Item1など、中身を探る
16:16 2.列幅の値を代入するには?変更するには
18:09 2.1 Columns.Item(n)
20:19 2.2 Table.Columns(n)
28:05 2.3 頭ActivePresentationからいくと
31:38 3.全ての表を探し、列幅を取得する
38:55 4.ExcelからPowerPoint表の列幅を取得する
45:35 実行結果 パワポ表の列幅をExcelシートへ書き込む
47:41 5.次は、逆パターン Excelシートの列幅をPowerPointにセットして表の列幅を変更する
49:04 実行結果を先に見せる
51:06 コードを説明する
55:23 6.おわりの挨拶 伝えたかった事を再度伝える
59:35 再度伝えたいことを説明する
1.いつもの手ウォッチで探る
シェイプの下にある、オブジェクトを
ウォッチ式で探ってみます。
'パワーポイント 選択Slidesを1つ変数へ代入、STOPで止める 'ウォッチ式で確認テスト用 Sub Test001_選択Slidesを1つ変数へ代入() Dim objShape As Shape Set objShape = ActiveWindow.Selection.ShapeRange(1) '↑1番目を変数に代入、未選択はノーチェックぉぃぉぃ Debug.Print "objShape.Name=" & objShape.Name MsgBox "選択されたシェイプは" & objShape.Name Stop 'ここで、コードの実行を止めるので、ウォッチ式を追加してね MsgBox "終了、お疲れ様" End Sub
1.1 表の判断は HasTable
: HasTable : msoTrue : MsoTriState : Module1.Test001_選択Slidesを1つ変数へ代入
1.2 列幅は Width
+ : Table : : Table/Table : Module1.Test001_選択Slidesを1つ変数へ代入
+ : Columns : : Columns/Columns : Module1.Test001_選択Slidesを1つ変数へ代入
: Count : 4 : Long : Module1.Test001_選択Slidesを1つ変数へ代入
- : Item 1 : : Variant/Object/Column : Module1.Test001_選択Slidesを1つ変数へ代入
: Width : 150 : Single : Module1.Test001_選択Slidesを1つ変数へ代入
2.列幅の値を代入するには?変更するには
? objShape.Table.Columns.Count
4
2.1 Item(n)
? objShape.Table.Columns.Item(1).Width
150
objShape.Table.Columns.Item(1).Width = 300
2.2 Table.Columns(n)
objShape.Table.Columns(2).Width = 200
objshape.Table.Columns(2).Cells(2).Shape.TextFrame.TextRange.Text = "Ken3TEST"
2.3 頭ActivePresentationからいくと
? ActivePresentation.Slides(2).Shapes("表 2").Table.Columns(2).Width
200
以上が、ウォッチ式を使い、オブジェクトの値を探る方法です。