このとき、何やらへんてこな記号みたいなものが、取り出した文字列にくっ付いています。
その変な記号が邪魔になります。そして、何より、その記号の正体が不明です。
下の画像をご覧ください。
Word文書の冒頭に表が挿入されています。
左側に「goosyun」と、右側に「@ymail.ne.jp」と文字列が入っています。Wordマクロでその文字列を取り出して、メッセージボックスに表示させた画像です。

【1】と【2】のVBAマクロコードは次のとおりです。
Sub 表内データ【1】()
Dim myT1 As String, myT2 As String
With ActiveDocument.Tables(1)
myT1 = .Cell(1, 1).Range.Text
myT2 = .Cell(1, 2).Range.Text
End With
MsgBox myT1 & myT2
End Sub
Sub 表内データ【2】()
Dim myT1 As String, myT2 As String
With ActiveDocument.Tables(1)
myT1 = .Cell(1, 1).Range.Text
myT2 = .Cell(1, 2).Range.Text
End With
MsgBox Left(myT1, Len(myT1) - 2) & Left(myT2, Len(myT2) - 2)
End Sub
マクロコード【1】と【2】を実行すると、それぞれメッセージボックスが表示されます。
【1】のマクロ実行で出てくるメッセージボックス内の文字列は、途中で改行されている上に、変な記号が混じっています(上に掲載の画像中のメッセージボックスをご覧ください)。
それに対して、【2】のマクロの実行では、望むとおりの文字列がメッセージボックスに表示されます。途中改行も、変な記号もありません。
実は、Word文書の表内の文字列には、目には見えない特殊な制御文字が入っているのです。
表の中に入っている文字列には、
1 段落記号(改行文字)
2 セルの区切り表す制御文字
と、この2つが含まれています。
文字列の末尾に、この2つの制御文字が常にくっ付いています。
よって、表内から文字列を取り出した場合は、末尾の制御文字を削除する必要があります。
Left関数を使えば、末尾の2文字を削除できます。
Left(Txt,Len(Txt)-2) という構文になります。
それでは、また次の記事で
■■■■ goosyun ■■■■
