« ユーザーフォームのテキストボックス内で改行文字列を取り出す(その4)最終回 | トップページ | 【改良】Esp@cenetの特定ページへのリンク自動作成 »

2009年12月12日 (土)

文頭の文字を大文字化

今日は、文頭の文字を大文字にするマクロです。
簡単な仕組みですが、けっこう重宝します。

▼以前紹介した似た機能のプログラム
以前から同じ効果がほしくて、いろいろとマクロを作成してきました。

先頭文字の大文字・小文字(選択文字列・ペースト文字列)

これには、

「選択されている文字列の最初の1文字を大文字・小文字にする」
「ペースト時に、文字列の最初の1文字を大文字・小文字にする」

の2つの機能がありました。

わかりにくかったかもしれませんが、英文を作成する場合、
文頭の1文字を大文字にする必要があります。

①When I called him last week, he was surprised.
②He was surprised when I called him last week.

上記の①の文章を②のとおり通り書き換える場合、
多くの方が、コピーとペーストを使って、文章の順序を
入れ替えると思います。

その場合、ペーストしたあとに文頭にくる文字(H)を
大文字にする必要がありますね。

また、文頭にもともとあった文字(W)を小文字に
書き直す必要があります。

この作業を自動化しようとして前回のプログラムを作りました。

▼今回のプログラム

今回のプログラムは、大文字にする作業を別の方法で実施したく
思って作成しました。

カーソル位置を移動させずに、カーソルが置かれている文章の
先頭文字を大文字にします。

このプログラムをキーボードのショートカットで実行
できるように登録すれば、便利だと思います。

マウスを用いたり、またはキーボードの矢印を使って
先頭文字を選択する必要がないので、スピードが
あがります。

▼工夫
最近のプログラムで多用していますが、Rangeオブジェクトで
操作しています。

こうすることで、現在のカーソル位置を動かすことなく、
プログラムを実行することができます。

▼プログラムSub 文頭を大文字化()

      Dim myRange As Range

      'myRangeを設定
10    Set myRange = Selection.Range

      'カーソルが置かれている文章を選択
20    myRange.Expand Unit:=wdSentence

      'カーソルを選択された文章の先頭に移動
30    myRange.Collapse direction:=wdCollapseStart

      '文頭の1文字を選択(後ろのカーソル位置を一文字ずらす)
40    myRange.End = myRange.End + 1

      '選択された文字を大文字に変換
50    myRange.Font.AllCaps = True

      'myRangeの設定を解除
60    Set myRange = Nothing

End Sub

|

« ユーザーフォームのテキストボックス内で改行文字列を取り出す(その4)最終回 | トップページ | 【改良】Esp@cenetの特定ページへのリンク自動作成 »

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

コメント

コメントを書く



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




トラックバック

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

この記事へのトラックバック一覧です: 文頭の文字を大文字化:

« ユーザーフォームのテキストボックス内で改行文字列を取り出す(その4)最終回 | トップページ | 【改良】Esp@cenetの特定ページへのリンク自動作成 »