今、MS-PowerPoint2003のファイルが1つあります。

スライドは100枚以上あります。それぞれのページに日本語の文字列がかなりの量かかれています。

質問ですが、今、以下のことをやりたいのですが、簡単に一発でできる方法はないでしょうか?
・算用数字で全角のものは全て半角に変換
・アルファベットで全角のものは全て半角に変換
・カタカナで半角のものは全て全角に変換

「置換」で1文字1文字やるのは大変です。
他の方法でよいものがあれば教えてください。

どうぞよろしくお願い致します。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:cx20 No.1

回答回数607ベストアンサー獲得回数108

ポイント50pt

VBA で変換用のプログラムを作成するのが一番手軽な方法だと思います。

試しにコードを書いてみました。

URL にコードを添付してありますのでご利用ください。

↓ 下記のコードは、投稿時に、一部記号が全角に変換されている可能性があります。

’ <使い方>

’ 1. Power Point の「Visual Basic Editor」を起動します。

’ 2. [挿入] - [標準モジュール] を選択します。

’ 3. 下記のコードを貼り付けます

’ 4. [実行] - [Sub/ユーザー フォームの実行] で

’ ChangeKanaText() プロシージャを実行します。

’ → スライド上の文字列を一括置換します。

Option Explicit

Function IsKatakana(strTarget As String) As Boolean

  Dim strPattern

  strPattern = ”[ア-ンア-ン]”  ’ カタカナ範囲チェック用

  Dim reg As Object

  Set reg = CreateObject(”VBScript.RegExp”) ’ 正規表現コンポーネントを利用

  reg.Pattern = strPattern

  IsKatakana = reg.Test(strTarget)

  Set reg = Nothing

End Function

Sub ChangeKanaText()

  ’ スライドを取得

  Dim slide

  For Each slide In ActiveWindow.Parent.Slides

    ’ スライド内のシェイプオブジェクト(テキストボックス等)を取得

    Dim shape

    For Each shape In slide.Shapes

      ’ シェイプ(テキストボックス等)の単語を取得

      Dim word

      For Each word In shape.TextFrame.TextRange.Words

        ’ 文字列の置換

        If IsKatakana(word.Text) = True Then

          ’ カタカナの場合は全角に変換

          word.Text = StrConv(word.Text, vbWide)

        Else

          ’ それ以外は半角に変換

          word.Text = StrConv(word.Text, vbNarrow)

        End If

      Next

    Next

  Next

End Sub

URL は参考情報です。

正規表現コンポーネント(VBScript.RegExp)の説明が載っています。

URL は参考情報です。

StrConv() 関数の使用例が載っています。

id:miku1973

ありがとう!!

すごいです。

質問ですが、VBAの記述の中で修正しなければならない(はてなの投稿で全角になってしまった部分)

は、[ア-ンア-ン]のところでしょうか?どこを半角に修正すればよいでしょうか?

実行してみましたが、

For Each word In shape.TextFrame.TextRange.Words

のところでひっかかりました。

『TextFrame.TextRange:無効な要求です。この種類の図形にテキスト枠は設定できません。』

というメッセージです。

2004/12/27 14:04:04
id:supernacky No.2

回答回数16ベストアンサー獲得回数0

http://www.hatena.ne.jp/1104101386

人力検索はてな - 今、MS-PowerPoint2003のファイルが1つあります。 スライドは100枚以上あります。それぞれのページに日本語の文字列がかなりの量かかれています。 質問ですが、今、以下の..

「置換」しか思いつきません。

よってポイントはいりません。

で、「一発で」ってことになってくると

自分の会社の自分より立場の低い奴の肩を「ヨロシク!」ポン、っと一発叩きましょう。

マクドナルドの店員も裸足で逃げ出すくらいの最ッ高のスマイルでどうぞ。

id:miku1973

この作業は私の職場では頻繁に発生するため、前の方の回答のように何度も使用できるような方法が望ましいです。実はVBAしかないだろうという予想はしていましたが、私はVBAの知識が皆無の人なので・・・。

2004/12/27 14:07:54
id:diabah_blue No.3

回答回数129ベストアンサー獲得回数1

ポイント10pt

http://cubic9.com/test/hatena/pp_regular/

はてな 1104101386 PowerPointで表記を正規化したい

私も作ってみました。以下の手順で処理します。

1.URLからregular.basをダウンロードする。

2.ツール>マクロ>Visual Basic Editorを選択し、Visual Basic Editorを起動。

3.ファイル>ファイルのインポートを選択し、ダウンロードしたファイルを読み込む。

4.ツール>マクロ>マクロを選択し、Regularizationを実行。

id:miku1973

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

一応最初の方のVBAで解決できました。本当に本当にありがとうございました!!

これからも愛用していきます!!

2004/12/27 14:54:37

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません