つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

Wordマクロで末尾2文字カットの編集をしよう:関数LeftとLenの使い方

 Word文書中の表に入った文字列を、VBAで取り出すには、

Dim myTxt As String
myTxt = ActiveDocument.Tables(1).Cell(1,1).Range.Text

とします。
 このマクロコードを実行すると、変数myTxtに、表の左上端に入っている文字列が格納されます。

 ただし、表の中から取り出した文字列には、後ろに余計な制御文字がくっ付いています。
 余計な制御文字とは、
 1 段落記号(改行文字)
 2 セルの区切りを表す制御文字
の2文字です。
 この2文字が邪魔になります。

 この点は、先日の記事で、詳しく説明しています。
  ぜひ こちらの記事をご覧ください。

 そこで、表の中から文字列を取り出した場合には、末尾の制御文字を削除する作業が必要になります。

 文字列から、後ろの2文字を削除するときのVBAコードは、
MsgBox Left(myTxt, Len(myTxt) - 2)
です。




 上記の Left も、Len も、文字列を操作するVBA関数です。

Left関数は、
  文字列の左から指定された文字数分の文字列を返します。
  構文は、Left(文字列、文字数) です。
Len関数は、
  指定した文字列の長さ(文字数)を返します。
  構文は、Len(文字列) です。

 上記のLeft とLen を組み合わせて、
  Left(myTxt, Len(myTxt) - 2)
とすれば、文字列の末尾2文字が削除され、その結果の文字列が返されます。




それでは、また次の記事で
goosyun