PowerPoint VBA ページ番号のスタイルを決める

# パワーポイントでマニュアルを作るとかチラシを作るとかまじでやめよう
## そもそも大量のスライドは事故さえ起こす
[Death by a 30-slide deck? It’s time to kill PowerPoint presentations, say experts](https://www.theglobeandmail.com/business/careers/article-death-by-a-30-slide-deck-its-time-to-kill-powerpoint-presentations-say/)
> To help NASA assess the threat of the initial wing damage, Boeing officials created three reports, totalling 28 PowerPoint slides. The reports presented “mixed” readings of the threat because the words were wrapped in some sort of bullet hierarchy. In this case, lower-level bullets mentioned doubts and uncertainties, but the highlighted big-bulleted executive summaries painted an optimistic picture. Based on the reports, NASA remained convinced Columbia was safe to return.

>When Prof. Tufte examined a key slide, he noticed it had too much text, multiple bullets and different font sizes, and it was laced with heavy jargon.

> He concluded that Boeing’s muddied messages on PowerPoint played a critical part in the mission’s failure.

## 大企業から嫌われている
[イーロン・マスク ジェフ・ベソス](https://www.inc.com/geoffrey-james/elon-musk-jeff-bezos-banned-powerpoint-heres-why.html)

もちろん、プレゼンテーションのためにパワーポイントを使えば、相手に伝わらなくても生産性が低くても、スライドの数で評価される。そういう状況では仕方がない。
しかし、Excel方眼の上を行く、「パワーポイントをPDFのデザイナーとして使う」という使い方は無理がある。

## さすがにこれはいないだろう
[GAFAの部長が断言｢いきなりパワポはNG､ワードを軽視する人は仕事ができない｣ ](https://president.jp/articles/-/46574)
とりあえず最強のプレゼンテーションは「ホワイトボードに手書き」なのは間違いない。

## スライドを使うときとは

 - 大空間
 - 写真を使う必要がある。
 - 複雑な数式を解説する必要がある。
 - 手書きでは無理なとき

そういうときに使う。つまり手書きで説明できるものは手書きが最強である。
なぜ手書きが最強なのか、電子書籍では学習ができないのと同じ理由であり、「画面の解像度が低すぎて文字があまりきれいに表示できない」という物理的な理由により、認知が低下するためである。確かにフォントのデザインに工夫を凝らせばそれなりに美しくなる。しかし、解像度に限界がある。
次に画面自体が発光しているため見づらい。我々が見たいのは情報であって光ではない。我々がみたいのは美しいスライドではなく価値のある情報なのだ。もちろん、現実はそううまくはいかない。そんなわけでパワーポイント、またはスライドは今日も作られる。
[Banning PowerPoint isn’t the answer - just use it more effectively](https://insights.ricoh.co.uk/empowering-people/banning-powerpoint-more-effectively) Richo.UKェ…


# 次は文書作成に向かない理由
## 確かにパンフレットなどのテンプレートはある
なので、そういう使い方を否定できないが。

## Wordが使えないのはただの怠慢
三ヶ月くらいはかかるが、よほどマシ。

## Excel方眼はもっとマシ
やらない偽善よりやる偽善。

## もっというとPublisherを使え
そんなにPDF化したいならPublisherを使うべきべきだが、結構落ちる。

## パワーポイントはスライド単位でしか処理できない。
長い文章を次のスライドに続かせるのは困難が伴う。Publisherは解決できる。
例えばルーズリーフのようなものにきれいに印刷したい。Publisherならある程度行間を計算してプレースホルダーを作り、次のページに文字を送ることができる。[Publisher でテキストを追加し、テキスト ボックスをリンクする](https://support.microsoft.com/ja-jp/office/publisher-%E3%81%A7%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97-%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%82%92%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%99%E3%82%8B-a2d0d61d-d9a8-45f4-98d8-1b803ef2ccf7)

## パワーポイントはPC画面でしか効果がない
PCのトラブルで画面が表示されない。固まった。PDFが開けるか？

## パワーポイントには情報が貼れるが、パワーポイントからは情報が貼れない
プレジデントの記事にもあるが、パワーポイントはとにかく一方通行でパワーポイントからOLEできる余地がない。よって情報を更新するタイプのマニュアルには向かない。

## パワーポイントは情報の墓場である
よって、パワーポイント化された情報は死蔵されているのと一緒である。

## パワーポイントにページ番号はない、あるのはスライド番号である
[画面上のスライドにスライドの番号、日付、フッターを挿入または変更する](https://support.microsoft.com/ja-jp/office/%E7%94%BB%E9%9D%A2%E4%B8%8A%E3%81%AE%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89%E3%81%AB%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89%E3%81%AE%E7%95%AA%E5%8F%B7-%E6%97%A5%E4%BB%98-%E3%83%95%E3%83%83%E3%82%BF%E3%83%BC%E3%82%92%E6%8C%BF%E5%85%A5%E3%81%BE%E3%81%9F%E3%81%AF%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B-8bad6395-a1f4-4af6-a360-0df412e510bf)

## スライド番号はフッターのみしかないというかヘッダーは存在しないし、そもそもヘッダー、フッターの余白がない
[スライド番号、ページ番号、または日付と時刻を追加する](https://support.microsoft.com/ja-jp/office/%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89%E7%95%AA%E5%8F%B7-%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7-%E3%81%BE%E3%81%9F%E3%81%AF%E6%97%A5%E4%BB%98%E3%81%A8%E6%99%82%E5%88%BB%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B-8a90ab4b-8e4d-4023-9a46-12f3313f356c)
フッターとして設定できるものは3つしかない。Wordならもっと他のものが設定できる。
[]

[フッターのテストを選択して変更できないのはなぜですか?](https://support.microsoft.com/ja-jp/office/%E3%83%95%E3%83%83%E3%82%BF%E3%83%BC%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%A6%E5%A4%89%E6%9B%B4%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B-e8db8184-b244-4370-9d16-c2ec5a33a8a2)
> 問題： スライドの下部にあるフッターのテキストを選択して変更することはできません。
解決策: フッター テキストを直接編集できない場合は、スライド マスター ビューでフッター プレースホルダーがオフになっている可能性があります。 この状況を変更するには、以下で説明するように、スライド マスター ビューを開き、そこで変更を加えます。 

[HeadersFooters オブジェクト (PowerPoint)](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.headersfooters)
メソッドはクリアのみ。
[HeadersFooters.SlideNumber プロパティ (PowerPoint)](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.headersfooters.slidenumber)
[HeadersFooterオブジェクト](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.headerfooter)

[VBAでスライドマスターのヘッダーを設定するには？:パワーポイントマクロ・PowerPoint VBAの使い方/マスター](https://www.relief.jp/docs/powerpoint-vba-slide-master-header.html)

## スライドマスターという概念が分かりづらい
[スライド マスターとは](https://support.microsoft.com/ja-jp/office/%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89-%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%A8%E3%81%AF-b9abb2a0-7aef-4257-a14e-4329c904da54)
簡単にいうと消しては困る情報が乗った台紙です。
台紙と言っても分かりづらいので、封筒をイメージする。封筒には、郵便番号の枠がある。郵便番号の枠がないと郵便番号を書く位置が決まらない。
そうした、情報の枠、封筒の色である背景、こうしたものを決めている「台紙」である。
これはPublisherにも類似した概念（マスターページ）がある。

[マスター オブジェクト (PowerPoint)](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.master)
> スライド マスター、タイトル マスター、配布資料マスター、ノート マスター、またはデザイン マスターを表します。
[Slide.Master プロパティ (PowerPoint)](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.slide.master)
[パワーポイントのスライドマスターの使い方を徹底解説！一括編集で作業効率を劇的UP - Document Studio - ビジネス資料作成支援メディア](https://studio.virtual-planner.com/powerpoint-slidemaster/)

## スライドマスターとスライドは1対1ではなく、1対多の関係
このため、現在表示している~~ページ~~スライドがどのスライドマスターに関連づいているのかが分かりづらい。

### 更にSlidesとMasterは違う
[フッターを削除（非表示に）するPowerPointマクロ:パワーポイントマクロ・PowerPoint VBAの使い方/マスター](https://www.relief.jp/docs/powerpoint-macro-remove-footers.html)

## 更にレイアウトが絡む
[スライド レイアウトを編集して再適用する](https://support.microsoft.com/ja-jp/office/%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89-%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%97%E3%81%A6%E5%86%8D%E9%81%A9%E7%94%A8%E3%81%99%E3%82%8B-6f4338f8-555f-49cf-9835-6209be3c7b48)
> スライド レイアウトをプレゼンテーション内の 1 つ以上のスライドに適用し、編集に戻ってそのレイアウトにプレースホルダー、カスタムのメッセージ テキストを追加するか、他のレイアウト変更操作を完了した場合、更新されたレイアウトをスライドに反映するには、スライドにレイアウトを適用し直す必要があります。

## テンプレートとテーマも絡む
テキストの色が黒にならない原因はこれである。
[PowerPoint テンプレートとテーマの違い](https://support.microsoft.com/ja-jp/office/powerpoint-%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%A8%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E9%81%95%E3%81%84-e2408e10-e015-43b3-8b29-b99d128ae448)
[1 つのプレゼンテーションで複数のテーマを使う](https://support.microsoft.com/ja-jp/office/1-%E3%81%A4%E3%81%AE%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92%E4%BD%BF%E3%81%86-a5648a47-1a8b-49a7-a031-23eba396ca81)
> プレゼンテーションに複数のテーマ (色、フォント、効果を含むレイアウト) を含めるには、他のスライド マスターを追加し、新しいスライド マスターにテーマを適用します。

## 番号が消えたり、消えなかったりする
### 2010まで
[設定したはずのスライド番号が表示されないときのチェック ポイント3 (PowerPoint 2007/2010)｜クリエアナブキのちょこテク]（https://www.crie.co.jp/chokotech/detail/102/）
### 2013以降
[パワーポイントのページ番号が二つ表示されていて一つ消したいのですが、色... - Yahoo!知恵袋](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10161148095)
スライド番号の挿入を複数回やるとこのようなことが生じる。
[PowerPointで2枚目のスライド番号を「1」にする方法](https://dekiru.net/article/15939/)

[ページのフッターのPowerPoint](https://support.microsoft.com/ja-jp/office/%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%95%E3%83%83%E3%82%BF%E3%83%BC%E3%81%AEpowerpoint-88932cfd-dd28-4fcb-be8e-ded56468e322)
PowerPoint for Microsoft 365 PowerPoint for Microsoft 365 for Mac その他...

>スライドにフッター情報 (スライド番号や日付など) を追加したが、まだ表示されない場合は、スライド マスター表示でフッターが現在オフになっている可能性が高い問題があります。 スライド マスター表示でフッターを有効にする方法については、次を参照してください。

[フッターのテストを選択して変更できないのはなぜですか?](https://support.microsoft.com/ja-jp/office/%E3%83%95%E3%83%83%E3%82%BF%E3%83%BC%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%A6%E5%A4%89%E6%9B%B4%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B-e8db8184-b244-4370-9d16-c2ec5a33a8a2)

## スライド番号をスライド番号として非表示にするか、フッターとして非表示にするかでアプローチが違う
 - [スライド番号を非表示にするマクロ:パワーポイントマクロ・PowerPoint VBAの使い方/マスター](https://www.relief.jp/docs/powerpoint-macro-hide-slide-numbers.html)
 
 - [フッターを削除（非表示に）するPowerPointマクロ:パワーポイントマクロ・PowerPoint VBAの使い方/マスター](https://www.relief.jp/docs/powerpoint-macro-remove-footers.html)

フッターだとマスターページまで行く。フッターは日付等を含むためである。しかし<b>普通はスライド番号しか使わない</b>ので、この違いは奇妙に思えるだろう。

## Wordと比べると極めて貧弱なレイアウト
[PageSetup](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.pagesetup) 紙のことは全く考えていないし、ヘッダーフッターもない。
[TextStyleLevel オブジェクト (PowerPoint)](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.textstylelevel)はWordのOutlineに相当する。Wordが9なのに対し、5しかない。
[TextStyle オブジェクト (PowerPoint)](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.textstyle)はWordのFontのStyleに相当するが、TextStyle オブジェクトで表される 3 つのテキスト スタイル (タイトル テキスト、本文テキスト、および既定のテキスト) のコレクションです。つまり5つのレベルの各レベルに3つしか設定できない。

逆にパワーポイントらしいのはExtraColorsで色を追加できる点だろう。
[ExtraColors オブジェクト (PowerPoint)](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.extracolors)テーマカラーをいじるよりはこちらが早いか。しかし、色数が制限されていることがわかる。
あとはそもそも画面いっぱいに表示することについて、特に設定が必要ない点である。4:3 16：9 どちらもA4サイズとは微妙に違う。



# 今回はコード的に
## 見た目だけいじる
すでに、
[全レイアウトのスライド番号の位置と大きさを揃えるパワポマクロ:パワーポイントマクロ・PowerPoint VBAの使い方/マスター](https://www.relief.jp/docs/powerpoint-vba-arrange-slide-number-placeholder.html)
先行サンプルがあるが、上記の知識がないと、なぜLayoutやMasterが出てくるのか全くわからない。
あとこれがページ番号と言う点もわからない。
ついでにいうと[CustomLayout オブジェクト (PowerPoint) | Microsoft Learn](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.customlayout)は[デザイン オブジェクト (PowerPoint) | Microsoft Learn](https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.design)の下（関連付け）にあるのに、コードではわからない。
また、通常はレイアウトを編集して再適用した方が良い。

## 注意点
今回はパワーポイントのスライドに、~~ページ~~スライド番号がある。そうページ番号ではない。
この位置、大きさがばらばらになりがち。さらにデザインにより、色が黒にならない。
こうしたことを見た目だけ是正する。


## コードのポイント
この類例はたくさん作ってきた。
基本的に~~ページ~~スライド内のShapeの名前を調べてつかんで調整する。これはWord、Excel、Publisherでも変わらない。
PowerpointはPublisherの知識があるとActiveWindowなのはあたりがつくが、SlideRangeはちょっと思いつかない。
要するに「1画面に1スライドしか表示しない」という設計になっている。これが「認知プロファイリング」だ。

次に、図形名が罠である。
図形名で「スライド番号プレースホルダー」と表示されるのは嘘で、`Slide Number Placeholder #`が正しい。
Reliefの人はInstrを使っているが、スライド番号プレースホルダーの名前をいじる人間はまずいないので、Likeでいいと思われる。
ただし、レイアウトを適用するとまた変わってしまう。力技もいいところである。

```vb
Sub TuningSledeNumber()
' パワーポイントのプレゼンテーションを開き、スライドを表示した状態で、実行させる。
' スライド単位でページ番号を調整する。
' すべてのスライドに一度に適用されない。
' レイアウト再適用すると変わる時がある。
Dim PPP As Presentation: Set PPP = ActivePresentation
Dim SSS As Slides, SS As Slide
Dim shp As Shape, shps As Shapes
Dim ssr As SlideRange
' この値は、一旦いいなというスライド番号の位置、デザインを作成し、それに合わせて値を調整すること
' 一度表示させてから調整すること
Const sngTop As Single = 513.4063! ' 上からの位置
Const sngLeft As Single = 746.5209! '左からの位置
Const sngHeght As Single = 28.75! ' スライド番号プレースホルダーの高さ
Const sngWidth As Single = 35.78795! ’　幅

Set ssr = ActiveWindow.Selection.SlideRange
Set shps = ssr.Shapes
For i = 1 To shps.Count

If shps(i).Name Like "Slide Number Placeholder*" Then
Set shp = shps(i)
Debug.Print shp.Name, shp.Top, shp.Left, shp.Height, shp.Width, shp.TextFrame.TextRange.Font.Name, shp.TextFrame.TextRange.Font.Size, shp.TextFrame.TextRange.Font.Color
With shp
.Width = sngWidth
.Top = sngTop
.Left = sngLeft
.Height = sngHeght
With .TextFrame.TextRange.Font
.Size = 12
.Name = " Meiryo UI"
.Color = 0
End With
End With
Exit For
End If
Next
End Sub
```

## このようにPowerpointは文書作成に向いていない
　そもそもOHP自体が消えている。
[昭和の小学校に必ずあった「OHP」「わら半紙」が知らぬ間に姿を消したワケ | アーバン ライフ メトロ](https://urbanlife.tokyo/post/69797/)
　一応、Amazonには1機種だけある。
　ただし、書画カメラを使えばOHPシート（最近はフィルムと言わない）を使うことは可能そうだ。しかし、OHPシートを使った人は少ないだろう。なのにスライドだけが生きているのはおかしな話。さらにとっくに実物は使ったことがないのに、それで文書を作るのはどうなのか。
　さらに、VBAはある意味「アプリケーションの仕様書」なので、Wordと比べればPowerpointの文書作成アプリケーションとしての非力さは容易にわかる。認知プロファイリングで明らかと言えるだろう。
　以上から、Powerpointを絶対使うなとは言わないが、プレゼンやチラシはまだしも、マニュアルみたいな冊子を作ることには向いていない。ページ番号すらろくに打てず、デフォルトのデザインもない。なぜこれで文書が作成できると思っているのか？