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

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

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

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

Word

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

Q&A

解決済

2回答

809閲覧

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

Kalewalavn

総合スコア8

VBA

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

Word

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

0グッド

0クリップ

投稿2018/04/25 13:35

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/04/26 01:01 編集

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

回答2

0

ベストアンサー

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

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

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

vba

1Public Sub ImportWordTable() 2 Dim myWord As Object 'Word.Application 3 Dim myWordDoc As Object 'Word.Document 4 Dim docFilePath As String 5 Dim r As Long, c As Long 6 Dim s As String 7 8 Set myWord = CreateObject("Word.Application") 9 docFilePath = "C:\TEMP\テーブル.docx" 10 Set myWordDoc = myWord.Documents.Open(docFilePath) 11 12 With myWordDoc.Tables(1) 13 For r = 1 To .Rows.Count 14 For c = 1 To .Columns.Count 15 s = .Cell(r, c).Range.Text 16 Debug.Print Asc(Mid(s, Len(s) - 1, 1)); Asc(Mid(s, Len(s), 1)) 17 If s Like "*" & Chr(13) & Chr(7) Then s = Left(s, Len(s)-2) '制御コード(黒丸)削除 18 Cells(r, c).Value = s 19 Next 20 Next 21 End With 22 23 myWordDoc.Close 24 Set myWordDoc = Nothing 25 myWord.Quit 26 Set myWord = Nothing 27End Sub

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

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

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

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

投稿2018/04/27 03:05

編集2018/04/27 04:48
hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ExcelVBAer

2018/04/27 04:20

ワードでは、セル内の末尾に必ず Chr(13)+Chr(7) があります。 文献で見たわけではないですが、 恐らくセルの区切りとしての制御文字だと推測されます。 なのでセル内の値を取得した際には、 末尾に制御文字があったら除去する処理が必要となります。
hatena19

2018/04/27 04:23

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

0

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

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

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

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

投稿2018/04/26 01:35

ExcelVBAer

総合スコア1175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問