« 実施例の表示統一マクロ | トップページ | フォルダ中のすべてのワードファイルの内容をコピペする »

2009年5月17日 (日)

テンプレートを開く(2)

先日、テンプレートファイル自体を開くプログラム文を掲載しました。

その後、あんなに難しく書かなくてもいいのではないかな?と思えてきて、以下のプログラムを試したら、うまくいきました。

先日このブログにコメントをしていただいた方から教えていただいた、Fullnameを使ってみました。

Sub テンプレートを開く2()

Dim FilePath As String

FilePath = ThisDocument.FullName

Documents.Open FileName:=FilePath

End Sub

簡単ですね。こっちのほうがいいと思います。

今回の発想のポイント

「Documents.Open」というコードだけでもいけるんじゃないのか?という思いつきがありました。

Openって書いてあるし、そのまま開いてくれそうな気がしました。

で、FileName:=の記載にファイルのパスも書き込んでしまえば、前回使った「ChangeFileOpenDirectory」というコードは不要ではないのか?と思ったわけです。

試したらうまくいきました。

最近は過去に作ったマクロをブラッシュアップすることを始めたので、上記のような視点でコードを眺めるようになりました。

selectionオブジェクトをrangeオブジェクトに変えることは、みなさんご存知のとおり、私がよくやっていることです。

他にも、過去のプログラム中の不要なループや分岐を削除したり書き直したりしています。

マクロの記録で調べたコードには、不要な記述が多いので、そういうものも積極的に削除しています。

こういう手直しは、自分の進歩を実感できる部分であり楽しめます。

また、プログラムがブラッシュアップされると、処理速度や処理精度もあがるので一石二鳥ですね。

|

« 実施例の表示統一マクロ | トップページ | フォルダ中のすべてのワードファイルの内容をコピペする »

マクロプログラム」カテゴリの記事

コメント

お気づきとは思いますが、変数を取り去って

Public Sub OpenThisDocument
Documents.Open FileName:=ThisDocument.FullName
End Sub

と一行でやってしまう方法もありますよね。
なんとなくコードの断片という気がするので、後々変数に入れたパスを加工するのかな、と思いますが……

投稿: | 2009年5月17日 (日) 23時55分

ご助言ありがとうございます。

1行で書けてしまえるんですね。知りませんでした。

「FileName:=」 のあとには、変数もしくは具体的な名称しかかけないという先入観がありました。

おっしゃるとおりコードの断片ではありますが、変数は後に使う予定はございませんでした。

ますます短くて美しいコードになってきました。
ありがとうございます。

投稿: 管理人 | 2009年5月18日 (月) 07時38分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/519619/45047232

この記事へのトラックバック一覧です: テンプレートを開く(2):

« 実施例の表示統一マクロ | トップページ | フォルダ中のすべてのワードファイルの内容をコピペする »