Hatena::ブログ(Diary)

もうカツ丼でいいよな このページをアンテナに追加 RSSフィード

2009 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 04 | 05 | 06 | 07 | 08 | 09 | 12 |
2012 | 02 | 03 | 04 | 05 | 06 | 10 | 11 | 12 |
2013 | 01 | 02 | 04 | 06 |
2014 | 06 |

2013-04-14

[][] WordVBAでのマクロショートカット割り当て(Emacsキーバインド暫定版) 23:49  WordVBAでのマクロのショートカット割り当て(Emacs風キーバインド暫定版) - もうカツ丼でいいよな を含むブックマーク  WordVBAでのマクロのショートカット割り当て(Emacs風キーバインド暫定版) - もうカツ丼でいいよな のブックマークコメント

Wordの場合はApplication.KeyBindings.Addメソッドを使ってショートカットキーの割り当てができる。

Application.Keybindings.Add _
    KeyCategory:=wdKeyCategoryCommand, _
    Command:="Command", _
    KeyCode:="KeyCode"

あまり良く読んでないのでKeyCategory引数の意味とかしっかり理解していないが、"Command"には割り当てたいマクロの名前を文字列として、"KeyCode"には割り当てたいキーのーキーコードを数値として与える。キーコードはwdKeyAやwdKeyControlなどの名前の定数が用意されているので、それを足しあわせて作る。

割り当てたショートカットを解除するには次のようにする。

With Application.FindKey("KeyCode")
    .Disable
    .Clear
End With

解除したいショートカットキーのキーコードを"KeyCode"に指定する。

これを利用すると、Wordで比較的簡単にEmacsキーバインドを再現できる。

ちょっとだけやってみた。

'' ----- Emacsモードの有効化と無効化 ---------------------
Sub EnableEmacsMode()
    Call AddKeyBindings("ForwardChar", wdKeyControl + wdKeyF)
    Call AddKeyBindings("BackwardChar", wdKeyControl + wdKeyB)
    Call AddKeyBindings("NextLine", wdKeyControl + wdKeyN)
    Call AddKeyBindings("PreviousLine", wdKeyControl + wdKeyP)
    Call AddKeyBindings("BeginningOfLine", wdKeyControl + wdKeyA)
    Call AddKeyBindings("EndOfLine", wdKeyControl + wdKeyE)
End Sub

Sub DisableEmacsMode()
    Call DeleteKeyBindings(wdKeyControl + wdKeyF)
    Call DeleteKeyBindings(wdKeyControl + wdKeyB)
    Call DeleteKeyBindings(wdKeyControl + wdKeyN)
    Call DeleteKeyBindings(wdKeyControl + wdKeyP)
    Call DeleteKeyBindings(wdKeyControl + wdKeyA)
    Call DeleteKeyBindings(wdKeyControl + wdKeyE)
End Sub

Sub AddKeyBindings(Command As String, KeyCode As Long)
    '' キーバインド登録
    Application.KeyBindings.Add _
        KeyCategory:=wdKeyCategoryCommand, _
        Command:=Command, KeyCode:=KeyCode
End Sub

Sub DeleteKeyBindings(KeyCode As Long)
    '' キーバインド登録解除
    With Application.FindKey(KeyCode)
        .Disable: .Clear
    End With
End Sub


'' ------ キーバインドマクロ定義 ------------------------
Sub ForwardChar() '' カーソル前移動
    Selection.MoveRight unit:=wdCharacter, Count:=1
End Sub
Sub BackwardChar() '' カーソル後ろ移動
    Selection.MoveLeft unit:=wdCharacter, Count:=1
End Sub
Sub NextLine() '' カーソル下移動
    Selection.MoveDown unit:=wdLine, Count:=1
End Sub
Sub PreviousLine() '' カーソル上移動
    Selection.MoveUp unit:=wdLine, Count:=1
End Sub
Sub BeginningOfLine() '' 行頭へ
    Selection.HomeKey unit:=wdLine
End Sub
Sub EndOfLine() '' 行末へ
    Selection.EndKey unit:=wdLine
End Sub

https://gist.github.com/nozma/5383099

現在のファイルなりNormal.dotmなりにインポートしてEnableEmacsModeを実行すればEmacs風のキーバインドに(カーソル移動だけだが)なり、DisableEmacsModeを実行すれば通常の状態に戻る。

2ストロークについては ExcelでEmacsライクなキーバインドを使う - もうカツ丼でいいよなでやったようにC-xでショートカットが切り替わるようにすれば良いと思う。

とりあえず今日は眠いので残りはいずれ。もしくは誰かやっといて。

2012-05-27

[] はてな記法をMS Wordのスタイルに変換する 20:30  はてな記法をMS Wordのスタイルに変換する - もうカツ丼でいいよな を含むブックマーク  はてな記法をMS Wordのスタイルに変換する - もうカツ丼でいいよな のブックマークコメント

スタイルちゃんと定義しようと思ったけど箇条書きの定義の仕方がよく分からなくてはまってしまったので諦めた。その関係で中途半端なプロシージャがある。段落番号に至ってはあまり使う気がないのでデフォルトから調整してません。

説明

下記の様なはてな記法っぽい記述を…

f:id:Rion778:20120527203848j:image

下記の様にスタイル設定する。

f:id:Rion778:20120527203847j:image

使い方

  1. Normal.dot(常に使いたい)や対象文書(その文書だけでいい)、あるいはテンプレート(アドインしたい)の標準モジュールに下記コードを追加。
  2. HatenaStylesAdd実行(1回で可)
  3. Hatena2Wordを実行

スタイルが追加されたりListGalleries(そもそもこれが何処に入っているのかよくわからないが)をいじったりしているので、その辺りをリセットしたい場合はClearMyStyleを実行。

コード

2009-12-13

[][] Word 2007で最低限やっておく設定 00:58  Word 2007で最低限やっておく設定 - もうカツ丼でいいよな を含むブックマーク  Word 2007で最低限やっておく設定 - もうカツ丼でいいよな のブックマークコメント

論文とか書く場合は常識的に考えてLaTeX使うと思いますが,上からの圧力とか投稿規定とか避けがたい理由によりWordを使わざるを得ない場合もあるでしょう.たぶん.しかし恐れることはありません.スタイルの使い方といくつかの設定さえ押さえておけばWordでもまあボチボチ快適に文書が書けます.

というわけでWord使わないといけない場合はエンジニアのためのWord再入門講座 美しくメンテナンス性の高い開発ドキュメントの作り方(Amazonリンク)に載っている設定をしてるんだけど,この本からWord 2007用の設定探すのはちょっとばかし骨が折れるので多少の変更を加えつつ整理したものをメモ.

オプションの詳しい説明はしないので本を見るかヘルプを参照するなどして下さい.

クイックアクセスツールバー

クイックアクセスツールバーとはWord 2007用で用意されたもので,旧ツールバーに相当.位置はウィンドウのタイトルバー.

左上のOfficeボタン -> Wordのオプション -> ユーザー設定 でカスタマイズできる.また,クイックアクセスバーからもこの項目を呼び出せる(右クリックして「クイックアクセスツールバーのカスタマイズ」).

左側「コマンドの選択」というドロップダウンメニューを「すべてのコマンド」にすると膨大な量のコマンドが表れる.必要なものを選択し,中央「追加>>」ボタンによりクイックアクセスツールバーへ追加する.「すべてのコマンド」からは探しにくいので適切な項目を選択した方がいい.残念ながら検索はできないので.

私が追加しているものは以下の通り.「分類」は「コマンドの選択」から選ぶとそのコマンドが比較的容易に見つかる項目名.

コマンド名説明分類
ページ設定ページレイアウトタブのページ設定基本的なコマンド
見出しマップ(チェックボックス)見出しマップ(スタイル使用時に有用)表示のON/OFF[表示]タブ
フィールドコードの表示フィールドコード表示状態のトグルリボンにないコマンド
コメントの挿入文書にコメントを挿入する[校閲]タブ
コメント(チェックボックス)コメント表示のON/OFF[校閲]タブ
スタイル(ドロップダウンリスト)利用するスタイルの選択基本的なコマンド
スタイル...スタイルウィンドウ表示のON/OFF基本的なコマンド
スタイルの管理スタイルの管理ウィンドウを開くリボンにないコマンド
ExcelExcelの実行リボンにないコマンド
PowerPointPowerPointの実行リボンにないコマンド

最終的にこんな感じ.

f:id:Rion778:20091213235709p:image

ポイント

  • コメントを印刷の有無は「印刷」->「印刷対象」から選択できる.ただしここはコメントの表示状態に連動するので特に気にしなくとも見た目通りのものが印刷される.
  • スタイルを作成/削除/カスタマイズしたいときは「スタイルの管理」を実行する.スタイルを一覧表示させられるため,管理が容易.

スタイル周りが中心.本だとヘッダ/フッタや描画関係のコマンドも入れてるけどリボンから実行してもそんなに負担変わらないかなと思うので入れてない.PowerPointとExcelはちょっとした図表を描く時に便利...かもしれない(使ったことない).

オートコレクト

左上Officeボタン -> Wordのオプション -> 文書校正 -> オートコレクトのオプション から.

細かいことを忘れたら全部オフでもいいと思う.初期状態はいろいろマズい.

f:id:Rion778:20091213235949p:image

f:id:Rion778:20091213235708p:image

表示オプション

Officeボタン -> Wordのオプション -> 表示

f:id:Rion778:20091213235710p:image

編集記号をすべて表示させる.

保存時の設定

Officeボタン -> Wordのオプション -> 保存

標準のファイル保存形式を「Word 97-2003 文書(*.doc)」にしておくと余計なトラブルを防げる.

もし2007で追加された機能を使いたければ変更しないこと.

その他の詳細設定

Officeボタン -> Wordのオプション -> 詳細設定

f:id:Rion778:20091213235712p:image

  • 「上書き入力モードの切り替えにInsキーを使用する」をオフ(誤操作防止)
  • 「書式の履歴を維持する」&「書式の不統一を記録する」をオン
  • 「クリックアンドタイプ編集を行う」をオフ(スタイルを使用する場合適切ではない)

大体こんなところ.細かい所は好みで.あと数式使う人は数式番号付きの数式入力エリアを作成しておくと良いかもしれない( Word2007の数式ビルダを使って数式を作成しよう - もうカツ丼でいいよな).

ちなみに多くの設定はスタイルの使用が前提なので,スタイルを使わないとあまり有り難みが分からないかもしれない.というかWordを使用する場合スタイルを使わないと話にならないので,そんなの知らないという人はさっさと覚えましょう.スタイルに関する詳しい解説は冒頭に示した書籍の他以下のリンクが参考になるかと.

ただWord 2007からはかなり使いやすくなったので,クイックアクセスツールバーに追加したコマンドやホームタブのスタイルを適当に動かしてみれば大体の操作法は覚えられるような気もする.

なんだかんだ言っても知識ゼロの状態から適当にやって新しいこと覚えるのにはリボンインターフェース良いと思う.アイコンでかいし.最終的にショートカットで全部やるようになればタブの切り替えが面倒だとかそういうことも無くなるわけだし.

2009-10-08

[][] Word2007の数式ビルダを使って数式を作成しよう 21:53  Word2007の数式ビルダを使って数式を作成しよう - もうカツ丼でいいよな を含むブックマーク  Word2007の数式ビルダを使って数式を作成しよう - もうカツ丼でいいよな のブックマークコメント

Officeを買ったのでWordで数式を入力する方法を少しまじめに調べた.

試用版をなんとなく使っていた時は知らなかったけど,Word2007からは今までのあの使いにくくてカッコ悪い数式エディタ*1ではなくて,数式ビルダというものが数式入力のための規定のツールになっている.

数式ビルダはこんなに便利!

数式ビルダはおそらくかなりTeXを意識して作られている.というのも,ほぼTeXのコマンドをそのまま入力するだけで数式の入力が完了するからだ.

たとえば,数式の入力エリアに次のようにコマンドを入力する.ちなみに[C-i]はCtrl+iです*2

[C-i]\sum_(i=1)^\infty x^i = 1/(1-x)

そうすると,こんな具合に出力してくれる.

f:id:Rion778:20091008220645j:image

このとき入力する\sumだとかいうコマンドは,適当なタイミングでスペースキーを叩くだけで組み立てられる.つまり,TeXっぽい簡単な数式入力ができる上に,数式の形を確認しながらの入力もできる.これは数式入力だけならばTeXよりも使いやすいと思う.

数式のエリアは[Alt]→N→E→Iと順番にタイプするだけで挿入できる.もしその行に数式がそれしかなければ上記の例のような別行立ての形になり,前後に文字が存在していれば文中のスタイルにしてくれる.また,そのほかに行形式と呼ばれる数式を行の形(Σ_(i=1)^∞=1/(1-x)のように)にするスタイルもある.

さらに,よく使う数式は登録しておくこともできるのだ!

さあこれでもうTeXからWordに乗り換えてもあんしん………とはいかない.さすが期待を裏切らない.

数式ビルダはこんなに不便!!

数式ビルダで作成される数式の外観はこれまでの数式エディタに比べるとずいぶんまともだ.積分とかも綺麗に見える.これはCambria Mathという数式組版のために開発されたフォントのおかげで達成されている.だが残念なことに数式ビルダの規定のフォントはCambria Mathしか選べない*3

また,新しく追加された機能だから仕方ないといえば仕方ないのだが古いバージョンのWordとの互換性がない.また,PowerPointなどにコピペしても小さなサイズの画像になってしまってイマイチ使えない.このあたりをどうしてもどうにかしたかったら昔の数式エディタを使うしかない*4

さらに信じられないことなのだが,せっかく数式を入力しても数式番号をつける手段がデフォルトでは用意されていない.かなり探したけどどうやら本当に用意されていないらしい.[参考資料]タブの[図表番号の挿入]や[相互参照]にはラベルや項目に[数式]が用意されているのに連携していないのだ.

ないものは作りましょう

幸いなことに数式入力エリアを自作して登録しておくことができる.

適当にそれっぽいものを作成して範囲選択して[挿入]タブの[数式]から[選択範囲を数式ギャラリーに追加]するだけ.

どうもWord2007ユーザーの間ではテーブルを駆使して数式エリアを作成するというのが一応の解答になっているようだ*5

必要に応じて適当に作って登録すればいいのだが,一応次のようにやるとそれっぽくて番号の参照にも便利なやつが作成できる.

  1. 1行3列の表を作成
  2. 表を選択し,[レイアウト]タブの[プロパティ]を開く
  3. [幅を指定する]にチェックし,基準をパーセント,値に100%を指定する
  4. [列]タブで列の幅をパーセントで指定,10%,80%,10%など左右を狭く同じ値にする
  5. [レイアウト]タブに戻り[配置]で中央のセルを中央揃え,右のセルを右揃え(中央)に
  6. 表全体を選択し,[デザイン]タブの罫線から罫線なしを選択し罫線を消す
  7. 中央のセルにカーソルを移動させ,[Alt], N, E, Iとタイプして数式エリアを作成(入力はしない)
  8. 適当な場所で[参考資料]タブから[図表番号の挿入]を選択
  9. ラベルに[数式]を選択し,[ラベルを図表番号から除外する]にチェックを入れてOKをクリックすると番号が出てくる
  10. 作成した番号を右側のセルにコピーペーストなどで移動させ,必要に応じて前後に括弧などを記入,フォントもボールドになっているので気に入らなければ[ホーム]タブから解除しておく
  11. 作成した表全体を選択,[挿入]タブの[数式]から[選択範囲を数式ギャラリーに追加]し,適当な名前で保存する

こうしておけば,[Alt], N, E, [Enter]とタイプ(ほかに数式を追加してなければ)するだけで数式番号付きの数式エリアが作成される.

f:id:Rion778:20091008214633j:image

数式番号は[参考資料]タブから[相互参照]を選択し,[参照する項目]に数式を選べば利用できる.TeXの\refみたいなもの.

参考

*1:ちなみに使おうと思えば使える

*2:残念なことに数式がデフォルトでイタリックにならないというバグがあるらしく,最初にイタリックにするためのショートカットであるCtrl+Iを入力しないときれいにならない

*3:選べるということは追加の予定があるのだろうか?一応数式作成後に数式を選択してフォントを変更することはできるが,必ずしも反映されないしまず汚くなる.

*4:インストールしてあれば[挿入]タブの[オブジェクト]から数式 3.0を選択して挿入できる

*5:そういえばOOoのWriterも数式と数式番号の配置は表で実現してた