<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PowerPointVBA | VBA・GAS・Pythonで仕事を楽しく効率化</title>
	<atom:link href="https://officevba.info/category/powerpointvba/feed/" rel="self" type="application/rss+xml" />
	<link>https://officevba.info</link>
	<description>仕事の役に立つVBA・GAS・Pythonのコードを紹介していきます。</description>
	<lastBuildDate>Sat, 07 Mar 2020 13:11:48 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://officevba.info/wp-content/uploads/2017/04/cropped-Excel_1-32x32.jpg</url>
	<title>PowerPointVBA | VBA・GAS・Pythonで仕事を楽しく効率化</title>
	<link>https://officevba.info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>PowerPointでアニメーションの表示・非表示を切り替えるVBAコード</title>
		<link>https://officevba.info/animation/</link>
					<comments>https://officevba.info/animation/#respond</comments>
		
		<dc:creator><![CDATA[okumasahito]]></dc:creator>
		<pubDate>Thu, 12 Jul 2018 14:17:16 +0000</pubDate>
				<category><![CDATA[アニメーション設定]]></category>
		<guid isPermaLink="false">http://officevba.info/?p=1465</guid>

					<description><![CDATA[目次 PowerPointのアニメーション機能と印刷を共存させたいアニメーションの表示非表示を切り替えるための事前準備アニメーションの表示非表示を切り替えるVBAコード PowerPointのアニメーション機能と印刷を共 [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">PowerPointのアニメーション機能と印刷を共存させたい</a></li><li><a href="#toc2" tabindex="0">アニメーションの表示非表示を切り替えるための事前準備</a></li><li><a href="#toc3" tabindex="0">アニメーションの表示非表示を切り替えるVBAコード</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">PowerPointのアニメーション機能と印刷を共存させたい</span></h2>
<p>講義資料としてPowerPointで問題などを作った場合、アニメーションをつけて解答を表示させるように設定することが多いと思います。<br />
私も研修を担当することがあるので、講義資料を作り、その中にアニメーションで解答が表示させられるように練習問題を組み込むことがあります。</p>
<p>このアニメーションは講義の際にはとても便利で必要な項目を過不足なく伝えられる優れた機能ですが、印刷して渡す資料にはアニメーションをつけた解答が全て表示された状態となってしまい、問題用紙として渡すことができなくなります。</p>
<p>逆に解答部分に目隠しを用意し、その目隠しを取り除くようにアニメーションを組み込んだ場合は、問題用紙を配布することはできますが、今度は解答を配布することができなくなります。</p>
<p>多くの人は配布資料用としてアニメーションをすべて消したファイルを印刷することで対処しているかと思いますが、管理するファイルが増えて不便になってしまいます。</p>
<p>この不便さを解消するためにアニメーション部分を表示させるか非表示とするかを切り替えるPowerPointのVBAコードを考えました。<br />
今回紹介するVBAコードを組み込むことで、アニメーション部分の表示・非表示をすぐに切り替え、目的とする配布資料を印刷しやすくすることができます。</p>
<h2><span id="toc2">アニメーションの表示非表示を切り替えるための事前準備</span></h2>
<p>下の画像のように、アニメーションのオブジェクト名をすべて「アニメ〇〇」で統一しておきます。<br />
オブジェクト名の確認・変更は「ホーム」→「選択（矢印マーク）」→「オブジェクトの編集と表示」で行うことができます。</p>
<p>今回はこのオブジェクト名「アニメ〇〇」の最初3文字「アニメ」を認識させて表示非表示を切り替えるVBAコードを考えます。</p>
<p><a href="https://officevba.info/wp-content/uploads/2018/07/eb4642770970ff4ff356010f1fedb2a8.jpg"><img decoding="async" src="https://officevba.info/wp-content/uploads/2018/07/eb4642770970ff4ff356010f1fedb2a8-300x156.jpg" alt="" width="300" height="156" class="alignnone size-medium wp-image-1473" srcset="https://officevba.info/wp-content/uploads/2018/07/eb4642770970ff4ff356010f1fedb2a8-300x156.jpg 300w, https://officevba.info/wp-content/uploads/2018/07/eb4642770970ff4ff356010f1fedb2a8-768x400.jpg 768w, https://officevba.info/wp-content/uploads/2018/07/eb4642770970ff4ff356010f1fedb2a8-700x364.jpg 700w, https://officevba.info/wp-content/uploads/2018/07/eb4642770970ff4ff356010f1fedb2a8-320x167.jpg 320w, https://officevba.info/wp-content/uploads/2018/07/eb4642770970ff4ff356010f1fedb2a8.jpg 1920w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<h2><span id="toc3">アニメーションの表示非表示を切り替えるVBAコード</span></h2>
<p>オブジェクト名が「アニメ」で始まるものを対象として表示非表示を切り替えるPowerPointのVBAコードは以下の通りです。<br />
最初の1つ目のオブジェクトをチェックして現在の状態が表示・非表示のいずれかを認識するように組んでいます。</p>
<div class="VBACode">Sub すべてのスライドについてアニメーション表示非表示切り替え()<br />
<br />
<span class="VBA_Tab1">Dim Ans</span><br />
<span class="VBA_Tab1">For Each shp In ActiveWindow.Selection.SlideRange.Shapes</span><br />
<span class="VBA_Tab2">If Left(shp.Name, 3) = &#8220;アニメ&#8221; Then</span><br />
<span class="VBA_Tab3"><span class="VBA_Comment">’どこか1つ目の&#8221;アニメ&#8221;で表示非表示を判断する</span></span><br />
<span class="VBA_Tab3">If shp.Visible = msoFalse Then</span><br />
<span class="VBA_Tab4">Ans = &#8220;非表示&#8221;</span><br />
<span class="VBA_Tab3">Else</span><br />
<span class="VBA_Tab4">Ans = &#8220;表示&#8221;</span><br />
<span class="VBA_Tab3">End If</span><br />
<span class="VBA_Tab3">Exit For</span><br />
<span class="VBA_Tab2">End If</span><br />
<span class="VBA_Tab1">Next</span><br />
<br />
<span class="VBA_Tab1">Dim pSlide As Slide</span><br />
<span class="VBA_Tab1">For Each pSlide In ActivePresentation.Slides</span><br />
<span class="VBA_Tab2">For Each pShape In pSlide.Shapes</span><br />
<br />
<span class="VBA_Tab3">If Left(pShape.Name, 3) = &#8220;アニメ&#8221; Then</span><br />
<span class="VBA_Tab4">If Ans = &#8220;表示&#8221; Then</span><br />
<span class="VBA_Tab5">pShape.Visible = msoFalse</span><br />
<span class="VBA_Tab4">ElseIf Ans = &#8220;非表示&#8221; Then</span><br />
<span class="VBA_Tab5">pShape.Visible = msoCTrue</span><br />
<span class="VBA_Tab4">End If</span><br />
<span class="VBA_Tab3">End If</span><br />
<span class="VBA_Tab2">Next</span><br />
<span class="VBA_Tab1">Next</span><br />
<br />
End Sub</div>
]]></content:encoded>
					
					<wfw:commentRss>https://officevba.info/animation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スライドをPDFとしてエクスポートするPowerPointVBA</title>
		<link>https://officevba.info/powerpointexportpdf/</link>
					<comments>https://officevba.info/powerpointexportpdf/#respond</comments>
		
		<dc:creator><![CDATA[okumasahito]]></dc:creator>
		<pubDate>Tue, 08 May 2018 13:06:59 +0000</pubDate>
				<category><![CDATA[PDF出力]]></category>
		<guid isPermaLink="false">http://officevba.info/?p=1423</guid>

					<description><![CDATA[目次 知っていると便利なPowerPointVBAPowerPointのスライドのPDFへの出力サンプルサンプルコードの説明・補足①ファイル名の抜き出し方②PDFで出力するコードは2通りの方法がある 知っていると便利なP [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">知っていると便利なPowerPointVBA</a></li><li><a href="#toc2" tabindex="0">PowerPointのスライドのPDFへの出力サンプル</a></li><li><a href="#toc3" tabindex="0">サンプルコードの説明・補足</a><ol><li><a href="#toc4" tabindex="0">①ファイル名の抜き出し方</a></li><li><a href="#toc5" tabindex="0">②PDFで出力するコードは2通りの方法がある</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">知っていると便利なPowerPointVBA</span></h2>
<p>ExcelVBAほど使う頻度は高くないですが、PowerPointVBAも知っていると便利な機能がたくさんあります。<br />
今回はアクティブになっているPowerPointのスライドをPDFにして出力するPowerPointVBAコードを紹介します。</p>
<h2><span id="toc2">PowerPointのスライドのPDFへの出力サンプル</span></h2>
<p>以下のコードはアクティブになっているPDFファイルを同じファイル名のPDFとして出力するPowerPointVBAのサンプルです。</p>
<div class="VBACode">Sub アクティブファイルをPDFで保存()<br />
<br />
<span class="VBA_Tab1">Dim FullPath As String</span><br />
<span class="VBA_Tab1">Dim FileName As String</span><br />
<br />
<span class="VBA_Tab1">FullPath = ActivePresentation.Path</span><br />
<span class="VBA_Tab1">FileName = Left(ActivePresentation.Name, InStrRev(ActivePresentation.Name, &#8220;.&#8221;) &#8211; 1)</span><br />
<br />
<span class="VBA_Tab1">ActivePresentation.SaveAs FileName:=FullPath &#038; &#8220;\&#8221; &#038; FileName &#038; &#8220;.pdf&#8221;, FileFormat:=ppSaveAsPDF</span><br />
<br />
End Sub</div>
<h2><span id="toc3">サンプルコードの説明・補足</span></h2>
<h3><span id="toc4">①ファイル名の抜き出し方</span></h3>
<p>ファイル名の拡張子を除いた部分は「Left(.Name, InStrRev(.Name, &#8220;.&#8221;) &#8211; 1)」で抜き出しています。</p>
<p>InStrRev関数で「.」の文字位置を確認し、Left関数で「.」より左部分を取り出し、変数FileNameに格納しています。</p>
<h3><span id="toc5">②PDFで出力するコードは2通りの方法がある</span></h3>
<p>PowerPointのスライドをPDFで出力する方法は2通りあり、どちらを使用しても同じように出力できます。</p>
<div class="VBACode">・ActivePresentation.SaveAs FileName:=FullPath &#038; &#8220;\&#8221; &#038; FileName &#038; &#8220;.pdf&#8221;, FileFormat:=ppSaveAsPDF<br />
・ActivePresentation.ExportAsFixedFormat Path:=FullPath &#038; &#8220;\&#8221; &#038; FileName &#038; &#8220;.pdf&#8221;, FixedFormatType:=ppFixedFormatTypePDF</div>
]]></content:encoded>
					
					<wfw:commentRss>https://officevba.info/powerpointexportpdf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PowerPointでテキストボックスに書かれた日付を一括更新するVBAコード</title>
		<link>https://officevba.info/powerpointvbatxtbox1/</link>
					<comments>https://officevba.info/powerpointvbatxtbox1/#respond</comments>
		
		<dc:creator><![CDATA[okumasahito]]></dc:creator>
		<pubDate>Wed, 08 Feb 2017 14:00:41 +0000</pubDate>
				<category><![CDATA[テキストボックスの編集]]></category>
		<guid isPermaLink="false">http://officevba.info/?p=866</guid>

					<description><![CDATA[目次 パワーポイントの日付の更新マクロパワーポイントのマクロの使用方法今回のパワーポイント用マクロを使う際の準備パワーポイントで日付を一括で変更するマクロのVBAコード パワーポイントの日付の更新マクロ この間から仕事で [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">パワーポイントの日付の更新マクロ</a></li><li><a href="#toc2" tabindex="0">パワーポイントのマクロの使用方法</a></li><li><a href="#toc3" tabindex="0">今回のパワーポイント用マクロを使う際の準備</a></li><li><a href="#toc4" tabindex="0">パワーポイントで日付を一括で変更するマクロのVBAコード</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">パワーポイントの日付の更新マクロ</span></h2>
<p>この間から仕事で研修の講師をすることがあって、パワーポイントでスライドを作っていたのですが、何度か使用するスライドの日付を毎回手動で更新していくのが面倒に感じ、一括修正の方法を考えてみました。</p>
<p>マクロを使用することである程度思い通りのものになったので、そのコードをここに記録しておきます。</p>
<h2><span id="toc2">パワーポイントのマクロの使用方法</span></h2>
<p>パワーポイントのマクロはExcelと異なり、手順を覚えさせることはできないようです。</p>
<p>ショートカットの割り振りもできませんし、イベントプロシージャもスライドショーの起動時や、スライドの表示時の選択しかないので、編集時は使用しにくい印象があります。</p>
<p>マクロを実行するには「開発」タブから「マクロ」を選択するか「VisualBasic」をクリックしてVBEを起動し、マクロのコードを選択して再生ボタンを押すかのどちらかになります。</p>
<p>「開発」タブがない場合は開発タブを表示させる設定手順を行っておきましょう。</p>
<h2><span id="toc3">今回のパワーポイント用マクロを使う際の準備</span></h2>
<p>テキストボックスの中から必要な部分を抜き出すのに、「テキストボックスの名前」を使用します。<br />
テキストボックスの名前を事前に一定のルールに従って変更しておきます。</p>
<p>テキストボックスの名前の変更はPowerPoint2007の場合「ホーム」→「編集」→「選択」→「オブジェクトの選択と表示」の順に選択し、スライド上の図形の一覧が表示されたところで、選択している図形の名前をダブルクリックして名前を変更します。</p>
<p>今回は一括で変更するテキストボックスの名前を「日付」に指定しておきます。<br />
以下に手順の動画を載せておきます。</p>
<div style="width: 1280px;" class="wp-video"><!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->
<video class="wp-video-shortcode" id="video-866-1" width="1280" height="720" preload="metadata" controls="controls"><source type="video/mp4" src="https://officevba.info/wp-content/uploads/2017/02/パワーポイントテキストボックス名前変更.mp4?_=1" /><a href="https://officevba.info/wp-content/uploads/2017/02/パワーポイントテキストボックス名前変更.mp4">https://officevba.info/wp-content/uploads/2017/02/パワーポイントテキストボックス名前変更.mp4</a></video></div>
<p>名前を変更したテキストボックスをコピーペーストすれば同じ名前のテキストボックスを作ることができます。</p>
<p>複数のテキストボックスの日付を同時に変更したいなら、<br />
①「テキストボックスを作る」→「名前をひとつずつ変更」よりも、<br />
②「先にテキストボックスの名前を変更」→「コピーペースト」の方が時間と手間がかかりません。</p>
<h2><span id="toc4">パワーポイントで日付を一括で変更するマクロのVBAコード</span></h2>
<div class="VBACode">Sub 日付変更()<br />
<span class="VBA_Tab1">Dim d As Date</span><br />
<span class="VBA_Tab1">d = Date</span><br />
<span class="VBA_Tab1">Dim pSlide As Slide, pShape As Shape</span><br />
<span class="VBA_Tab1">For Each pSlide In ActivePresentation.Slides</span><br />
<span class="VBA_Tab2">For Each pShape In pSlide.Shapes</span><br />
<span class="VBA_Tab3">If pShape.Name = &#8220;日付&#8221; Then</span><br />
<span class="VBA_Tab4">pShape.TextFrame.TextRange.Text = Format(d, &#8220;yyyy年m月d日&#8221;)</span><br />
<span class="VBA_Tab3">End If</span><br />
<span class="VBA_Tab2">Next</span><br />
<span class="VBA_Tab1">Next</span><br />
End Sub</div>
<p>このコードを使用すると「日付」という名前のテキストボックスを全て当日の日付に変更することが可能になります。</p>
<p>また応用として、色々な日付を割り当てるテキストボックスを用意する方法もあります。<br />
下の例では「○日前」と名前を付けたテキストボックスの値を「今日から○日前」にできるVBAコードです。<br />
（○には1-30までの数値が入ります。）</p>
<div class="VBACode">Sub 日付変更2()<br />
<span class="VBA_Tab1">Dim d As Date</span><br />
<span class="VBA_Tab1">d = Date</span><br />
<span class="VBA_Tab1">Dim pSlide As Slide, pShape As Shape</span><br />
<span class="VBA_Tab1">Dim x As Long</span><br />
<span class="VBA_Tab1">For Each pSlide In ActivePresentation.Slides</span><br />
<span class="VBA_Tab2">For Each pShape In pSlide.Shapes</span><br />
<span class="VBA_Tab3">If pShape.Name = &#8220;日付&#8221; Then</span><br />
<span class="VBA_Tab4">pShape.TextFrame.TextRange.Text = Format(d, &#8220;yyyy年m月d日&#8221;)</span><br />
<span class="VBA_Tab3">End If</span><br />
<span class="VBA_Tab3">For x = 1 To 30</span><br />
<span class="VBA_Tab4">If pShape.Name = x &#038; &#8220;日前&#8221; Then</span><br />
<span class="VBA_Tab5">pShape.TextFrame.TextRange.Text = Format(d &#8211; x, &#8220;yyyy年m月d日&#8221;)</span><br />
<span class="VBA_Tab4">End If</span><br />
<span class="VBA_Tab3">Next x</span><br />
<span class="VBA_Tab2">Next</span><br />
<span class="VBA_Tab1">Next</span><br />
End Sub</div>
<p>今回はパワーポイントの全てのスライドに対して一括で処理を行うコードを記載しました。<br />
一つのスライドに対してのみの処理もまた別の機会に記載します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://officevba.info/powerpointvbatxtbox1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://officevba.info/wp-content/uploads/2017/02/パワーポイントテキストボックス名前変更.mp4" length="0" type="video/mp4" />

			</item>
	</channel>
</rss>
