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

PowerPoint2002で表を挿入した後に、表に数字のデータを入れました。
例えば「20,000」というように「,」カンマを入れたいのですが、エクセルみたいにボタンひとつで表内のセルのデータすべてにカンマがつくような設定はないでしょうか?
やっぱり数字を入れるたびに、「,」を入れないと無理でしょうか?

A 回答 (2件)

こんにちは。

KenKen_SP です。

#1 の方のコメントのとおり、Power Point (以下 PP ) には数字を桁区切り
にする機能はありません。

Excel で表を作って貼り付ければ良いような気がしますが、既存のデータには
対応しきれない事もあるかと思います。

そこで、マクロを書いてみました。

選択したスライド内の全ての数値を桁区切りに書式設定します。やり方がわから
ない場合は、その旨書き込んで下さい。


Sub 選択ページ内の数字の桁区切り()
  
  Dim Sld  As Slide
  Dim Shp  As Shape
  Dim iShp As Shape

  For Each Sld In ActiveWindow.Selection.SlideRange
    For Each Shp In Sld.Shapes
      If Shp.Name Like "Group*" Then
        '表ならセルの数だけループ
        For Each iShp In Shp.GroupItems
          Call myNumberFormat(iShp)
        Next iShp
      Else
        Call myNumberFormat(Shp)
      End If
    Next Shp
  Next Sld

End Sub


Private Sub myNumberFormat(TargetShp As Shape)
  
  Dim RegEx  As Object
  Dim Matches As Variant
  Dim Match  As Variant
  Dim strNum As String
  
  If Not TargetShp.HasTextFrame Then Exit Sub
  
  'マッチングパターン定義
  Set RegEx = CreateObject("VBScript.RegExp")
  With RegEx
    .Pattern = "[0-90-9]{4,}"
    .Global = True
  End With
  
  '検索して置換
  If TargetShp.TextFrame.HasText Then
    With TargetShp.TextFrame.TextRange
      Set Matches = RegEx.Execute(.Text)
      For Each Match In Matches
        '文字列の数値を書式設定 #、##0
        strNum = Replace$(.Text, Match, Format$(Match, "#,##0"))
        If StrComp(.Text, StrConv(.Text, vbWide), vbBinaryCompare) = 0 Then
          '全角の場合
          .Text = Replace$(StrConv(strNum, vbWide), ",", ",")
        Else
          '半角の場合
          .Text = strNum
        End If
      Next Match
    End With
  End If
  
  Set Matches = Nothing
  Set RegEx = Nothing
  
End Sub
    • good
    • 1
この回答へのお礼

詳しい説明をありがとうございました。一度試してみます。

お礼日時:2005/10/09 00:02

PowerPointの表にそのような機能は無かったと思います。


面倒ならExcelのシートを貼り付ければ良いのでは?
    • good
    • 1
この回答へのお礼

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

お礼日時:2005/10/09 00:03

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A