Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » InlineShapeがあるかを判定する

InlineShapeがあるかを判定する

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2003 ビルド12624.20382 Microsoft Store)

Word VBAで、行内オブジェクトを表すInlineShapeと、浮動オブジェクトを表すShapeは、似ている部分もありますけれど、別のオブジェクトです。

このサイトのアクセスログで、
「Word VBA inline画像か否かを調べる」
という検索キーワードでのアクセスがありました。

何らかの処理を行う前に、InlineShapeかどうかを調べる方法を探していた方による検索でしょうか。

[スポンサードリンク]

選択範囲にInlineShapeが含まれるかを判定するサンプル

検索キーワード「Word VBA inline画像か否かを調べる」だけでは詳細がわかりませんので、選択範囲内にInlineShapeが存在するかを判定するコードをご紹介しておきます。

Sub InlineShapeが含まれるか判定する()
 If Selection.InlineShapes.Count <> 0 Then
  MsgBox "選択範囲にInlineShapeが含まれています。"
 End If
End Sub

サンプルマクロで利用しているコードについて

Word VBAのグローバルメンバーであるSelectionプロパティで取得した

Selectionオブジェクトに用意されているInlineShapesプロパティの戻り値InlineShapesコレクションに含まれる

InlineShapeオブジェクトの個数(Count)が、

0でないことによって、
  If Selection.InlineShapes.Count <> 0 Then

InlineShapeオブジェクトが存在すると判定しています。

もしもSelectionの仕様がExcel VBAのようだったなら

オブジェクトブラウザーでも確認できるとおり、Excel VBAのSelectionプロパティは、選択対象によって取得できるオブジェクトが異なりますが(そのためオブジェクトブラウザーの詳細ペインで戻り値が「As Object」と表示されています)、

Word VBAのSelectionプロパティはSelectionオブジェクトを返します。

もしもExcel VBAのように選択対象によって取得できるオブジェクトが異なるのならば、VBAのTypeName関数をつかって判定できたはずです。

最終更新日時:2020-04-20 15:26

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » InlineShapeがあるかを判定する

「Shape・図形」の記事一覧

検索


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

.