- 締切済み
WORDで、ルビをふる操作を短縮するマクロ
文章を作成するさい、ルビを多く活用するのが好きです。 WORD2010で、ルビを振る操作を短縮するマクロの作り方を教えていただけないでしょうか。 具体的には、「文字列の範囲選択(マウスやキーボードの操作)」→「ALT+H」→「F」→「R」→「ALT+G(文字列全体)」→「ALT+R(ルビ部分にカーソル移動・全選択)」という操作になるかと思います。 つまり、最終的に得たい結果は、「文字列を選択したら、ショートカットキーなどをひと押しするだけで、選択した文字列全体を対象とするルビをすぐ入力できる状態になること」です。 ・環境は、WORD2010+Windows7です。 ・現在は、この一連の操作を、左手用プログラマブルキーボード(orbweaver)に記憶せています。 ・なので、現状でも一応できているのですが、いまひとつ安定して動作しないことが多いです。(目的の状態にならず、文字のポイントを変える操作の方へ行ってしまうことがある。)原因はわかりませんが、使っているソフトを切り替える(ブラウザなどを操作する)と、しばらく挙動がおかしくなるような気がします。 ・WORDのマクロとして登録した方が、安定するのではないかと考え、質問させていただきました。 ・自分でマクロやプログラミングをする知識は、残念ながらゼロです。教えていただいたマクロを導入した経験が少しだけある程度です。 ご存知の方がいらっしゃいましたら、よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
マクロではなくて、ショートカットを登録したらいいと思います。 私のはバージョンが2013ですが、2010以降なら大して違いはないはずです。 手順 1.[ファイル] > [オプション] で「Wordのオプション」画面を開く 2.左ペインから [リボンのユーザー設定] を選択し、 右ペインの下の方にある「ショートカットキー:」の[ユーザー設定] ボタンをクリック 3.「コマンドの指定」で、[分類] から [ファイル] タブを選択し、 「コマンド」から [FormatPhoneticGuide] を選択する 4.「キー ストロークの指定」で、[割り当てるキーを押してください] の欄をクリックして カーソルを移動し、登録したいショートカットキーを押下して設定 5.[割り当て] ボタンをクリックしてオプション画面を閉じる 以上で設定できます。お試しください。
- imogasi
- ベストアンサー率27% (4737/17069)
ワードにも、フリガナを振る操作をして、そのマクロを作ってくれる「マクロの記録」をする機能がある。 >自分でマクロやプログラミングをする知識は、残念ながらゼロです であっても、他人に頼って、丸投げで頼むのはこの質問のコーナーの趣旨に反するとおもう。 マクロの記録のコードを眺めて居れば、ある程度は、何をコードにしているか判る。 その段階で、疑問点を質問してはどうだろう. まずマクロについて、WEBか本でVBE画面を出すまでを勉強すること。 といっても、ALT+F11キーを押すこと、VBE装入画面が出て、ー標準モジュールをクリック(キーボードではALTを押したままI その次にMキーを押すでしかないが。 ーー Googleで「word VBA ふりがなを振る」でも照会すれば記事がたくさん出る。 http://ameblo.jp/gidgeerock/entry-11238516454.html を使わせてもらう場合。 文書に 「大きな困難を乗り越えた人に喜びがある。 困難は突然やってくる場合もある。」 という例文として Sub ルビの自動入力マクロ() Dim myRange As Range '検索用Rangeオブジェクト Dim myText As String 'ルビをふる文字列 Dim myRuby As String 'ルビの文字列 myText = "困難" ’<==ここを適宜変える myRuby = "コンナン" '<==ここを対応して適宜変える 'Rangeオブジェクト変数の設定 Set myRange = ActiveDocument.Range(0, 0) '検索条件 With myRange.Find .Text = myText .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With 'ルビを付けるループ Do While myRange.Find.Execute = True myRange.PhoneticGuide Text:=myRuby Loop 'オブジェクト変数の解放 Set myRange = Nothing End Sub 結果 大きな困難(コンナン)を乗り越えた人に喜びがある。 困難(コンナン)は突然やってくる場合もある。実際では()内はルビとして振られる。 == ただし、 どういうタイミングでプログラム実行に入るか。まず語句選択を複数しておいてとか。 (上記例では1語のみの例) ルビの各語(文章箇所)での多様性(カタカナやひらがななど、ほか書式の多様性対処) などを盛り込むとなると、VBAは難しくなる。 マウスでとびとびの複数語を範囲指定しておいて、それぞれの後にルビ降り実行はむつかしいようだ。 マクロ実行に入る前に、蛍光ペンで語句をマークしておいて、漢字ー振り仮名の対応表を作っておいて、もくてきを蛍光ペンでマークした語に限って、かつそれらを1度に達成するコードが作れるかもしれない。 == 結局、時々少数の語句にフリガナを振るぐらいなら、(マクロ学習などの総体的な時間や労力を考えて)人間がやるのが適当と思う。 こういうプログラムを好きな人・適した人は、ここに質問する前に、自分で情報を見つけたりして前に進むと思う。 ちなみに、ワードVBAの現在刊行本は2-3冊しかありません。
お礼
いやー仰るとおりです。が、いろいろ検索してみましたが、難しくてよくわかりません。質問に書いた通り、私がしたいのは、自動でルビを振らせることではなく、「範囲選択→ワンボタンで、ふりがなをすぐに入力できる状態になる」ということだけなのです。簡単そうなのに、まずBVAの知識がないと調べようがないようです。とりあえず本を読んでみます。ご回答ありがとうございました。