Home » エクセルマクロ・Excel VBAの使い方 » Shapeオブジェクト » UnicodeコードポイントをTextaRange2オブジェクトで出力する

UnicodeコードポイントをTextaRange2オブジェクトで出力する

動作検証バージョン:Windows版Excel(バージョン1908 ビルド11929.20254)

TextRangeコレクションをFor Each~Nextループで処理して、Unicodeコードポイント(文字コード番号)をイミディエイトウィンドウに出力するPowerPointマクロをご紹介しました。

Excel VBAの場合、TextRangeオブジェクトはありませんけれど、TextRange2オブジェクトで似たような処理を行うことも可能です。

[スポンサードリンク]

Unicodeコードポイントを出力するサンプルマクロ

アクティブなブックの先頭シートに、四角形などの、文字列入力可能な図形を作成しておいて、以下のSubプロシージャを実行してみてください。「文字列を入力されてください:」というインプットボックスが表示され、入力された文字列の文字、10進表記のUnicodeコードポイント、16進表記のUnicodeコードポイントがイミディエイトウィンドウに出力されます。


Sub Unicodeコードポイントを出力する()
 With Sheets(1).Shapes(1).TextFrame2.TextRange
  .Text = InputBox("文字列を入力してください。")
  Dim c As TextRange2
  For Each c In .Characters
   Debug.Print c; AscW(c); Hex(AscW(c))
  Next
 End With
End Sub

イミディエイトウィンドウに出力を行っている、
   Debug.Print c; AscW(c); Hex(AscW(c))
の部分は、TextRange2オブジェクトの既定プロパティTextを明示するなら、
   Debug.Print c.Text; AscW(c.Text); Hex(AscW(c.Text))
です。

サンプルで行っている処理について

上記のSubプロシージャで行っている処理は、PowerPoint VBAのTextRangeオブジェクトを使う場合とよく似ています。

PowerPoint VBAの場合、スライドを取得していましたが、
  With ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange
Excel VBAですからワークシートを取得するコードになっています。
  With Sheets(1).Shapes(1).TextFrame2.TextRange

TextRange2オブジェクトについて

このサイト『インストラクターのネタ帳』では、何度もお伝えしていますが、
  With Sheets(1).Shapes(1).TextFrame2.TextRange
の部分、TextFrame2オブジェクトのTextRangeプロパティで取得できるのは、TextRange2オブジェクトです。

TextRange2オブジェクトの、Charactersプロパティで取得できるのも、TextRange2オブジェクトです。

最終更新日時:2019-09-12 05:08

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapeオブジェクト » UnicodeコードポイントをTextaRange2オブジェクトで出力する

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » Shapeオブジェクト » UnicodeコードポイントをTextaRange2オブジェクトで出力する

「Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.