質問: ワードのマクロを教えてください こんにちは いつもお世話になっています。 ワード(2003)のマクロを教えてください。 ある辞書の文章をコピーした状態から、ワードへ貼り付け、貼り付けた部分だけを書式変更するマクロです。 具体的には、コピーしたテキストを書式付の状態で貼り付けた後、その貼り付けた部分だけを選択して書式を変えたいです。変更する書式は「行間」-「固定値」、「間隔」-「12pt」です。 辞書のコピペで使用したいのです。テキスト形式での貼り付けだと文字化けが生じ、htmlだと行間が大きすぎるのです。 よろしくお願いします。
回答: こんにちは。 前回、回答が付かなかったようですね。 しばらく、考えてみましたが回答は付けませんでした。ある程度のみなさんが使える汎用性があるものなら作りますが、固有の個人のリクエストに対するマクロは作りにくいです。 最大の原因は、 >コピーしたテキストを書式付の状態で貼り付けた後、 ここの部分です。テキストはプレーン・テキストで貼り付ければよいのです。書式を一旦消すマクロなんて、コードとしては、以下のコードの倍以上になってしまいます。 私は、右クリックで、excelもwordもテキスト貼り付けができるオプションを入れています。私の使っているものを、アレンジしてみました。だいたいは、私個人のものは、掲示板の皆様は、人気がないようですが......。これでも、長年使っているものです。 ちなみに、ctrl + v の設定をしてしまったら、常に、同様の書式になってしまいます。 マクロでクリップボードの中身を調べて、その中身のバイナリコードに対して、反応を換えるということも出来るのですが、wordは、上限のファイル・サイズが決められていますから、それはしないほうがよいです。 >テキスト形式での貼り付けだと文字化けが生じ、 具体例がないと分かりません。これに関しては処理していません。 以下の使い方は、他のフォーマットでコピーしたものを、右クリックして、「固定書式貼り付け」で、規定の位置に貼り付けします。なお、normal.dot は、一旦設定したら、バックアップしておくようにしてください。 '------------------------------------------- 'normal.dot の標準モジュール(module1) sub autoopen() on error resume next with application.commandbars("text") .controls("固定書式貼り付け").delete end with with application.commandbars("text").controls.add _ (type:=msocontrolbutton, temporary:=true) .begingroup = false .caption = "固定書式貼り付け" .onaction = "formattedtextpaste" end with call settingshortcut on error goto 0 end sub sub formattedtextpaste() selection.pasteandformat type:=wdformatplaintext with selection.range .paragraphformat.linespacingrule = wdlinespaceexactly .paragraphformat.linespacing = 12 end with end sub