- ベストアンサー
パワーポイントのマクロ
クライアントから依頼され作業するファイルがあるのですが、全角を全て半角に直す作業に手間取っています、これがマクロとかなにかで一括で出来ればいいと思ってますクライアントからくるファイルにマクロを埋め込みはしたくないです、なにか他の方法知恵があれば、教えてください。 半角全角は数字です、もしオフィス製品(ワード、エクセル、パワーポイントで共通な物が出来ればと思っているのですが。。。
- みんなの回答 (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
その他の回答 (1)
- arukamun
- ベストアンサー率35% (842/2394)
全角の数字を半角の数字にするだけでしたら、置換を行えば良いと思います。 [編集]→[置換]で 検索する文字列に 0 置換後の文字列に 0 で 半角と全角を区別する だけをチェックして、[すべて置換]ボタンを押します。 この作業を0、1、2、・・・9と行うだけです。 これであれば、ワード、エクセル、パワーポイントどれでも同じです。 ご確認下さい。
補足
依頼されるファイルが1枚ぐらいだったら上記の方法でもいいと思いますが、毎日50ページ100ページと大量です、アプリケーションまさまざまです、手のかかる作業をプログラミングしたいのです、その方法でなにかいい方法をしりたいのですが。。。
お礼
本当にありがとうございます、一部変更したり手を加えたりして、求めていた物を作成する事が出来ました、上記を応用して、エクセルバージョン、ワードバージョンも作りました。これで手間のかかる作業が一度で終わります。