Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAでテキストのみを貼り付ける

Word VBAでテキストのみを貼り付ける

対象:Word2007, Word2010, Word2013

「word vba paste 値だけ」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがありました。

「値だけ」というキーワードを使ってらっしゃることから、Excel VBAに慣れている方でしょうか。Wordの場合は「値の貼り付け」ではなく、「テキストのみ保持」といった表現が使われていますから。

貼り付け操作でテキストのみを貼り付けるマクロを作っておいて、そのマクロにショートカットキーを割り当てて使おうとしてらっしゃるのでしょう。

まず、いつでもテキストのみ貼り付けを行いたいということであれば、マクロを作るよりも[Wordのオプション]ダイアログで貼り付けの設定変更をしてしまうことを、おすすめしておきます。

その上で、テキストのみ貼り付けを行うマクロを作るのであれば、以下のような異なるメソッドを使った書き方が考えられます。

PasteSpecialメソッドでテキストのみ貼り付けを行うサンプルマクロ

Excel VBAに慣れた方なら、SelectionオブジェクトのPasteSpecialメソッドを使う以下のマクロが理解しやすいでしょう。

Sub テキストのみ貼り付け_PasteSpecial()
 Selection.PasteSpecial DataType:=wdPasteText
End Sub

Selection.PasteSpecialメソッドの引数・DataTypeに、

Word VBAでテキストのみを貼り付ける

WdPasteDataType列挙に定義されている定数・wdPasteTextを指定してやれば、

Word VBAでテキストのみを貼り付ける

テキストのみ貼り付けになります。

PasteAndFormatメソッドでテキストのみ貼り付けを行うサンプルマクロ

以下のようなPasteAndFormatメソッドを使ったコードでもOKです。

Sub テキストのみ貼り付け_PasteAndFormat()
 Selection.PasteAndFormat wdFormatPlainText
End Sub

先のマクロに合わせて名前付き引数を使うとすれば、
 Selection.PasteAndFormat Type:=wdFormatPlainText
というコードですが、Selection.PasteAndFormatメソッドの引数は一つしか指定できませんし、

Word VBAでテキストのみを貼り付ける

WdRecoveryType列挙に定義されている定数・wdFormatPlainTextを使えば、

Word VBAでテキストのみを貼り付ける

意味は理解できますから、名前付き引数を使わない標準引数でいいと感じます。

なお、マクロ記録を行うと、
  Selection.PasteAndFormat (wdFormatPlainText)
という、VBAの文法的には必要のないカッコのついたコードが生成されてしまいますが、VBA学習という面からは、こういうところはMicrosoftに是非とも治して欲しいと感じます。

最終更新日時:2022-01-20 13:10

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAでテキストのみを貼り付ける

「Selection」の記事一覧

検索


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

.