プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/05/10 05:20

全角の数字を半角の数字にするだけでしたら、置換を行えば良いと思います。


[編集]→[置換]で
検索する文字列に

置換後の文字列に
0

半角と全角を区別する
だけをチェックして、[すべて置換]ボタンを押します。
この作業を0、1、2、・・・9と行うだけです。
これであれば、ワード、エクセル、パワーポイントどれでも同じです。

ご確認下さい。

この回答への補足

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

補足日時:2003/05/07 12:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!