Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 半角文字を全角に一括変換するPowerPointマクロ

半角文字を全角に一括変換するPowerPointマクロ

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013

「ppt 半角を全角」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

PowerPointで、半角文字を全角文字にする方法を探している方による検索です。

Wordには文字種別を変換するコマンドが存在しています。

2003までのWordならメニュー[書式]-[文字種の変換]から表示できる[文字種の変換]ダイアログで、2007以降のWordなら[ホーム]タブ-[フォント]グループ-[文字種の変換]ボタンから、半角文字を大文字にすることができます。

しかし、PowerPointにはそのようなコマンドが残念ながら存在していません。

[スポンサードリンク]

半角の文字列を全角に一括変換したいのなら、VBA(Visual Basic for Applications)でマクロを作りましょう。

▼プレゼンファイル上のすべての文字列を全角にするマクロ
Sub プレゼンファイル上のすべての文字列を全角にする()

 Dim sld As Slide
 Dim shp As Shape

 'アクティブファイルの全スライドに対しループ処理
 For Each sld In ActivePresentation.Slides

  'それぞれのスライドの全シェイプに対しループ処理
  For Each shp In sld.Shapes
   'シェイプがTextFrameを持っているときだけ処理実行
   If shp.HasTextFrame Then
    shp.TextFrame.TextRange.Text = _
     StrConv(shp.TextFrame.TextRange.Text, vbWide)
   End If
  Next shp

 Next sld

End Sub

上記のマクロを実行すると、アクティブなプレゼンテーションファイル上の半角文字列が全角文字列に変換されます。

全スライドに対するループ処理の中に、個々のスライドに含まれるシェイプに対してループを回し、その中でVBAではStrConv関数を使って文字列を全角にしています。

プレゼンテーションファイル全体に対する変換ではなく、アクティブなスライドの半角文字だけ全角に変換したいということもあるでしょう。

その場合は、以下のようなマクロです。

▼アクティブなスライド上のすべての文字列を全角にするマクロ
Sub アクティブスライドの文字列を全角にする()

 Dim shp As Shape

 'アクティブなスライドの全シェイプに対しループ処理
 For Each shp In ActiveWindow.Selection.SlideRange.Shapes
  'シェイプがTextFrameを持っているときだけ処理実行
  If shp.HasTextFrame Then
   shp.TextFrame.TextRange.Text = _
    StrConv(shp.TextFrame.TextRange.Text, vbWide)
  End If
 Next shp

End Sub

上記いずれのマクロも、VBAのStrConv関数を使っているので、数字もアルファベットもカタカナもすべて全角になります。

先の検索をした方も、実は、すべての文字列を全角にするよりも、半角カタカナだけを全角にしたかったのではないかと想像しています。

そんなマクロについては、近日中に別途ご紹介します。

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 半角文字を全角に一括変換するPowerPointマクロ

「TextFrame・TextRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.