« 2008年8月 | トップページ | 2008年10月 »

2008年9月の5件の記事

2008年9月27日 (土)

ピリオド・句点までの文字を選択

現在のカーソル位置から次のピリオドや句点までを一気に選択するマクロ「dotsearch.dot」をダウンロード

●用途
文章編集時に、前後の入れ替えなどをする場合、ピリオドや句点までを選択したくなるときに使います。

●作用
Dotsearch4つのマクロをひとつのテンプレートにしました。イメージの左側のボタンから順に①上流側の句点を探す、②下流側の句点を探す、③上流側のピリオドを探す、④下流側ピリオドを探す、の4つです。

たとえば、「④下流側ピリオドを探す」マクロを説明します。
現在のカーソル位置から、次のピリオド(ダブルスペースを探します。”.  ”となっているピリオドを探して、このピリオドの左側の文字までを選択します。

文章を入力して、試してみてください。おそらく、キーボードに割り当てたほうが、使い勝手がいいと思います。キーボードへの割り当て方法は、こちらをご覧ください。

●工夫したところ
文字が選択されていても、文字が選択されていなくても作動するようになっています。

●マクロの改造ヒント
シングルスペースの場合の変更方法は、マクロに記載してあります。Visual Basic Editorでコードを確認ください。

| | コメント (0) | トラックバック (0)

インサートキーの無効化(マクロじゃないけど)

デスクトップパソコンは、マイクロソフトのMicrosoft Natural Ergonomic Keyboard 4000というものを愛用しています。

キーボードの手前側にパームレストがあって傾斜があります。また、キーボード自体が中央で逆ハの字に分かれているため、ホームポジションに手を置くと、手がハの字になります。

簡単に言うと、キーボードを打つときの腕や手の状態がすごく自然な姿勢になります。

また、画面の拡大縮小を可能にするスライドボタンや、アプリケーションやネットのサイトの一発立上げボタンがあって、なんとも使い勝手がいいのです。

仕事でパソコンで文字を打つことがおおい方にはおすすめです。

で、前置きはここまでにして、本題に入ります。

このキーボードで気に入らないところがひとつありました。これは、どのデスクトップ用のキーボードにも共通していることなのですが、「Insertキー」の押し間違いをしやすいということです。

通常Insertキーはbackspaceキーのとなりにありますが、文章を書いていてbackspaceを押しただけのつもりが、ついでにinsertキーまで押してしまい、入力文字の修正にいらだつ経験をされたことありませんか?

特に、insertキーは、それほど頻繁に入りきりを調整するものではない、と思っているので、常に「挿入モード」にしておいてもいいと思うのです。

最近、解決策を思いつきました。ワードの一般的な設定の変更で、簡単にinsertキーの無効化ができます。

考え方としては、現在のinsertキーに割り当てられている機能(ワードで言うと、上書き・挿入のモードの切り替え:overtypeというコマンドのオンオフ)を、別のキーで実行するように変更する、というものです。たとえば、「Shift + Alt + insert」の3つのキーを同時に押したときにだけ、上書き・挿入のモードが切り替わるようにしてしまうのです。

そうすると、insertを押しただけでは、モードが切り替わらなくなります。

●具体的な手順

Usersettei

1.メニューのツール>ユーザ設定を開く

Usersettei2

2.右下の「キーボード」をクリック。
新しい窓「キーボードのユーザ設定」が現れるので、左上のコマンドの「指定 分類(C)」の欄で、「すべてのコマンド」を選ぶ。また、右に表示される「コマンド(O)」の欄でovertypeを選ぶ。(下のイメージはここまで選択した状態です)

Usersettei25

3.overtypeコマンドを実行するために現在割り当てられているキー(insert)を削除します。
中央左にある「キーストロークの指定 現在のキー(U)」欄に表示されているinsertを選択して、一番したにある「削除ボタン」をおします。

Usersettei5_2

4.新しいキーの割り当てをします。例では、「Shift + Alt + insert」としました。
「割り当てるキーを押してください」欄の下の枠にカーソルを合わせてから「Shift + Alt + insert」を押すと、欄にイメージのように表示されます。

Usersettei4

5.設定します。
窓の左下の「割り当てボタン」を押すと、設定されます。

上記では、Normal.dotのテンプレートに保存する方法を説明しました。

マクロも同様のやり方で、キーボードから実行するように設定できます。お試しください。詳細な説明は、「自分で作るWordマクロ(1)」のP40に記載されています。

| | コメント (0) | トラックバック (0)

2008年9月14日 (日)

初心者プログラマーがマクロを書くために

今の仕事をする前に、プラントの設計をしていました。いい図面を書くためには、同僚が書いた優れた図面を見ることが大切でした。そこには、言葉では伝えられていないノウハウが詰まっていました。設計者としてのキャリアは短いので、設計についていろいろと語ることはできませんが、「優れた図面に触れたことは、自分の設計技術を高めるのに役に立った」と今も思っています。

今は技術翻訳の仕事をしています。前職の経験を意識して、自分が作成したいと思うものがあるときには、優れた先駆者が作成したものを参考にするようにしています。当たり前のことかもしれませんが、そこにはノウハウが詰まっているので、ちょっとまねをするとそれなりの形になるし、自分でゼロから作るよりも質の高いものができることが多いと思っています。なんでも猿真似をして手を抜くというわけではありません。必要なエキスを使わせてもらい、さらにそこから自分の作りたいものに近づける努力をするという意味です。

英語を書くことに慣れてくると、英作文(翻訳ではなく、英作文)がどんどんできてしまうために、そこで満足してしまいがちになると思います(あくまでも、自分の場合ですが)。そうすると、英語が錆びてきます。残念ですが、気づきいてしまいます。

いい英語を書くためには、やっぱりいい英語(特許翻訳でいうのならば、英語圏の大手企業が出願した特許文書の英語。当たりはずれがありますが、ノンネイティブの英語よりは表現が的確だと思いますし、英語の発想に触れることで勉強になります)を読むことが必要だと思います。これはよく言われていることですね。私がいまさら言うことではありません。

なぜ、このように設計者や翻訳者なら知っているようなことをあえて書いたかというと、ワードマクロも同じようなものだと思うからです。ある程度我流でもマクロはかけますが、優れたプログラムを参考にしてアイディアをいただきながら書くと、上達が格段に早いと思っています。

で、今自分がやっていることは何かというと、先駆者が書いたプログラムを読むということです。

国内のワードマクロ解説書が少ないのですが、翻訳にマクロを使いたいと思っている方には、洋書のマクロ解説書がおすすめかもしれません。

あと、洋書の翻訳本もあります。今日は、最近見つけたワードマクロの翻訳本を紹介します。「WORD HACKS」です。アマゾンの紹介にも、表紙にもどこにもマクロ本とは書いてありませんが、実はかなりマニアックなマクロの本です。

マクロの基礎的な解説はありませんが、目的と作用とプログラムが書かれています。他人が書いたプログラムを勉強するにはもってこいの本です。なお、これは翻訳本ですが、使われている図や画面はWinXPとWord2003の日本語版なので、問題なく使えます。

私は、この本の内容全てを理解しようとは思っていません。むしろ、プログラムのいろんなアイディアが載っている参考書として、つまみ読みしています。

使えそうなプログラムを見つけたら、そのプログラムを自分で理解できるまで読むようにしています。理解するためには、実際にワードのVisual Basic Editorに入力して動きを確認するのがいいと思います。そうすると、ワードのヘルプも使えるので便利です。

また、「Wordで実践」の索引からキーワードを検索したり、ほかの洋書(今後少しずつ紹介していきます)の索引を引いたりしてなんとか調べています。みなさんがかつて「辞書や文法書を片手に英語を読んできた」ように、「マクロ本やワードのヘルプでコードの意味を調べながらプログラムを読む」のは、なかなか楽しい作業です。

ぜひお試しください。

| | コメント (0) | トラックバック (0)

2008年9月 6日 (土)

「文章の作成に使用するテンプレート」の一時変更

テンプレートを変更するコードです。

Templatechange_2
ここでいう「テンプレート」とは、マクロ用のテンプレートではなくて、「文書の作成に使用するテンプレート」のことであり、通常は「Normal.dot」がそれにあたります。左の画像のとおり、テンプレートアドインのダイアログボックスにおける上の欄に記載されるテンプレートのことです。

ActiveDocument.AttachedTemplate = "テンプレート名.dot"

上記の”テンプレート名”に、使いたいテンプレート名を入れます。
特定のマクロプログラム実施中に、所定のテンプレートの情報を使うことができます。

●使用例
さまざまな「定型句」を保存したテンプレートを、「定型句の保管用」とします。
この「定型句の保管用」テンプレートに保存した「一覧表」をマクロ実行中に呼び出したい場合に、現在使っているテンプレートから、「定型句の保管用」のテンプレートに一時変更します。

●プログラムの一部 例
Dim prsntTemplates As String

'現在使われているテンプレートを保管
prsntTemplates = ActiveDocument.AttachedTemplate

'使用するテンプレートを変更
ActiveDocument.AttachedTemplate = "定型句の保管用.dot"

    Application.DisplayAutoCompleteTips = True
    ActiveDocument.AttachedTemplate.AutoTextEntries("一覧表").Insert Where _
        :=Selection.Range, RichText:=True

'プログラム終了時に、もとの設定に戻す
ActiveDocument.AttachedTemplate = prsntTemplates

●プログラムの工夫
現在使用中のテンプレート名を保存して、最後にそのテンプレートに戻すところ。
なかなか粋な計らいだと思います。

| | コメント (0) | トラックバック (0)

日付の表示を変換するプログラム

FormatDateTime(日付, 表示形式)

下記の例では、日付の変数をcheckdueとしており、表示形式をvbLondDateとしました。

Dim checkdue As String

checkdue = "2008/9/6"
checkdue = FormatDateTime(checkdue, vbLongDate)
msgbox "今日の日付は" & checkdue & "です。"

上記の場合、
「今日の日付は2008年9月6日です。」と表示されます。

表示形式を vbGeneralDate と記載すると 
「今日の日付は2008/09/06です。」 と表示されます。

| | コメント (0) | トラックバック (0)

« 2008年8月 | トップページ | 2008年10月 »