Wordでパスワードなしで上書き保存するマクロ
以前、パスワードが設定されているExcelを開いた後、パスワードなしで上書き保存するマクロを紹介しましたが、今回はそのWord版です。
Excel2013で確認しました。 (さらに…)
ゆるくつくる stabuckyのブログ
以前、パスワードが設定されているExcelを開いた後、パスワードなしで上書き保存するマクロを紹介しましたが、今回はそのWord版です。
Excel2013で確認しました。 (さらに…)
Wordでアウトラインを使っているときに、見出しの番号種類を変える方法を紹介します。
例えばアラビア数字の「1.見出し」のような見出しをローマ数字の「I.見出し」のように変えます。
Word2007、Word2013で確認しました。 (さらに…)
VSCodeでは 文字列を選択して Ctrl+X とすると切り取り(カット)になりますが、選択せずに Ctrl+X とするとカーソルのある行全体を切り取ります。Ctrl+Cも無選択ならば行全体をコピーします。
SublimeTextも同様の動作をします。
調べてみたところ、以前から使用しているサクラエディタも同様でした。これは知りませんでした。テキストエディタだとよくある機能なのかもしれません。確かに便利です。
一方、ワープロソフトのWordはこのような動作はありません。選択した文字列を切り取り、コピーしますが、無選択では何も起きません。
そこでWordにもこの機能を追加してみます。マクロを使います。 (さらに…)
以前、Excelのファイル名に日時を付けて保存するマクロを紹介しました。
ファイルを上書き保存する際に別途、日時を付けたファイルを保存することで「うっかり上書き」を防ぎます。
今回はこれのWord版を作りました。 (さらに…)
以前、表紙の次からページ番号を付ける方法を紹介しましたが、今回、これが戻せなくなるケースがありました。
対処方法をメモしておきます。Word2007で確認しました。 (さらに…)
元のデータが「1234567」となっている場合、これをWordの差し込み印刷で「123-4567」というようにハイフン「-」を入れて表示する方法です。フィールド名は「郵便番号」とします。Word2007で確認しました。
通常の差し込み印刷ではフィールドコードが「{ MERGEFIELD 郵便番号 }」となります。フィールドコードを見るにはAltキーを押しながらF9キーを押します。
このとき差し込み印刷では「1234567」とそのまま数値として表示されます。
桁を揃えるには「\#」を挿入した後に「0」や「#」を使います。桁の途中に文字を表示したいときにはその文字を入れればよいです。
例えば「{ MERGEFIELD 郵便番号 \# 000_0000 }」とすると「123_4567」と表示されます。
しかし「-」を入れようと「{ MERGEFIELD 郵便番号 \# 000-0000 }」とすると「123 4567」と表示されます。スペースになってしまいます。
実は「-」は数値書式スイッチの一つなので単純に入れると本来の機能が働いてしまうのです。
- (負符号) この書式項目は、実行結果が負の数である場合に、負符号を追加します。実行結果が正の数または 0 (ゼロ) である場合はスペースが追加されます。
記号をそのまま表示したい場合は、記号を「'」(アポストロフィ)で挟みます。
「{ MERGEFIELD 郵便番号 \# 000'-'0000 }」とすると「123-4567」と表示されます。
以前、脚注を括弧書きに変換するマクロを紹介しました。
しかし、脚注が長すぎると(255文字超)、エラーになります。
これを改良して、脚注が長くても対応できるようにしました。
次に紹介するマクロの他に、以前、紹介した「長い文字列の置換」「全てを置換」の二つの関数が必要になります。
括弧書きの括弧はkakkoLeftとkakkoRightで指定します。
編集中の文書に変更を施しますので、マクロは文書を保存してから実行してください。ご利用は自己責任でお願いします。
2020年10月11日追記
「動作しない」とコメントをいただきました。
置換のパラメータとして「MatchFuzzy = False」を追加しました。
VBA(Word)で文字列の置換を行う場合、置換後の文字列が長すぎるとエラーになります。
実行時エラー5854
文字列型パラメータが長すぎます。
これを回避する方法を考えました。
次に挙げる二つの関数が必要です。「長い文字列の置換」がメインです。
使う場合は「call 長い文字列の置換(mae, ato)」のようにして使います。
ページ全体に対して置換を行うマクロです。これ自体は長い文字列に対応していません。
メインとなる部分です。
置換後の文字列が255文字を超えるとエラーになります。
まず置換後の文字列を250文字ずつ分割すると何個になるかを計算します。
もし700文字だとすると3個になります。
そこで、置換後の文字列を「{{1}}{{2}}{{3}}」として、とりあえず置換します。これが255文字を超えることはないでしょう。
次に置換後の文字列から250文字ずつ分割して「{{1}}」「{{2}}」「{{3}}」と置換します。それぞれは255文字を超えないのでエラーが出ません。
編集中の文書に変更を施しますので、マクロは文書を保存してから実行してください。ご利用は自己責任でお願いします。
Wordで文章を書く際に行頭に記号を使う場合があります。
例えば次のようなケースです。
特に書式を設定しなければ上のようになりますが、次のように二行目からはインデントを一文字分入れたいところです。
こうするには、段落の設定で「最初の行」を「ぶら下げ」、「幅」を「1字」にします。
頻繁に設定するには面倒です。マクロを考えました。
設定したい行にカーソルを移動し、このマクロを実行すると二行目からインデントを一文字分入れてぶら下げにします。
これをクイックアクセスツールバーにセットしたり、キーボードショートカットとして設定したりすると便利です。
マクロを設定する方法とキーボードショートカットを設定する方法は「Wordで「テキスト貼り付け」にショートカットを割り当てる」で紹介しています。
Wordで文書の先頭に表を作成したとき、その上に空行を挿入するには、表の左上のセルにカーソルを移動してEnterを押します。
左上のセルに文字が入っているときはその左端にカーソルを移動してEnterです。
つまり、その文書の先頭、左端にカーソルを移動させてEnterすればよいのです。
表の上に行があるときはセル内で改行されるだけです。2ページ以降のときもセル内で改行されます。
表の先頭行にカーソルを移動して表の分割(表ツール-レイアウト-結合-表の分割)でも表の上に行が挿入されます。