PowerPoint 2010での特定の色・サイズ

このQ&Aのポイント
  • PowerPoint 2010で作成した授業用スライドにおいて、赤色でフォントサイズが大きい部分を一括して_に置換する方法を教えてください。
  • VBAを使用することが必要ですが、具体的な置換の方法がわかりません。
  • BASICやperlの経験はありますが、VBAは初めて使います。詳しい方がいらっしゃいましたら、ご教示いただけると助かります。
回答を見る
  • ベストアンサー

PowerPoint 2010での特定の色・サイズ

PowerPoint 2010で作成した授業用スライドがあり、 各スライド中で、重要語句の部分のみ赤色でフォントサイズが大きく(48pt) なっています。そのほかの部分は黒色でもっと小さなフォントです。 行いたいことは、この、スライド中の「赤色で48ptの文字」を、 すべて一括して「_」に置換することです。 たとえば、スライド中に赤色・48ptで「運動方程式」と書かれていたら、 それを「_____」に置換したいと考えています。 そうすると、そのまま資料として印刷して、重要語句の部分だけは受講生が書き込む 形式で授業を進めることができますので。そこで質問なのですが、 この操作をPowerPoint 2010で行うにはどのようにしたらよいでしょうか。 VBAを使うことになりそうだと考えており、 http://q.hatena.ne.jp/1104101386 などが参考になりそうなのですが、「赤色で48ptの文字」を「_」に 置換する部分をどのように書けばよいかがわかりません。 当方、BASICやperlなどのプログラミングの経験はかつて多少ありますが、 VBAはろくに使ったことがありません。 おわかりの方がいらっしゃいましたら教えていただきたく、 どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 お示しの URL の #1 さんのご回答を参考にして書いてみました。  [日本語用のフォント] が施された文字は全角の「_」、それ以外は半角の「_」に書き換えるようにしておりますが、全角の「_」と半角の「_」とでは、文字の ベースライン が揃わないようですので、お気に召さなければ、後からすべて削除(半角の「_」を無文字にすべて置換)してください。  EXCEL VBA とは違って余り細々と操作できなさそうですので、このへんでご勘弁を。。。 <(_ _)>  なお、「赤色」とお書きなのが本当の「赤」でしたら、 RGB(Red:=255, Green:=0, Blue:=102) の部分は RGB(Red:=255, Green:=0, Blue:=0) になるかと存じます。  [新しいマクロの記録] で、実際に「赤色」を施してみて、RGB の値を取得してください。 >当方、BASICやperlなどのプログラミングの経験はかつて多少あります とのことですので、コーディング の操作内容はご理解いただけると存じますが、 >VBAはろくに使ったことがありません。 とのことですので、EXCEL VBA についての説明ですが、 http://okwave.jp/qa/q6129006.html の #31【お別れの言葉】でもご覧ください。 '------------------------------------------------------- Sub ChangeUnderBar()  Dim objSlide As slide  Dim objShape As shape  Dim objWord As TextRange  Dim objChara As TextRange  For Each objSlide In ActiveWindow.Parent.Slides   For Each objShape In objSlide.Shapes    For Each objWord In objShape.TextFrame.TextRange.Words     For Each objChara In objWord.Characters      '「赤色・48pt」の場合は「_」に変換      If objChara.Font.Size = 48 And _       objChara.Font.Color.RGB = RGB(Red:=255, Green:=0, Blue:=102) Then       Select Case objChara.LanguageID        Case msoLanguageIDJapanese         objChara.Text = "_"        Case Else         objChara.Text = "_"       End Select       objChara.Font.Size = 48       objChara.Font.Color.RGB = RGB(0, 0, 0)      End If     Next    Next   Next  Next End Sub

ken_ken_pa
質問者

お礼

コード付きのすばらしいご回答をいただき、心より御礼申し上げます。 全角の場合と半角の場合の違いまで、当初申し上げてもおりませんでしたのに 考慮していただいて、心より感謝いたします。 いただいたコードを拝見し、なるほどVBAではこのような 書き方になるのかと、VBA素人なりに合点がいきました。 ただ、実は私の環境では、いただいたものをそのまま実行すると 実行時エラー '-2147024809 (80070057)': 指定された値は境界を超えています。 というエラーメッセージが表示され、デバッグボタンを押すと For Each objWord In objShape.TextFrame.TextRange.Words の行が黄色くマーキングされます。 とくに、objWordの上にマウスカーソルを当てると 「objWord = Nothing」というポップアップが表示されます。 私の環境については、ループ範囲の設定が適切ではないという 趣旨のエラーなのかなと想像しております。 他の質問なども参考にIn以下を少し変えたりなど試してみておりますが まだうまく実行できてはおりません、が、かなりゴールに近づいて いるとは思いますのでもう少しねばってみたいと思います。 もしもなにか思い当たる節がおありでしたら、重ね重ねで恐縮ですが 教えていただだければ大変ありがたいです。 この度は本当にありがとうございました。

ken_ken_pa
質問者

補足

お礼を投稿したあとで申し訳ないのですが、その後のご報告です。 いろいろと試してみまして、 http://www.d-consulting.biz/presentation/powerpoint/vba_change_font/ にヒントを得て、2度目のループと3度目のループの間に If objShape.HasTextFrame Then の一文を入れ、全体を以下のようにすることにより、 プログラムを動作させることができました。 この方法では、表の中の文字、助詞、一部テキストボックス中の文字など、 いくつか「赤字・48pt」でも変換できないところが依然残ってしまってはおりますが それでも主観ですが全体の8~9割の置き換えには成功しており、 逐一手作業で置き換えるよりはこれで大幅に負担が軽減できます。 本当にどうもありがとうございました。 「完全に」動作させるためのアドバイスなど、もしもお気づきでしたら、 重ね重ねで恐縮ですが、再度ご助言いただけましたら大変幸いに存じます。 '------------------------------------------------------- Sub ChangeUnderBar() Dim objSlide As Slide Dim objShape As Shape Dim objWord As TextRange Dim objChara As TextRange For Each objSlide In ActiveWindow.Parent.Slides For Each objShape In objSlide.Shapes If objShape.HasTextFrame Then 'ここが追加 For Each objWord In objShape.TextFrame.TextRange.Words For Each objChara In objWord.Characters '「赤色・48pt」の場合は「_」に変換 If objChara.Font.Size = 48 And _ objChara.Font.Color.RGB = RGB(Red:=255, Green:=0, Blue:=0) Then Select Case objChara.LanguageID Case msoLanguageIDJapanese objChara.Text = "_" Case Else objChara.Text = "_" End Select objChara.Font.Size = 48 objChara.Font.Color.RGB = RGB(0, 0, 0) End If Next Next End If 'ここが追加 Next Next End Sub

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

>ヒントを得て・・・の一文を入れ  さすがっ! (^o^)  私の思った通りの方でした。WEB検索力 と プログラミング の基礎理解がありですね。 >表の中の文字、助詞、一部テキストボックス中の文字など、 >いくつか「赤字・48pt」でも変換できないところが依然残ってしまってはおります >全体の8~9割の置き換えには成功  原因はよく分かりませんが、確認事項としては、「依然残ってしまって」いる文字の フォント 設定を確認してみて、「赤字・48pt」になっているかどうかでしょうか?  「赤字」のように見えて果たして RGB(Red:=255, Green:=0, Blue:=0) かどうかですね。  また、文字数が変化して シェイプ 内の行数が増減すると、設定している フォント サイズ が自動的に変化するようですので、その辺りが関係しているのかも知れません。  この場合でしたら、 If objChara.Font.Size > 40 And _ のような指定にすればよいかと存じます。  また、その他に、私自身の確認では、半角文字の前後で「依然残ってしま」う現象が発生します。  あるいは、次のようにして原因を特定できるかも知れません(今後のためのご参考になるかも。。。です)。 1)[新しいプレゼンテーション] を開き、「依然残ってしまって」いる シェイプ を コピペ します。 2)PP と VBE とを並べて表示し、VBE において、 [F8] キー を押下しながら ステップインデバッグ していきます。 3)「依然残ってしまって」いる文字の前まできたら、慎重に [F8] キー を押下していき、その都度、ローカル ウィンドウ の「objChara」の 各プロパティ の値の変化を確認しながら、また [F8] キー を押下する、という具合に確認していきます。  プロパティ の当たりがついたら、「objChara.{当該プロパティ}」を [ウォッチ式の追加] し、ウォッチ ウィンドウ で値の変化を確認してもよいかと存じます。

ken_ken_pa
質問者

お礼

DOUGLAS_様、重ね重ね、どうもありがとうございました。 今回教えていただいた[F8]を押してワンステップずつ確認していく方法は 目からうろこでした…なるほど、このようなチェックの仕方がありうるのですね。 また、フォントサイズが不等式で指定できることもとても参考に なりました。たしかに、行数を多くしたりすると自動的にフォントが 小さくなったりしますので、こちらを使わせていただく方がよさそうです。 ちなみに色については、前回申しあげればよかったのですが、私が使って いるのはすべてRGB(Red:=255, Green:=0, Blue:=0)の赤のようでした。 インターネット越しに、このようにご親切にご教示賜りまして 心より感謝しております。勉強不足でまだ100%までは至っておりませんが、 すでにここまででも当初の目的は十分に達成できています。 今回教えていただいた内容やコードはまたとない実践的な教材ですので、 これをきっかけとさせていただいて、今後プロパティの種類など VBの基礎も少しずつ勉強していき、時間をかけて100%の変換率を 目指していこうと思います。 この度は本当に、どうもありがとうございました。

関連するQ&A

  • PowerPointのフォントサイズ

    PowerPoint2003を使って、プレゼン用のスライドなどではなく、業務マニュアルを作ろうと思っています。 (Wordで作ろうと思ったのですが、図がかなり多く、Wordでは図が多くなると先に挿入した画像の位置が変わってしまうことがよくあるので、PowerPointで作ることになりました) マニュアルを作成するには、PowerPointのフォントが初期設定では大きすぎて、毎回手作業でフォントサイズを設定しています。 (PowerPointでは通常タイトル文字が44ポイントくらいになっていますが、私の用途では、タイトル文字=14ポイント、本文=11~12ポイント程度にしたい) フォントサイズを一括で設定する方法はないでしょうか。 (PowerPoint自体は他にプレゼンに使用することもあるので、マニュアルを作るファイルにだけ設定できればOKです)

  • EXCELのデータをPOWERPOINTにエクスポート

    すみませんが、ご存じの方おしえてください。 EXCELのデータをPOWERPOINTにエクスポートしたいのです。 例えば      A     B     C     D     E 1  氏名(1) 住所(1)  TEL(1) FAX(1) 年齢(1) 2  氏名(2) 住所(2)  TEL(2) FAX(2) 年齢(2) 3  氏名(3) 住所(3)  TEL(3) FAX(3) 年齢(3) 4  氏名(4) 住所(4)  TEL(4) FAX(4) 年齢(4) 5  氏名(5) 住所(5)  TEL(5) FAX(5) 年齢(5) というEXCELシートから POWERPOINTの各スライド1枚に        氏名(1)(12pt フォントゴシック) 住所(1) (24pt フォントゴシック)        TEL(1) (28pt フォントゴシック)        FAX(1) (28pt フォントゴシック)        年齢(1)(20pt フォントゴシック) という様に置き換えたいのです。 上の例でいくと計5枚のスライドが作成されることになります。 実際は300行くらいあるので、作業を簡略化したいのですが、良い方法はありますでしょうか? よろしくおねがいします。

  • PowerPointフッターの文字の大きさを変えたい

    いつもお世話になっております。 PowerPoint2000を使っています。 スライドのヘッダー、フッターに文字を設定する場合、 文字の大きさやフォントを変えたいのですが、やり方がわかりません。 よろしくご教示ください。

  • PowerPoint のフォントの色をデフォルトに戻したい

    PowerPoint の組織図を出し、めいめいの箱のなかに文字を入力していきます。さっきフォントの色をいじり、フォントの色を白にしてしまったのですが、今回、黒に戻しても、項目ごといちいち白から黒に戻さなければなりません。デフォルトを黒に戻す仕方を教えてください!

  • セル内の一部の色と文字列の置換

    みなさんこんにちは。 質問ですが、置換したあと、置換した文字のみ青色に変えたいと思っています。 さらにその際に、変換対象外の文字に色の設定がされていた場合には、その色の設定はそのままにしておきたいのです。 たとえば、シート内に ABC123ABCあいう (但し、123だけは、フォントが赤色、他は黒色)というセルがあった場合、 ABC⇒EFG に置換すると、 EFG123EFGあいう (EFGは、青色、123は、フォントが赤色のまま)としたいです。 以上、よろしくお願いします。

  • PowerPoint2010について

    PowerPoint2010について PowerPoint2010を使ってプレゼン作りをしています。 例えば、物体の速度を計って記号としてhA,hB,hC,hDのように表示したい時、hはそのままでABCDの部分を小文字ではなく大文字のまま字自体のサイズを小さくしたいんですけど、ただフォントサイズを自分で変えるのではなく、PowerPointのもともとの機能にそのような用途として使えるボタンってありましたよね? 少なくとも、PowerPoint2003にはXA(←Aの部分は小さい大文字)のボタンがあったのですが… 分かりにくい説明ですみません。

  • [PowerPoint] スライドノートのフォントの件

    PowerPointの標準表示では、右下に「スライドノート」がありますが こちらに文字を入力して、右クリックして「フォント」選択後、 フォントを変更したり、サイズを変更しても、 スライドノート内の文字のサイズやフォントが変わりません。 フォントの変更方法を教えてください!!!

  • Wordで文字ごとに色を付けたいです

    マイクロソフトWordで、文字ごとに色を付けたいのですが、どうすれば良いでしょうか? 遺伝子の配列でaaatttttttttccgggggなどランダムにatgcの文字が並ぶのですが、それぞれに色を付けたいのです。(例;aは赤) あとから変えるのではなく、入力時に色をつけたいです。 既に出来上がってる配列を、置換機能を利用して「a⇒赤のa」「t⇒緑のt」・・・というようにa,t,g,cそれぞれ置換すれば(4回置換を行えば)色を変えられます。また、オートコレクト機能を使えばaのように1文字だけなら色を変えれますが、aagなど2文字以上の文字列になった際に色が変わりません。 VBAで、もしaが入力されたらその文字の色を赤に変える、というようなマクロを作ったらいいと思うのですが、どんなマクロを作れば良いのかがわかりません。(VBAはある程度理解しており、Excelでは使っています) もしくは、文字が入力された時点で、置換機能を起動して、aは赤、tは緑、gは黄、cは青というように設定をして、文章中全部の文字を置換するようなマクロも考えました。 もし、配列を1ヶ所でも間違えて注文してしまうと、それは使い物にならなくなってしまいます。後から確認しますが、どうしても見落としが出てきてしまいます。なので、入力時にミスを発見しやすくして、ミスを軽減させるという点で重要になるのです。 プログラミングに詳しい方、どうかお力添えをお願いします。

  • PowerPointでの特殊記号の挿入

    PowerPoint2002を用いてスライドを作成しています。 その中で、ギリシャ文字(αやμなど)をTimesNewRomanなどのフォントで 入力したく、メニューバーの「挿入」の「記号と特殊文字」のメニューより 挿入を試みたのですが、どうしても日本語用のフォントになってしまいます。 できれば英語のフォントで入力したいのですが、これは無理なのでしょうか? ちなみに、Word2002では同じ方法でちゃんと挿入することができました。 また、ごくまれに成功することもあるのですが、スライドを保存して、再度 開くといった作業を行なうと、日本語のフォントに変換されてしまっている ことがありました。 よろしくお願いします。

  • PowerPointで表示される文字ががたがたになる

    Windows Vistaで、PowerPoint 2007を使っています。 TrueTypeフォントを使ってファイルを作っているのですが、スライドショー表示にした途端に表示される文字ががたがたになってしまいます。 スライドショーの状態で右クリックで出てくるメニューの文字もガタガタになっています。 全く同じファイルをMacでスライドショー表示させても、文字はガタガタになりません。 自分のWindowsの画面表示の設定か何かが悪いような気がしているのですが、どこに問題があるのか、教えていただけると助かります。

専門家に質問してみよう