人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

●質問者: yoshifuku
●カテゴリ:コンピュータ
✍キーワード:MS いもの アルファベット カタカナ スライド
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● cx20
●50ポイント

http://www.hondarer-soft.com/cx/pukiwiki/pukiwiki.php?Memo%2...

[hondarer-soft] to [cx20.main.jp]

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

http://www.interq.or.jp/student/exeal/dss/ref/vbscript/objec...

URL は参考情報です。

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

http://www.hondarer-soft.com/cx/pukiwiki/pukiwiki.php?Memo%2...

[hondarer-soft] to [cx20.main.jp]

URL は参考情報です。

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

◎質問者からの返答

ありがとう!!

すごいです。

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

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

実行してみましたが、

For Each word In shape.TextFrame.TextRange.Words

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

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

というメッセージです。


2 ● supernacky
●0ポイント

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

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

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

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

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

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

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

◎質問者からの返答

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


3 ● diabah_blue
●10ポイント

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

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

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

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

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

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

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

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ