質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • VBA

    1643questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Word

    73questions

    Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

WordのテーブルをExcelに転記するときに出てくる黒丸の正体について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 246

Kalewalavn

score 2

WordのテーブルをExcelに転記するツールを作成しています。
Excelに転記をした際に、おそらくテーブルの一枠毎に『・』より少し大きいぐらいの黒丸が現れました。
この黒丸が何なのかを教えていただきたいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mts10806

    2018/04/26 05:36 編集

    画面キャプチャか何か添付していただけますか?これだけでは状況と現象が分かりません。プログラミングに関係のない質問のようにも思いますが、その辺りはいかがでしょうか。

    キャンセル

回答 2

checkベストアンサー

+3

WordのテーブルをExcelに転記するツールを作成しています。

その転記するコードを提示してください。
回答者が検証するにしても、一からコードを書くのは負担です。

いちおう一般的なコードを記述して検証してみました。
確かに、各セルの最後に黒丸が付加されました。
そこで、最後の2文字分の文字コードを調べるコードを追加しました。

Public Sub ImportWordTable()
    Dim myWord As Object    'Word.Application
    Dim myWordDoc As Object    'Word.Document
    Dim docFilePath As String
    Dim r As Long, c As Long
    Dim s As String

    Set myWord = CreateObject("Word.Application")
    docFilePath = "C:\TEMP\テーブル.docx"
    Set myWordDoc = myWord.Documents.Open(docFilePath)

    With myWordDoc.Tables(1)
        For r = 1 To .Rows.Count
            For c = 1 To .Columns.Count
                s = .Cell(r, c).Range.Text
                Debug.Print Asc(Mid(s, Len(s) - 1, 1)); Asc(Mid(s, Len(s), 1))
                If s Like "*" & Chr(13) & Chr(7) Then s = Left(s, Len(s)-2) '制御コード(黒丸)削除
                Cells(r, c).Value = s
            Next
        Next
    End With

    myWordDoc.Close
    Set myWordDoc = Nothing
    myWord.Quit
    Set myWord = Nothing
End Sub

結果、文字コード 13 と 7 が付加されていました。
下記によると、
13 は Carriage Return 行頭復帰
7 は Bell 警告音を鳴らす
だそうです。

ASCII文字コード \- IT用語辞典

行頭復帰 はなんとなくわかりますが、警告音を鳴らすコードが埋め込まれているのか、Wordの開発者に聞かないとわからないですね。

追記
Chr(13) & Chr(7) の制御コードを削除するコードを追加しました。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/27 13:20

    ワードでは、セル内の末尾に必ず Chr(13)+Chr(7) があります。

    文献で見たわけではないですが、
    恐らくセルの区切りとしての制御文字だと推測されます。

    なのでセル内の値を取得した際には、
    末尾に制御文字があったら除去する処理が必要となります。

    キャンセル

  • 2018/04/27 13:23

    Word独自の制御コードなんでしょうね。

    キャンセル

+2

不明な文字のデバッグは、その文字が本当は何であるかを確認するところから始まります。

見た目が[・][?] であっても、文字コードが[・][?]と同じとは限りません。

VBAで、ASC関数を使って文字コードが分かれば、
その文字コードでぐぐって調べると、
何の文字がExcelに出力されてるのかが分かります。

恐らく、Wordで使われている何らかの制御文字が、
Excelでは対応してないのだと推測されます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • VBA

    1643questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Word

    73questions

    Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。