人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

現在、自分のPower Pointで利用できるすべてのフォントを、
VBAのコードで取得する方法を教えてください。

たとえばfontname(1000)という配列に、
fontname(1)="HGS教科書体"
fontname(2)="MS Pゴシック"
fontname(3)="怨霊"'←WindowsやOfficeに標準では入っていない

というように、後から自分で入れたフォントも
代入できるようにしたいのです。

「Microsoft Officeでインストールされるフォント一覧」だけなら
以下でわかるようなのですが・・・。
http://tacomakix.blog15.fc2.com/blog-entry-2.html

よろしくお願いいたします。

●質問者: lionfan
●カテゴリ:コンピュータ
✍キーワード:Microsoft Office Office point POWER VBA
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● zifree
●35ポイント ベストアンサー

CommandBarComboBoxのリストを見る方法があります。

イミディエイトウインドウにフォントの一覧を表示します。

PowerPoint2003でのみ確認。

Sub displayFont()

Dim ctrlBox As CommandBarComboBox

Dim i As Integer

With Application.CommandBars("Formatting")

If Left(Application.Version, 1) = 9 Then

Set ctrlBox = .Controls("フォント(&F):") 'PowerPoint2000,2003

Else

Set ctrlBox = .Controls("フォント(&F):") 'PowerPoint97?

End If

End With

For i = 1 To ctrlBox.ListCount

Debug.Print ctrlBox.List(i)

Next

End Sub

なお、

http://www.geocities.jp/vbaxl/sample/011.html

を参考にしました。

こちらはExcelでの方法になりますがPowerPointでもほぼ同じです。

◎質問者からの返答

ありがとうございました!!

動きました!! やったーーーー!!!

本当にありがとうございます!!


2 ● zifree
●265ポイント

回答オープン前に失礼しますが、一箇所間違えました。

私の環境(WinXP、PowerPoint2003)ではなぜか動いていますが、

PowerPoint2003のバージョンは11.0なので

Left(Application.Version, 1)

ではOfficeのバージョンを判別できていないですね・・・。

If Left(Application.Version, 1) = 9 Then

If CInt(Application.Version) > 9 Then

と変えて下さい。

ただしOffice12以降だとまた動かない可能性もありますし、

厳密にバージョンチェックを行いたい場合はApplication.Versionの結果で

Select Caseするような形が良いと思います。

◎質問者からの返答

了解です。そのようにいたします。

本当にありがとうございました。

それではこれにて終了です!!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ