• 締切済み

PPT ファイルの文字カウント=全角文字の数

PPT ファイルの文字数をカウントしたいと思っています。 今のところ、ひたすら Ctrl+A でコピーして1シートずつ Word 文書に貼り付けてカウントしています・・・。 以前にこちらで、PPT ファイルの総文字数をカウントするマクロは紹介されていたのですが、全角文字数と半角文字数を区別してカウントすることって、できないのでしょうか? ネットでもいろいろ調べてみたのですが、調べ方が悪いのか、さっぱり。。。 すみませんが、よろしくお願いします。

みんなの回答

  • jjjjjjc
  • ベストアンサー率0% (0/0)
回答No.2

JCountなら、PPTファイルを全角文字と半角カタカナ、半角英数などの種類ごとにも文字数をカウントできます。PPTだけでなく、DOC(ワード)、XLS(エクセル)ファイルも文字カウント可能です。本文だけでなく、上記全てのドキュメントでテキストボックスやオートシェイプ、その他オブジェクト内の文字のカウントが出来ます。 私はこのフリーソフトの作者です。私の知る限りそのようなフリーソフトが見つからなかったので作成しました。

参考URL:
http://bgworks.info/jcount/,http://www.vector.co.jp/soft/win95/util/se413034.html
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

全角と半角文字を区別してカウントするプログラムを作成してみました。 半角文字数には、スペースや改行などもカウントされます。 (カウントしない場合は、コードのチェック範囲を変えて下さい) あと、パワーポイントでは、イミディエイトウィンドウで ? LENB("A") としたら"2"になりますから、全てのテキストが2バイト文字に なっているようです。そういう意味で言えば、全角も半角も無いわけですが ------------------------------------------------ Public Sub 種類別文字数カウント() Dim cw, cb, i, j, code, p As Slide, s As Shape cw = 0: cb = 0 For Each p In ActivePresentation.Slides For i = 1 To p.Shapes.Count Set s = p.Shapes.Item(i) If s.HasTextFrame Then For j = 1 To Len(s.TextFrame.TextRange.Text) code = AscW(Mid(s.TextFrame.TextRange.Text, j, i)) If (0 <= code And code <= 255) Then cb = cb + 1 Else cw = cw + 1 End If Next End If Next Next MsgBox "全角文字数:" & cw MsgBox "半角文字数:" & cb End Sub Public Sub 全文字数カウント() Dim c, i, p As Slide, s As Shape c = 0 For Each p In ActivePresentation.Slides For i = 1 To p.Shapes.Count Set s = p.Shapes.Item(i) If s.HasTextFrame Then c = c + Len(s.TextFrame.TextRange.Text) End If Next Next MsgBox "全文字数:" & c End Sub

関連するQ&A