• ベストアンサー

Word 表 文字数カウント

質問が解決しなかったので、下記スレッドから移動してきました。 下記スレッドは、マルチリスティングにならないように締め切ります。 http://oshiete1.goo.ne.jp/qa3642672.html 以下の質問の回答がお分かりの方、おられましたら教えて下さい。 Wordの表の文字数カウントの方法に対する質問です。 質問1 Exelで作成した表をコピーペーストでWordで作成した文章の一部に貼り付けた場合(または、Wordで表を作成した場合)、その表の文字数(その表の全ての文字数)のみ(Wordの表部分以外の文字数は除く)をカウントする場合、どのようにするのですか?文字数を数えたい表全体をマウスでハイライトして、メニューの[ツール]→[文字カウント]で確認しましたが、文章内の全ての文字数をカウントしてしまいます。 質問2 Exelで作成した表をコピーペーストでWordで作成した文章の一部に貼り付けた表において(または、Wordで作成した表おいて)、その表の一部のセルの文字数(その表の全ての文字数ではなく)をカウントすることができません。どのようにすれば、カウントできるのでしょうか? 例えば、エクセルで以下のような表を作成するとします。 A1:あいうえお A2:さしすせそ A3:なにぬねの A4: B1:かきくけこ B2:たちつてと B3: B4: この表をWordで作成した文章に貼り付けます。 そして、表の A1:あいうえお A2:さしすせそ B1:かきくけこ B2:たちつてと の部分のみをマウスでハイライトしてメニューの[ツール]→[文字カウント]で確認しましたが、Wordの文章内の全ての文字数(表内の文字数を含む)をカウントしてしまいます。 よろしくお願いします。

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

  • ベストアンサー
回答No.6

お礼のメールが来たので確認してみると、私の回答内容において不十分 な部分があったことをお詫びします。 行単位での選択する([行末記号]を含む場合)場合ですが、私は表の左端 罫線の外側にカーソルを持っていくと白い斜め矢印が表示されます。 これは、本文での行を選択するときにも余白に持っていくと表示される ものと同じです。 http://www.shuiren.org/chuden/teach/word/gamen/sentaku.htm#line-1 この形のカーソルで行単位で選択すると、[文字カウント]は正常になり ますが、ドラッグしながらセル単位で移動して行を選択した場合では、 [セルの終了記号]を含むセル単位での選択状態と同じようです。 私はセル単位でも行単位でもドラッグでの選択はせず、カーソルの形を 白い矢印や黒い矢印に変形して選択していますので、検証されたことと 違っているのでしょうね。文字単位ならばドラッグしても良いのですが セル単位や行単位なら、カーソルの形が変化してからクリックしたほう が確実ですし簡単です。(こちら↓の表の選択が参考になります) http://hamachan.fun.cx/word/hyo.html この方法ならば、確実に文字カウントに範囲を選択できますので参考に してください。前回の回答において、このことを説明していなかった為 に、解りにくい説明になったこと再度お詫びします。

kitty1000
質問者

お礼

enunokokoroさん ご回答ありがとうございました。 enunokokoroさんの方法でできました。  詳しいご説明感謝します。

その他の回答 (10)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.11

1. 文字カウント機能のあるテキストエディタにコピペするとか。 2. マクロを使うとか。大げさすぎるかもしれませんが。 下記のコードを Normat.dot に登録して、呼び出し易いようにショートカット キーを割り当てるのはどうですか? 選択して反転表示されている範囲の文字数をカウントします。 Excel オブジェクトなどの OLE オブジェクトとして挿入されているものは、 カウントできません。これは、Word の文字数カウントと同じです。 通常の表組みであれば、複合表でも大丈夫だと思います。 ご参考までに。  # 一応 Word VBA です ' // 標準モジュール ------------------------------------------------- Private Declare Function OpenClipboard Lib "user32.dll" ( _     ByVal hwnd As Long) As Long Private Declare Function CloseClipboard Lib "user32.dll" () As Long Private Declare Function EmptyClipboard Lib "user32.dll" () As Long Private Declare Function GetClipboardData Lib "user32.dll" ( _     ByVal wFormat As Long) As Long Private Declare Function GlobalLock Lib "kernel32.dll" ( _     ByVal hMem As Long) As Long Private Declare Function GlobalUnlock Lib "kernel32.dll" ( _     ByVal hMem As Long) As Long Private Declare Function GlobalSize Lib "kernel32.dll" ( _     ByVal hMem As Long) As Long Private Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyA" ( _     ByVal lpString1 As String, _     ByVal lpString2 As Long) As Long Private Const CF_TEXT As Long = 1 Sub 選択範囲内の文字数カウント()   Dim hDat  As Long   Dim hMem  As Long   Dim sBuf  As String   Dim sMes  As String   ' // 選択範囲をコピーし、クリップボードからテキストとして取り出す   If Selection Is Nothing Then Exit Sub   Selection.Copy   sBuf = ""   If OpenClipboard(0&) <> 0 Then     hDat = GetClipboardData(CF_TEXT)     Call CloseClipboard     If hDat <> 0 Then       hMem = GlobalLock(hDat)       If hMem <> 0 Then         sBuf = String$(GlobalSize(hMem), vbNullChar)         Call lstrcpy(sBuf, hMem)         Call GlobalUnlock(hMem)         sBuf = Replace$(sBuf, vbNullChar, "")       End If     End If     Call EmptyClipboard   End If   ' // 制御コード除去   sBuf = Replace$(sBuf, vbTab, "")   sBuf = Replace$(sBuf, vbLf, vbCr)   sBuf = Replace$(sBuf, vbCr, "")   ' // 文字数をカウントし結果表示   sMes = "・文字数(スペースを含める)" & vbTab & CStr(Len(sBuf))   sBuf = Replace$(sBuf, " ", "", Compare:=vbTextCompare)   sMes = sMes & vbLf & _       "・文字数(スペースを含めない)" & vbTab & CStr(Len(sBuf))   MsgBox sMes, vbInformation, "(・∀・)ノ 選択された文字数" End Sub

kitty1000
質問者

お礼

KenKen_SPさん ご回答ありがとうございました。 VBAは良く分からないのですが、参考にさせて頂きます。

回答No.10

技術的な問題でなく、時々そういう特殊な範囲の文字数を確認したいと言うだけなら・・・ 選択状態でコピーして、新規のWord文章に貼り付けて文字数カウントするのが、一番手っ取り早いような気がします。

kitty1000
質問者

お礼

fumufumu_2006さん ご回答ありがとうございました。 今回は、表のままカウントすることが必要でした。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.9

既出回答を読むだけでも大変で、理解できてないですが、 操作では不可能ではないですか。 であればプログラムでやるより他ない。 しかしワードVBAは独学で勉強が難しいと思います。 ない知恵をはたいて下記をやってみました。 ーー ワードにエクセルのコピー範囲と同じn行m列の罫線ー挿入ー表で表を用意します。エクセルのセル範囲をコピーし、上記ワードの表全体を範囲指定し。形式を選択して張り付けーテキストで貼り付けます。 ワードVBEの画面に下記を張り付けます。 Sub test17() t = 0 n = ActiveDocument.Tables(1).Range.Cells.Count MsgBox n For i = 1 To n s = ActiveDocument.Tables(1).Range.Cells(i) MsgBox s MsgBox Len(s) t = t + Len(s) - 2 Next i MsgBox t End Sub ーー 実行すると文字数合計を表示します。 以下ワードの文書です。変な例ですみません。 ーー 大きな池があります (以下が3x3の表) 12 asd 奈良市 今日は晴れです dfgh 12345 奈良公園 (表終わり) 東京駅のすぐそば ーー 28と出ました。最初と最後の、地の文章の文字数は含まれておりません。 ーー 欠点は (1)表の張り付け方法に注文が付いている エクセルー>ワードの貼り付けは色々あるが、質問者はあいまいにしたままのように思うが。 (2)複数表がある場合はどうするか(多分表の数だけ繰り返しのコードを追加すればよいと思うが) など課題はあると思いますが、参考までに挙げます。 ーー 上記コードでMsgbox は確認のため多用してますが、納得した後は 最後のものを除き削除してください。 === >下記スレッドから移動してきました 最終は提携先の元締めOKWAVEに行き着くと思うので、登録して質問の配信を受けて、質問を見ている人は同じと思いますが、間違っていますかね。 何回質問しても、質問内容によっては(難しければ)必ず答えが返ってくるとは限りませんよ。 この質問コーナーを例えばエクセルだけでも、できるだけ答えようとすると、毎日ほぼ1日つぶれます。その質問について詳しい世の中の人が見ていると思うのは幻想です。また若い方がそんなことで時間をつぶしていたら、もったいないです。 ある程度のところで、満足な回答が出なくても、あきらめる問題もあると思います。

kitty1000
質問者

お礼

imogasiさん ご回答ありがとうございました。 VBAは良く分からないのですが、参考にさせて頂きます。

回答No.8

問1の回答 表の中にポインタを持っていくと左上に十字の印がでますのでそれをクリックすると表全体が選択されます その状態でツールより文字カウントを選択 問2の回答 表内の一部をカウントする場合・・・ 例えば「あいうえお」と「たちつてと」をカウントする場合 まず、「あいうえお」をドラッグ、次に「Ctrl」キーを押しながら「たちつてと」をドラッグ 「ツール」から「文字カウント」を選択でカウントされます 只単に「あいうえお」「さしすせそ」「かきくけこ」「たちつてと」をそのまま反転表示させても文字カウントは文章全体をカウントします ワード、エクセルともに2003ですが確認済みです お試しあれ

kitty1000
質問者

お礼

esupuressoさん ご回答ありがとうございました。 上記の件、了解しました。

回答No.7

ANo.6の補足回答 カーソルの形以外で行単位での選択をするのならば、メニューの[罫線] →[選択]→[行]でも良いでしょうね。 この場合は選択したい行に文字カーソル( I のようなもの)が点滅して いるなら、その行を選択してくれます。ただし複数行を選択する場合は セル単位で列で選択しておかないと上記手順では選択できません。 これはキーボードだけでの選択する方法として有効なものですね。 なお、Word2002からできるようになった離れた行を選択したい場合では 使えない方法ですから、やはりマウスなどでカーソルから操作する方法 が簡単だと思います。 それから表全体を選択する場合には、表の左上の[表の移動ハンドル]か 右下の[表のサイズ変更ハンドル]をクリックすることで、表全体を選択 できますのでこの方法で選択するか、[罫線]メニューの[選択]から[表] を選択するなどで対応してください。

kitty1000
質問者

お礼

enunokokoroさん ご回答ありがとうございました。 現在は、ANo.6の方法で十分用が足りている状態です。 必要に応じて上記方法も検討させていただきます。

回答No.5

前の質問では補足をされたのですね。出来るだけ補足が付いていないか を確認をしていましたが、早く締め切ったのでしょうか? さて、表における[文字カウント]についてですが、[セルの終了記号]を 選択してカウントした場合、質問にある全体のカウントになります。 表における編集記号についてはこちら↓ http://office.microsoft.com/ja-jp/word/HP052571131041.aspx?pid=CH060831631041 [行末記号]を含める行単位であれば[文字カウント]は有効になります。 しかし列単位やセル全体での選択をした場合、カウントする文字を選択 していないのと同じことになるために文書全体になります。このことを 理解するために、表以外でも文字を選択しないで[文字カウント]をして ください。そうすれば文字カウントがされるための条件を理解できると 思います。 つまり、[文字カウント]の範囲選択が有効になるのは以下の条件になる ことを理解しておけば、カウントをするときの設定方法が理解できると 思います。 条件1 文字列のみを選択している場合 これは、[段落記号]を含まない(表における[セルの終了記号]を含む)で 文字列だけを選択している場合、その文字列だけをカウントします。 セル内でも[セルの終了記号]を含まずにセル内の文字列だけを[ Ctrl ] キーで選択しても対象になります(Word2002以降で有効なもの)。 条件2 表における[行末記号]を含む場合 表における行末記号は、本文の段落記号と同じ意味をなすようですので これを含めた行単位での選択した場合では、選択範囲だけのカウントを します。ただし、複数列でできた表において、左の列を含まずにセルを 選択したときの[行末記号]を含んでも、行単位ではないために選択範囲 がセル全体と同じになるようです。この条件の違いについて理解しては いないので経験上(検証した結果)としての回答です。 これは、表全体を選択したときの条件と同じことでもあります。 条件3 段落記号を含む編集記号を選択した場合 これは、条件1の文字列と同じですが[文字カウント]において[段落数] もカウントします。 これらの条件を理解して、文字単位か、行末記号を含む行単位か、それ を[ Ctrl ]キーで複数選択してから[文字カウント]をしてください。

kitty1000
質問者

お礼

enunokokoroさん >[行末記号]を含める行単位であれば[文字カウント]は有効になりま >す。 上記の件検証しましたが、表の[行末記号]を含める行単位で選択しても(左の列を含む)Word全体の文章の文字数がカウントされてしまいます(何も選択していないのと同じ状態)。enunokokoroさんは行末記号を含む行単位の文字数のカウントをどのように実行されて有効だったのでしょうか? >セル内でも[セルの終了記号]を含まずにセル内の文字列だけを[ >Ctrl ]キーで選択しても対象になります(Word2002以降で有効なも >の)。 上記に関しては、enunokokoroさんのおっしゃるとおり選択範囲の文字のカウントのみ有効でした。 よろしくお願いします。

kitty1000
質問者

補足

enunokokoroさん ご回答ありがとうございました。 検証してみます。少しお時間ください。

回答No.4

ANo.1です。 すみません、 >表内では、単一のセルの選択では正しく表示するけれど、複数セルを選択すると全文字数を表示するようです。 は、間違いで、単一セルでもNGでした。 wordの表で、セル内の文字だけを選択するのならOKでした。 表の上下の行を含めて選択した場合もOKでした。 いろいろ比べてみると、 wordの表の右側にある改行マークを含めた選択状態ならOKみたいです。 ちなみに、word2007でも同様みたいです。

kitty1000
質問者

補足

fumufumu_2006 ご回答ありがとうございました。 検証してみます。

noname#129375
noname#129375
回答No.3

No2ですが、間違えがありました。 WordじゃなくてExcelです。 すみません。質問文に惑わされてしまいました(笑)

kitty1000
質問者

補足

terulanさん ご回答ありがとうございました。 了解しました。

noname#129375
noname#129375
回答No.2

Word2007使用者です。Word2002(SP3)でも一応利用確認しました。 ここではA1:B5のセル範囲に文字列があるとします。 そしてどこか任意のセルに次のように入力します。 =SUM(LEN(A1:B5)) ---*ここが重要です*--- 入力し終わったら普通にEnterキーを押すのではなく、CtrlとShiftを押しながらEnterキーを押します(配列数式に関係します) ------ ちなみにスペース(空白)も文字数に含まれているので注意してください。スペースを数えずに文字数をカウントする方法もありますが、とても面倒な数式になるので今回は省きます。

kitty1000
質問者

補足

terulanさん ご回答ありがとうございました。 上記の回答は、WordではなくExcelの場合ですね。

回答No.1

選択の仕方じゃないかと思います。 word2000での確認ですので、バージョンが違う場合はわかりませんが・・・ 表の数字だけではなく、表自体を選んでカウントしてみてください。 具体的には http://www.eurus.dti.ne.jp/~yoneyama/Word2007/word2007-hyou2.html の、「表全体を選択する」です。 表内では、単一のセルの選択では正しく表示するけれど、複数セルを選択すると全文字数を表示するようです。 ただし、行を選択すると、正しく表示するようです。 上記URLの「行を選択する」の状態です。 なんでそうなるのかはわかりませんが・・・

kitty1000
質問者

補足

fumufumu_2006さん ご回答ありがとうございました。 検証してみます。

関連するQ&A

専門家に質問してみよう