« 日付を英語表記にする(前回のつづき) | トップページ | Absolute Beginner's Guide to VBA »

2008年10月19日 (日)

日付を英語表記にする(前回のさらにつづき)

しつこく、日付を英語に表記する方法について検討します。前回のつづきです。

前回のブログで、「ワードも、エクセルも、VBAが難しいといわれるゆえんは、コマンドを知らない場合(ヘルプや本で調べきれない場合)、遠回りをして結果にたどり着いてしまうかもしれないということです。」と書きました。

では、どうやって、知らないコマンドを調べたらいいのか?が今日のテーマです。

自分でも出来ていないところもあるので、ヒントだと思ってください。やり方はいろいろですが、基本的な考え方は、「わからなかったら、マクロの自動記録で確認する」です。

この考えは、「自分で作るWordマクロ」の根底の考え方と同じです。詳細は省きます。

本題に戻って、「日付」の入力方法を探します。探し方は、「①を見る」と「②ワードのヘルプ機能を使う」などありますが、今回は、「②ワードのヘルプ機能を使う」方法で説明します。

ワードのヘルプ機能を使うには、ワード起動中にキーボードの「F1」キーを押すか、メニューのヘルプ(H)のMicrosoft Office Word ヘルプを選択します。そうすると、画面の右側にキーワード検索できる窓が現れます。

ここで気になる項目をクリックすると、その詳細があわられます。たとえば、「日付/時刻表示形式スイッチ」や、「現在の日付と時刻を入力する」などが気になります。

クリックして内容が確認できますから、絞り込む前に、いくつか読んでみて下さい。

自分が探した順番で行くと、「現在の日付と時刻を入力する」を参考にして、ワードの基本機能である、[挿入] メニューの [日付と時刻] という項目にたどり着きました。

Dateinsert1

(1)日付と時刻:

右側のタブで「言語の選択」を「英語(米国)」にすると、次のような画面になります。

Dateinsert2

(2)日付と時刻:

ここまでくると、あとは、マクロの自動記録をするだけです。記録方法は、「自分で作るWordマクロ(1)」のP.5もしくは、「Wordで実践」のP274 をご参照ください。

記録するとわかりますが、下記のようなコードがでてきます。

●10/19/2008の場合

    Selection.InsertDateTime DateTimeFormat:="M/d/yyyy", InsertAsField:=False, _
         DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _
        InsertAsFullWidth:=False

●October 19, 2008の場合

    Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _
        False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _
        InsertAsFullWidth:=False

マクロの記録を実行して、上記の(2)日付と時刻の英語(米国)表記の全てを順番に入力していくと、表記の対応と、マクロに自動記録されるコードの違いがわかります。

英語を勉強している方なら、このマクロの記録内容(DateLanguage:=wdEnglishUSやCalendarType:=wdCalendarWestern)が、「日付と時刻」ウィンドのそれぞれの設定項目、チェックマーク項目に対応していることに気がつくと思います。

端折って、英語の入力形式の話にもどすと、結局、こんなことがわかりました。

DateTimeFormat:="MMMM d, yyyy" October 19, 2008

DateTimeFormat:="dddd, MMMM dd, yyyy" Sunday, October 19, 2008

DateTimeFormat:="M/d/yyyy" 10/19/2008

DateTimeFormat:="M/d/yy" 10/19/08

DateTimeFormat:="yyyy-MM-dd" 2008-10-19

DateTimeFormat:="d-MMM-yy" 19-Oct-08

ここまでくると、「M、MM、MMM、MMMMはそれぞれ何を意味しているのでしょうか?」というクイズみたいなものです。クイズの答えは、先ほど紹介した「日付/時刻表示形式スイッチ」に記載されています。書籍では、「Excel VBAできる大辞典」に載っています。

僕は、こういうことの繰り返しをしながら、ちょっと時間がかかっていますが、コマンドを覚えています。

勘がさえていると、Visual Basic Editorのヘルプ(F1キーで起動)でほしいコマンドやプログラム文が見つかるのですが、今回の英語日付入力への変換についてはけっこう時間がかかってしまいました。

|

« 日付を英語表記にする(前回のつづき) | トップページ | Absolute Beginner's Guide to VBA »

コメント

ビジネスレポートの英日翻訳者です。 レポートに頻出する日付の返還を、マクロを組み自動化したいと思い、こちらのページに辿り着きました。 09/16/2013(米国式) 16/09/2013(欧州式)を、それぞれマクロを組んで2013年9月16日のように自動変換させたいと考えておリます。
この場合のコマンドはどのように作成すればよろしいのでしょうか。  御教示頂けれ幸いです。

投稿: 翻訳 | 2013年9月16日 (月) 15時35分

コメントを書く



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




トラックバック

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

この記事へのトラックバック一覧です: 日付を英語表記にする(前回のさらにつづき):

« 日付を英語表記にする(前回のつづき) | トップページ | Absolute Beginner's Guide to VBA »