いろいろとアイデアが湧いてきたので,改良してみました。
マクロを実行すると,フォームが表示され,そこから色や位置,高さ(幅)などを設定できます。
プログレスバーは上下だけでなく,左右にも設定可能にしました。
また,最初のタイトルページに付加するかしないかの設定もできます。
かなり汎用的に使えるようになりました。
とりあえず,サンプルデータをアップしたので,ダウンロードしてみてください。
ProgressBar_sample.pptm
マクロの実行で,mainというマクロを実行すれば,OKですよ。
2014年1月5日日曜日
2014年1月4日土曜日
PowerPointのスライドにプログレスバーを付加するマクロ
あけましておめでとうございます。
正月番組に飽きたので,新年早々ですが,ちょっと便利なマクロ「PowerPointのスライドにプログレスバーを付加するマクロ」をお教えします。
プレゼンを見ていて,あとどれくらいスライドがあるのかなぁと思うことがあります。ページ数を表示させることもできますが,もっとかっこよくしたい。
そこで,プログレスバーを表示できたらよいのではと考えました。
全部スライドができてから一つ一つ図形を挿入していくのは大変な作業ですし,後からスライドを変更したいと思ってもできません。
そんなときには,マクロを使えばよいのです。
まず,パワポでマクロを使う方法は,こちらを見てください。
下記のコードを「開発」リボンのVisual Basic Editorに貼り付けて実行します。
実行すると,プログレスバーの位置を聞いてきますので,上部なら「はい」,下部なら「いいえ」ボタンをクリックします。
プログレスバーの色やサイズは,マクロの上の方に記述されているので,その数値を変更します。
Macでも動くのかは確認していません。自己責任でご使用お願いします。<m(__)m>
正月番組に飽きたので,新年早々ですが,ちょっと便利なマクロ「PowerPointのスライドにプログレスバーを付加するマクロ」をお教えします。
プレゼンを見ていて,あとどれくらいスライドがあるのかなぁと思うことがあります。ページ数を表示させることもできますが,もっとかっこよくしたい。
そこで,プログレスバーを表示できたらよいのではと考えました。
全部スライドができてから一つ一つ図形を挿入していくのは大変な作業ですし,後からスライドを変更したいと思ってもできません。
そんなときには,マクロを使えばよいのです。
だれか作っていないかなぁと探したら,ありましたよ。
もともとは,Insert a progress bar to powerpoint presentationという記事のマクロを改良したようです。
早速使ってみましたが,とてもいいです。
挿入位置がスライドの最下部に固定されているので,デザインによっては最上部にもできたらいいなあと思い,再改良してみました。
挿入位置がスライドの最下部に固定されているので,デザインによっては最上部にもできたらいいなあと思い,再改良してみました。
まず,パワポでマクロを使う方法は,こちらを見てください。
下記のコードを「開発」リボンのVisual Basic Editorに貼り付けて実行します。
実行すると,プログレスバーの位置を聞いてきますので,上部なら「はい」,下部なら「いいえ」ボタンをクリックします。
プログレスバーの色やサイズは,マクロの上の方に記述されているので,その数値を変更します。
Macでも動くのかは確認していません。自己責任でご使用お願いします。<m(__)m>
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sub MakeProgressBar() | |
Const r As String = "00" '色・RGB値のR | |
Const g As String = "99" '色・RGB値のG | |
Const b As String = "00" '色・RGB値のB | |
Const pbH As Long = 10 '高さ | |
Const pbBG As Single = 0.6 '背景の透過性 | |
Dim i As Long | |
Dim s As Shape | |
Dim wTop As Long 'プログレスバー位置 | |
Dim rc As Integer | |
On Error Resume Next | |
rc = MsgBox("プログレスバー位置はどこにしますか?" & vbCrLf & "上部(はい) 下部(いいえ)", vbYesNo + vbQuestion, "確認") | |
If rc = vbYes Then | |
wTop = 0 | |
Else | |
wTop = ActivePresentation.PageSetup.SlideHeight - pbH | |
End If | |
With ActivePresentation | |
'背景 ProgressBarBG の設定 | |
.SlideMaster.Shapes("ProgressBarBG").Delete | |
Set s = .SlideMaster.Shapes.AddShape( _ | |
Type:=msoShapeRectangle, _ | |
Left:=0, _ | |
Height:=pbH, _ | |
Top:=wTop, _ | |
Width:=.PageSetup.SlideWidth) | |
With s | |
.Fill.ForeColor.RGB = _ | |
RGB(CInt("&H" & r), CInt("&H" & g), CInt("&H" & b)) | |
.Fill.Transparency = pbBG | |
.Line.Visible = msoFalse | |
.Name = "ProgressBarBG" | |
End With | |
'プログレスバー ProgressBar の設定 | |
For i = 1 To .Slides.Count | |
.Slides(i).Shapes("ProgressBar").Delete | |
Set s = .Slides(i).Shapes.AddShape( _ | |
Type:=msoShapeRectangle, _ | |
Left:=0, _ | |
Height:=pbH, _ | |
Top:=wTop, _ | |
Width:=i * .PageSetup.SlideWidth / .Slides.Count) | |
With s | |
.Fill.ForeColor.RGB = _ | |
RGB(CInt("&H" & r), CInt("&H" & g), CInt("&H" & b)) | |
.Line.Visible = msoFalse | |
.Name = "ProgressBar" | |
End With | |
Next i | |
End With | |
End Sub | |
登録:
投稿 (Atom)