Home » ワードマクロ・Word VBAの使い方 » Selection » 文書の先頭にカーソルを移動するWordマクロ

文書の先頭にカーソルを移動するWordマクロ

対象:Word2007, Word2010, Word2013

「word マクロ 文書の先頭にカーソル」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

文書の先頭にカーソルを移動するWordマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。

アクティブな文書で、文書の先頭にカーソルを移動したいのであれば、ショートカットキー[Ctrl]+[Home]で済んでしまいます。

マクロを使いたいということですから、複数の文書でカーソルを文書の先頭に移動したいということかな、と想像しています。

どこかに提出するWordファイルが大量にあるけれど、カーソルの位置が文書の先頭にないようなときに、すべての文書のカーソル位置を文書の先頭にしたいというニーズは、特に日本の組織ではありそうに思えます。

まずは、アクティブな文書で、カーソルを文書の先頭に移動するマクロを確認しましょう。

[スポンサードリンク]

Bookmarkオブジェクトで文書の先頭にカーソルを移動するサンプルマクロ

Wordマクロを、自分で作れるようになりたいとは思わない、ネット上に存在するコードをコピペすればいい、という方にとって理解しやすいのは、以下のようなマクロでしょうか。


Sub 文書の先頭にカーソルを移動_Bookmarkオブジェクト()
 ActiveDocument.Bookmarks("\StartOfDoc").Select
End Sub

Bookmarksプロパティの引数に「\StartOfDoc」という文字列を指定すると、「Start Of a Document」というとおり、文書の先頭を表すBookmarkオブジェクトを取得できます。

取得したBookmarkオブジェクトのSelectオブジェクトで文書の先頭が選択されます。(つまりカーソルが文書の先頭に移動します。)

Rangeメソッドで文書の先頭にカーソルを移動するサンプルマクロ

Wordマクロを自分で作れるようになりたいと考えてらっしゃる方には、以下のようなRangeオブジェクトを使ったマクロを理解することをおすすめします。


Sub 文書の先頭にカーソルを移動_Rangeオブジェクト()
 ActiveDocument.Range(0, 0).Select
End Sub

Wordマクロを自分で作れるようになりたい場合、文書の特定領域・特定範囲を表す、Rangeオブジェクトの理解が必須です。

Rangeオブジェクトを取得する方法はいろいろありますが、DocumentオブジェクトのRangeメソッドを使う方法が、

文書の先頭にカーソルを移動するWordマクロ

Rangeオブジェクトを選択する一番の基本です。

そんなDocument.Rangeメソッドを使ったのが上記のマクロです。

Wordマクロを自分で作れるようになりたいとお考えの方は、Document.Rangeメソッドのヘルプを読んでみることと、
 ActiveDocument.Range(0, 0).Select
というコードの、Rangeの2つの引数に指定された数値を変更して、何が選択されるのかを確認することを、おすすめしておきます。

WordのRangeとExcelのRangeはまったくの別物

ちなみに、Excelマクロの経験がある方の場合、ExcelにもRangeオブジェクトがあるために混乱するかもしれませんが、そもそもWordとExcelというまったく別のアプリケーションを操作しているわけですから、当然ながらExcelのRangeオブジェクトと、

文書の先頭にカーソルを移動するWordマクロ

WordのRangeオブジェクトは、

文書の先頭にカーソルを移動するWordマクロ

まったくの別物です。

たまたま同じ「Range」という名前のオブジェクトがまったく別のアプリケーションに存在しているだけです。

開いている全文書でカーソルを先頭に移動するサンプルマクロ

で、以下のようなマクロにすれば、開いている全文書でカーソルを先頭に移動できます。


Sub 全文書の先頭にカーソルを移動する()
 Dim doc As Document
 For Each doc In Documents
  doc.Range(0, 0).Select
 Next doc
End Sub

開いている全文書に対してFor Each~Nextループを回して、
 For Each doc In Documents
Document.Rangeメソッドを使って文書の先頭を選択しています。
  doc.Range(0, 0).Select

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Selection » 文書の先頭にカーソルを移動するWordマクロ

TrackBack:1

TrackBack URL
Range(0, 0)とは from インストラクターのネタ帳
Word VBAのRange(0, 0)というオブジェクト式について解説しています。

Home » ワードマクロ・Word VBAの使い方 » Selection » 文書の先頭にカーソルを移動するWordマクロ

「Selection」の記事一覧

検索


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

.