2009年9月29日火曜日

知らないと損をする、Word の便利機能

 Micosoft Word ( 以下 Word ) って、ある程度の人なら特別勉強などをしなくても、触りながら使えてしまう。
で、そのままなんとなーく少しづつ機能を覚えていく・・・っていうパターンが多いのではないだろうか・・・ ( 自分もそうだった )。

 だがしかし、この「備え付けの機能すら覚えきれいない状態」で作業をするのはとても危険だ。
必死に時間をかけて作業をしたのに、「えっ、この機能あったの!?!?今まで無駄な(ry」なんてことになりかねない。
実際、自分がそういう思いをしたのだ・・・。

 そんな状況を見かねて、職場のリーダーが Word の本を貸してくれたので、使えそうなポイントをまとめておく。

---------------------------------------------------------------------

■Word の便利機能、およびポイント

Ⅰ. レイアウト

    • 「印刷設定・余白」などのレイアウト設定は、最後にやると体裁が崩れるので、最初にやると効率UP
    • 目次につかう「見出し」も、最後にやると面倒なので編集中に随時やる。と効率UP
    • 「見出しマップ」を使うと、左側のフレームに見出しが一覧表示され、ドキュメントが見やすい

Ⅱ. 編集

    • 「ブックマーク」を文書の任意の位置に設定できる。体裁には影響しないので、活用すべし
    • 「定型句」には、文章だけでなく図も登録しておける。活用すべし
    • 脚注には、「脚注」機能がある。わざわざ自分で「*1」とか入力しているとみっともない
    • 「相互参照」機能で、図表の番号・タイトルを連動させることができる ( “図-1を参照” などの表記 )。更新漏れ防止に便利

Ⅲ. 段落

    • 「書式設定」は、段落ごとに存在する。デフォルトでは、ページ設定の書式を適用
    • 「インデント」は書式設定で。スペースで調節だなんてありえない
    • 「インデント」はざっくり4種類を活用する。「一行目」「2行目以降」「左端」「右端」
    • 「ルーラー」でインデントを調整するとかなり楽。それぞれ次の形である。「▽一行目」「△2行目以降」「□左端」「▽右端」
    • 「タブ」が強力。「左揃え」「右揃え」「中央揃え」「小数点揃え」など種類豊富
    • 「タブ」はルーラーの左上端にあるボタン ( “┘” とか ”└” ) で切り替えられる
    • 「タブ」は段落内に複数設定可能。活用すべし

Ⅳ. セクション

    • ページ設定は「セクション」ごとに存在している
    • 「セクション」を区切ると、セクションごとに「用紙の向き」、「ヘッダー、フッター」などを設定できる
    • 「挿入→改ページ→セクション」でセクションを区切れる

Ⅴ. 図表

    • 「描画キャンバス」は一見邪魔だが、複数のシェイプで図を書くときは便利。好意的に活用すべし
    • 「描画キャンバス」を使うと、「コネクタ」が使える。Visio っぽくて便利。活用すべし
    • 「図形描画」ツールバーの「図形の調整」で、複数シェイプの位置を揃えることができる
    • 「罫線→オートフォーマット」で、表の書式を登録しておける

Ⅵ. 管理

    • 「ツール→文書の保護」で、履歴モードを強制実行できる
    • 「ファイル→版の管理」で、任意の状態を保存しておくことができる ( VSS のラベル的な存在 )。
    • 「ツール→オプション→セキュリティ」で、パスワードを設定できる
    • マシン情報の漏洩に注意。「ファイル→プロパティ」・「ツール→テンプレートとアドイン」の情報は不要であれば削除する

---------------------------------------------------------------------

 

以上。

2009年9月9日水曜日

Microsoft Word で、2ファイルの差分を比較する方法

今まで知らなかった。
変更の履歴なしで差分を比較できることを。


■ワードファイルの差分比較方法

 1.「ツール(T)」→「文書の比較と反映」
 2. ファイル選択ダイアログで、「厳密な比較」のチェックを ON
 3. ファイルを選択し、【比較】ボタンを押下


以上。


 

嗚呼、願わくば戻って来いマージ作業で浪費した時間よ。

2009年7月29日水曜日

Visual Studio 2008 アドインを更新

せっかくアドインを作成したのに、現場で適用したらメニューが追加されないという悲劇に。。
改めて見てみたら、ちゃんちゃらおかしいコードを書いていたので、修正して対応。

ついでに動作確認の方法もおかしかったので、正しく理解した。これでOKだろう。

修正内容:
 ・コマンドの取得ロジックを修正
 ・アサーションコードを修正
 ・VSS の「保留中のチェックイン」ウィンドウにも表示されたらいいなレベルのコードを追加

■最新版のダウンロードはこちら

2009年7月12日日曜日

Visual Studio 2008 のアドインを作ってみた。ソリューションエクスプローラに、ファイルパスのコピー、保存先フォルダを開くのメニューを追加!

昨日、ちょろっと時間があったので、Visual Studio 2008 用のアドインを作ってみた。

最近は色々と手を出してしまっていて、作りかけのアプリがいくつかある。
それもやりたいのだけど、今の現場が「生産性の向上」というテーマに重きを置き、みんな高い意識レベルで仕事をしているので、負けていられない!というか。
自分も乗っていこう!という気持ちで 今回のアドイン製作にいたったのだ。

と言ってもまだ、ショボイ (><
これから積み重ねていきます。

 

ということで以下、田中アドインの説明。


■ファイル

■概要

Visual Studio 2008 用のアドインです。

ソリューションエクスプローラでファイルを選択したときのメニューに、下記2つの機能を追加します。
選択したファイルの保存先フォルダを開く
選択したファイルのフルパスをクリップボードにコピーする

■詳細( 同じ内容のものが、zip ファイルに ReadMe.rtf として入っている )

※ 以下の免責事項に同意できる方のみ、ご使用ください

[ 免責事項  ]

このアドインは、作者が個人的な用途のために製造したものです。

よって、このアドイン自体は誰が使用してもかまいませんが、それによって発生したいかなる損害において、作者は責任を負いません。

また、何の保証もしません。

-----------------------------------------

Ⅰ. 構成ファイル

· TanakaAddIn.dll

· TnakaAddIn.AddIn

Ⅱ. インストール方法

A. 標準インストール

1.「TanakaAddIn.dll」 を適当なフォルダに保存する ( どこでも良い )

2.「TanakaAddIn.AddIn」 をテキストエディタで開き、<Assembly> タグに「1.」で保存したフォルダを指定する

3.「TanakaAddIn.AddIn」 を下記のフォルダにコピーする ( なければ作成 )
コピー先フォルダ:「C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins」

B. カスタム

・ 「TanakaAddIn.AddIn」のコピー先の変更方法

AddIn ファイルのインストール先は、標準で6箇所ぐらい用意されています。
そのうちどこへインストールしてもかまいません。
以下は、そのインストールフォルダの確認方法です。

1.Visual Studio 2008 の メニューから、「ツール(T)」>「オプション(O)」>「環境」>「アドイン/マクロセキュリティ」を開く

2.「アドイン ファイル パス」を確認する

Ⅲ. アンインストール方法

インストールしたファイル「TanakaAddIn.dll」、「TanakaAddIn.AddIn」を削除してください。

-----------------------------------------


 

気が向いた方はどうぞ。

2009年6月24日水曜日

VC++ デバイスコンテキストを使っての描画方法。 ( GetDC、CreateSolidBrush、SelectObject、PatBlt、使い方 )

デバイスコンテキストについて

業務にて、デバイスコンテキストを使っての描画処理を担当。
描画関係の知識がなかったのでちょろっと勉強してみたので、メモを残しておく(たいしたことないけど 笑)。

Ⅰ. デバイスコンテキストとは

ウィンドウの描画に必要な材料のパッケージ。よく画用紙と画材のセットと表現される。
文字を書いたり、背景の色を変えたり、線を引いたり、画像を表示させたり・・・
といった全ての操作はこいつ(デバイスコンテキスト)のハンドルを取得するところから始まる。

業務系アプリでは、画面のほぼ全てが MFC 標準のコントロールで事足りてしまうのであまり関わる機会がない。
が、色の変更などの細かい制御をするときは世話になるので、覚えておくと非常に便利だ。

Ⅱ. 画用紙と画材のセット・・・というと?

デバイスコンテキストが画用紙と画材のセットと表現される理由は何か。
それは、デバイスコンテキストが持っているオブジェクトを知れば納得がいく。
以下がデバイスコンテキストが持つオブジェクト・・・つまり画材のリスト ( 厳密にはこれだけではない )

  • Bitmap ・・・ 画像(画像を表示するときに使う)
  • Brush  ・・・ ブラシ(背景を塗りつぶすときに使う)
  • Font   ・・・ フォント(文字を書くときに使う)
  • Pen     ・・・ ペン(線を引くときに使う)
  • Region   ・・・ 領域(描画領域を限定するときに使う)

デバイスコンテキストは、これらの画材を全種類持っている。
ただし、もてる画材は1種類につき1つで、Pen なら Pen 1個。
つまり、赤ペンに青ペンに緑も・・のように、同じ種類の画材は複数持てないので入れ替えて使う。

また、1つのウィンドウにつき、デバイスコンテキストは1つである。
ということから、ウィンドウ、およびそれに張り付いている全てのコントロールもウィンドウなので、それぞれが1つづつデバイスコンテキストを持っていることになる。

[デバイスコンテキストのイメージ ( クリックで最大化 )]
無題

Ⅲ. デバイスコンテキストの使い方

Ⅱ まででデバイスコンテキスト(以下 DC )の考え方が理解できたとうことで、実際にコードを書いてみる。
まずは、DC のハンドルを取得してから描画をおこなう一連の流れはこうだ。

  1. DC のハンドルを取得
  2. 画材を作成
  3. 画材を設定
  4. 描画
  5. 画材を元に戻す
  6. 画材を削除
  7. DC のハンドルを開放

すでにお気づきだと思うが、これにはいくつか注意点がある。

  • DC のハンドルを取得したら、最後に必ず開放すること
  • 使う画材を作成したら、最後に必ず削除すること
  • 画材を入れ替えたら、最後にかならず元に戻すこと

以上の点に注意して、画面(画用紙)を赤で塗りつぶす処理を書くとこうなる。

--------------------------------------------------------------------------------
// ※ hWnd は、描画対象となるウィンドウのハンドル

//
// 画面を赤で塗りつぶす
//

// DC のハンドルを取得
HDC hDC = ::GetDC( hWnd );

// 赤のブラシを作成(画材を作成)
HGDIOBJ hBrushRed = ::CreateSolidBrush( RGB( 255, 0, 0 ) );

// 赤のブラシを設定(画材を設定)
HGDIOBJ hBrushOld = ::SelectObject( hDC, hBrushRed );

// 画面をぬりつぶす(描画)
RECT rtWindow;
::GetWindowRect( hWnd, &rtWindow );
::PatBlt( hDC, 0, 0, rtWindow.right, rtWindow.bottom, PATCOPY );

// 画材を元に戻す
::SelectObject( hDC, hBrushOld );

// 画材を削除
::DeleteObject( hBrushOld );

// DC のハンドルを開放
::ReleaseDC( hWnd, hDC );

--------------------------------------------------------------------------------

これで、画面を赤で塗りつぶすことができた。

やりたい描画、つまり使う画材によって呼び出す API が変わるが、
基本的な処理の流れは、どの画材を使うときも同じである。
( 逆に、それぐらいしか変わりがないとも言える )

Ⅳ. 最後に

今回は、GetDC を使って実装してみた。
GetDC は、ウィンドウハンドルのパラメータに NULL を設定すると、スクリーン全体の DC をも取得できる強力な API である。
画面のちょっとした描画にはもっと適した BeginPaint という API があるし、MFC のクラスを使うともっと簡単に実装できるので、
次回はそれらを使ったコードの書いてみることにする。

 

以上。

2009年6月3日水曜日

Visual Studio 2008 Team System 新機能の概要メモ

Visual Studio 2008 Team System 機能メモ
 
--------------------------
Ⅰ. コード分析
 A. 概要
  1. およそ200種類、大枠で11項目のルールからコードを検証する
  2. アンマネージコードのコード分析は貧弱
 B. 使い方
  1. プロジェクトのプロパティから、コード分析を有効にして、分析を実行する

Ⅱ. プロファイリング
 A. 概要
  1. CPU 負荷や、実行速度などのボトルネックの発見を助ける
  2. サンプリングは、定期スナップショットや、モジュール単位の検証など大まかな調査をする
  3. インストルメントは、関数ごとの処理などより詳細な情報を集める
  4. サンプリングは、長期シナリオにも向いている
 B. 使い方
  1. プロファイリングウィザードからプロジェクトを指定し、実行するだけ
------------------------------
 
 
調査が足りなすぎだけど、とりあえずメモ。
アンマネージ C++ で使えそうなのは、プロファイリングくらいかなぁ・・
カバレッジ機能とかは後日チェックしてみよう。
 
 
 
 
 

2009年5月20日水曜日

Visual Studio で、ソース管理プラグインの初期化エラーの対処法

本日の業務中、表題の件で1時間ほど時間を無駄にしてしまったので記録しておく。
・・・といっても、最終的に解決したのは自分じゃなくて先輩なのだけど・・(感謝
 

[問題]
Visual Studio 2008 で開発をはじめたところ、Visual SourceSafe(以下VSS)のバインドに失敗していることに気がついた。マシンには以前、Visual Studio6、.NET2003、2005、2008が入っており、2003と2005はアンインストールされた状態であった。Visual Studio 2008 上では、ソース管理プラグインの初期化エラーが発生しソース管理へのバイントに失敗する。そして、環境設定からもプラグインに SourceSafe を指定することができずに「なし」と表示されてしまう・・という状況。
ちなみに当然、VSS 6.0 はインストールされていた。。。
 
[解決]
コマンドプロンプトから、「RegSvr32 ssscc.dll」を実行する。
 
[原因]
どうやら、ssscc.dll が VSS のプラグインそのもので、通常はサービスに登録されているが、何かの拍子に(2003や2005のアンインストール時?)削除されてしまっていたようだ。
 
[補足]
あと、VS2008 からの VSS6 使用は公式サポートされていない。
また、VSS6 だと Unicode のソース管理に問題が発生する可能性がある様で、2005を使うのがベストらしい。

 
以上。