• ベストアンサー

パワーポイントのマクロ

クライアントから依頼され作業するファイルがあるのですが、全角を全て半角に直す作業に手間取っています、これがマクロとかなにかで一括で出来ればいいと思ってますクライアントからくるファイルにマクロを埋め込みはしたくないです、なにか他の方法知恵があれば、教えてください。 半角全角は数字です、もしオフィス製品(ワード、エクセル、パワーポイントで共通な物が出来ればと思っているのですが。。。

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

  • ベストアンサー
noname#102878
noname#102878
回答No.2

テキストボックス限定であればVBAで可能です。 しかしパワーポイントに張り付いているExcelの表やグラフなども対象となると難しいですね。 以下のコードは同一フォルダにあるすべてのパワーポイントで、テキストボックスだけを対照に、すべての文字を全角に変換して保存するものです。 新規パワーポイントで[Alt]+[F11]または[ツール]-[マクロ]-[Visual Basic Editor]を押してVBEを起動。 [挿入]-[標準モジュール]で標準モジュールに以下のコードを書く。 保存して終了。 これをクライアントから届いたパワーポイントのファイルが置いてあるフォルダに移動して開く。 [Alt]+[F8]または[ツール]-[マクロ]-[マクロ]でマクロ実行のダイアログを表示させ、[ConvertToWide]を実行。 同じフォルダにあるパワーポイントを次々に開いてテキストボックス内の文字を変換し、保存終了を繰り返してくれます。 Sub ConvartToWide()  Dim myPath As String  Dim PPTName As String  Dim ThisPresentation As Presentation  Dim CurrentPPT As Presentation  Dim CurrentSlide As Slide  Dim CurrentShape As Shape  Set ThisPresentation = ActivePresentation  myPath = ActivePresentation.Path  If Right$(myPath, 1) <> "\" Then   myPath = myPath & "\"  End If  ' フォルダ内のすべてのPPTファイルをループ  PPTName = Dir(myPath & "*.ppt")  Do Until PPTName = ""   If PPTName <> ThisPresentation.Name Then    Set CurrentPPT = .Presentations.Open(myPath & PPTName)    For Each CurrentSlide In CurrentPPT.Slides     For Each CurrentShape In CurrentSlide.Shapes      With CurrentShape       If .Type = msoTextBox Then        .TextFrame.TextRange.Text = StrConv(.TextFrame.TextRange, vbWide)       End If      End With     Next CurrentShape     Set CurrentShape = Nothing    Next CurrentSlide    Set CurrentSlide = Nothing    CurrentPPT.Save    CurrentPPT.Close    Set CurrentPPT = Nothing   End If   PPTName = Dir()  Loop  Set ThisPresentation = Nothing End Sub

onoyoko
質問者

お礼

本当にありがとうございます、一部変更したり手を加えたりして、求めていた物を作成する事が出来ました、上記を応用して、エクセルバージョン、ワードバージョンも作りました。これで手間のかかる作業が一度で終わります。

その他の回答 (1)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

全角の数字を半角の数字にするだけでしたら、置換を行えば良いと思います。 [編集]→[置換]で 検索する文字列に 0 置換後の文字列に 0 で 半角と全角を区別する だけをチェックして、[すべて置換]ボタンを押します。 この作業を0、1、2、・・・9と行うだけです。 これであれば、ワード、エクセル、パワーポイントどれでも同じです。 ご確認下さい。

onoyoko
質問者

補足

依頼されるファイルが1枚ぐらいだったら上記の方法でもいいと思いますが、毎日50ページ100ページと大量です、アプリケーションまさまざまです、手のかかる作業をプログラミングしたいのです、その方法でなにかいい方法をしりたいのですが。。。