2016年6月16日木曜日

VAIOをWindows10へアップグレード

アップグレード対象機種は 10 年前に購入した XP 時代のノート PC。今となっては非力ですが軽い処理担当として今でも現役で活躍。 OS は Windows 7 にアップグレード済み。

仕様:

  • VGN-FS92PS VAIOオーナーメードモデル
  • インテル Pentium M プロセッサー 770 (2.13 GHz)
  • メモリ 2GB
  • NVIDIA GeForce Go 6400 with TurboCache
  • 15.4型ワイドWSXGA+(1680×1050)

今回 Windows 10 へアップグレードするには解決すべき課題がありました。それは NVIDIA GeForce Go 6400 のドライバです。Windows 10 の互換性チェックに引っかかっているためアップグレードできない状態でした。

当然ながら既に SONY のサポートも終了しており Windows 10 用ドライバの提供はなく、本家 NVIDIA のダウンロードリストからも除外されているビデオチップです。 Windows 10 へアップグレードするには、この問題を解決する必要があります。

調べたところ、ドライバの inf ファイルを書き換えてインストールする方法を知りました。

実際の inf ファイルの修正やドライバのインストールについてはこの動画が参考になります。

日本語の情報もありました。

参考: NVIDIA 搭載ノートPCの一覧

これらの情報を元にして Windows 10 へのアップグレードを完了することができました。感謝!
簡単ですが、ここに手順を残しておきます。



Windows 10 へのアップグレードの手順

  1. Windows 10 を入手
  2. アップグレード DVD を使って Windows 10 へアップグレード
  3. NVIDIA ドライバのファイルを修正
  4. NVIDIA ドライバをインストール


1. Windows 10 を入手

アップグレード DVD でアップグレードするための ISO ファイルを取得。

  • Windows 10を取得。
  • 「ツールを今すぐダウンロード」をクリック、「メディア作成ツール」をダウンロードして実行。
  • ダウンロードした ISO ファイルを DVD に書き込む。


2. アップグレード DVD を使って Windows 10 へアップグレード

アップグレード DVD でアップグレードを開始する。この時点では GeForce Go 6400 のドライバが無いため MS 標準のグラフィックスドライバがインストールされます。



NVIDIA ドライバ

NVIDIA ドライバのダウンロードサイト


NVIDIA ドライバをダウンロード

ダウンロード一覧の中に 「GeForce Go 6 シリーズ」が含まれていないため 「GeForce 6 シリーズ」を利用します。

GeForce 309.08 Driver

  • Version: 309.08 WHQL
  • Release Date: 2015.2.24
  • Operating System: Windows 7 32-bit, Windows 8 32-bit, Windows Vista 32-bit
  • CUDA Toolkit: 5.0
  • Language: English (US)
  • File Size: 170.55 MB

ダウンロードファイルを実行してインストール。この時点ではサポート製品のハードウェアでは無いためシステムの互換性チェックの途中で中断されます。

このとき、インストーラによって展開されたファイルがフォルダに保存されています。次の手順では、このフォルダに保存されたドライバの inf ファイルの修正を行います。


ハードウェア ID を取得

事前準備として GeForce Go 6400 の「ハードウェアID」を取得します。デバイスマネージャのディスプレイアダプタ開き、「Microsoft基本ディスプレイアダプタ」のプロパティの詳細タブを開く。プロパティのドロップダウンリストから「ハードウェアID」を選択し、その値を任意のテキストファイルに保存しておきます。

作業対象の VGN-FS92PS は、このような値でした。

PCI\VEN_10DE&DEV_0168&SUBSYS_81EA104D


3. NVIDIA ドライバのファイルを修正

今回ダウンロードしたインストーラはwin8 win7 winvista 32bit用のため、NTx86.6.0, NTx86.6.1, NTx86.6.2の記述が存在します。今回アップグレードする Windows 10 では Windows 8 用のドライバを使用するためNTx86.6.2のセクションを利用します。


参考: infファイル内のセクション名の記述に含まれるNTx86.x.xの意味

NT Ver. プロダクト名
NTx86.6.0 Windows Vista
NTx86.6.1 Windows 7
NTx86.6.2 Windows 8
NTx86.6.3 Windows 8.1
NTx86.10.0 Windows 10


nv_dispi.infを編集

ここでは GeForce Go 6400 の「ハードウェアID」の値を元に追加する文字列を作成し、その文字列を inf ファイルに追加する作業を行います。

[NVIDIA_SetA_Devices.NTx86.6.2]セクションへ
%NVIDIA_DEV.0168.81EA.104D% = Section002, PCI\VEN_10DE&DEV_0168&SUBSYS_81EA104D
を追加。

[NVIDIA_SetA_Devices.NTx86.6.2]
%NVIDIA_DEV.0168.81EA.104D% = Section002, PCI\VEN_10DE&DEV_0168&SUBSYS_81EA104D

[Strings]セクションへ
NVIDIA_DEV.0168.81EA.104D = "NVIDIA GeForce Go 6400"
を追加。

[Strings]
DiskID1 = "NVIDIA Windows Vista / 7 / 8 (32 bit) Driver Library Installation Disk 1"
NVIDIA = "NVIDIA"
NVIDIA_A = "NVIDIA"
NVIDIA_B = "NVIDIA "
NVIDIA_DEV.0168.81EA.104D = "NVIDIA GeForce Go 6400"

追加作業の完了後 nv_dispi.inf ファイルを保存。



4. NVIDIA ドライバをインストール

インストールオプションで「カスタム」を選択。

カスタムインストールオプションで「グラフィックスドライバー」のみを選択。

Windows セキュリティでは「このドライバーソフトウェアをインストールします」を選択。

インストール終了後に再起動。

デバイスマネージャを開きディスプレイアダプタが認識されていることを確認。

NVIDIA コントロールパネルを開き、適切なディスプレイの解像度に設定。

ディスプレイの解像度の設定は、ディスプレイの詳細設定でも可能。



その他のドライバは VAIO のウェブサイトから入手可能

Windows 7 用ドライバが利用できました。


サウンドドライバ


Fnキー音量コントロール、輝度コントロール

インストール後、設定ファイルVESConfig.iniを 差し替える必要あり。

この設定ファイルは「VAIO Event Service Ver.2.3.00.08110」アップデートプログラムSOAVES-01205105-UN.exeファイルを展開して取り出します。使用したファイル展開ツールはExplzh

手順

  1. ダウンロードしたSOAVES-01205105-UN.exeファイルを展開。
  2. さらに、展開したファイルの中のdata1.cabを展開して VESConfig.ini を取り出す。
  3. 取り出した VESConfig.ini をc:\Program Files\Sony\VAIO Event Service\にコピー。
  4. 再起動後、Fn + F3 or F4で音量コントロール、Fn + F5 or F6で輝度コントロールできることを確認。

BIOS

以上で完了です。

2016年6月15日水曜日

Excelの未使用ユーザースタイルを簡単に削除する

Excel のユーザースタイルは 「XLStylesTool」 を使用することで削除可能ですが、ユーザースタイルを削除するたびに毎回外部ツールを使用しなければならないのはちょっと不便でした。

この投稿では外部ツールやマクロを使用しないで、未使用のユーザースタイルを削除する方法を紹介します。 (動作環境は Windows 10 Pro 64bit, Excel 2013 32 bit です。)



手順は 3 ステップ

  1. すべてのシートを選択。

  2. 移動またはコピーを選択。

  3. 移動先ブック名に「新しいブック」を選択し、「コピーを作成する」をチェック。

このようにすると「新しいブック」には使用中の「ユーザースタイル」のみが引き継がれることになり、結果として未使用のユーザースタイルを削除することができます。



実際に未使用のユーザースタイルを削除する例を紹介します。

対象ファイルのワークブック中に存在するユーザースタイルを、マクロを使って数えたところ 41778 個のユーザースタイルが登録されていることがわかります。

セルのスタイルメニューを開くと、このように多くのユーザースタイルが表示されています。

このワークブックの中で使用しているユーザースタイルを、先日作成した 「Excel のユーザースタイルの使用状況を調べるマクロ」 で調査したところ 41778 個のユーザースタイルの内、実際に使用しているスタイルは標準22のひとつだけで、残り 41777 個のユーザースタイルは全て未使用であることを確認しました。

ここで前述の手順どおり 「新しいブック」 にすべてのシートをコピーして、未使用のユーザースタイルを削除します。ユーザースタイルの削除後 「新しいブック」 のセルのスタイルメニューを開くと、ユーザースタイルの項目は標準22だけが残り、未使用のユーザースタイルが全て削除されたことがわかります。

改めてマクロで確認しても、使用中のユーザースタイルが一つだけであることがわかります。



マクロの処理速度の違い

大量のユーザースタイルはマクロの処理速度に大きく影響を与える場合があります。たとえばユーザースタイル (4,000 個以上) が登録されているブックの中で罫線のLineStyleを標準の太さ以外に変更しようとしたとき、マクロの処理速度が大きく低下する経験をしました。 このような場合、未使用のユーザースタイルを削除することによってマクロの処理速度が向上することがあります。

次の動画は、上記のユーザースタイルの削除前と削除後におけるマクロの処理速度を比較しています。

テスト環境:
CPU: Intel Core i5-2540M 2.60 GHz, RAM: 16 GB,
Windows 10 Pro 64 bit, Excel 2013, Excel 2003 SP3


ユーザースタイルの削除前

(描画処理完了まで約 35 秒要しています)




ユーザースタイルの削除後

(描画処理は約 12 秒で完了) 削除前と比較して 3 倍速くなりました。




Excel 2003 の場合

参考までに、同じアドインを使用した Excel 2003 の処理速度はさらに高速でした。 (描画処理は約 6 秒で完了)削除前と比較して 6 倍速いです。これを今まで使用していました。

注: Excel 2003 のスタイル数は最大 4,000 までのため、事前に XLStylesTool を使用してユーザースタイルを削除しています。



おわりに

Excel 2007 以前のセルスタイルは 4,000 まで使用できましたが、Excel 2007 で 拡張されて最大 64,000 まで使用できるようになりました。 それに伴い 「Excel 2007 で、使用されていないスタイルが、あるブックから別のブックへコピーされます。 - KB2553085」 のような、意図しないスタイルの増加のトラブルなどでユーザースタイルが 4,000 を超えてしまうと 「Word/Excel/PowerPoint 用 Microsoft Office 互換機能パック」 を使用して Excel 2000 や 2003 で xlsx 形式のファイルを開くことができないトラブルが起こりましたが、このような場合は「XLStylesTool」を使用することでユーザースタイルを削除することが可能でした。

そのため、これまでの作業の流れは次のようになっていました。

  1. 作業対象ファイル.xlsx を取得
  2. XLStylesTool でスタイル削除
  3. Office 互換機能パックで変換後 Excel 2003 で開きマクロを実行

既に 2 年前の事ですが、Excel 2003 の延長サポートの終了が残り 1 年となったこともあり Excel 2013 へ移行しようとしました。ところが Excel 2013 ではマクロの処理速度が余りにも遅く、移行をためらうことになりました。結局 Excel 2003 を使い続けることに。

今年になって Windows 10 へ移行したこともあって改めて Excel 2013 に切り替えるべく試行錯誤しているなかで今回の解決方法が見つかりました。 これで安心して Excel 2013 に移行することができます。



関連する過去の投稿

Excelワークブックに登録されたスタイルを数えるマクロ。

2016年6月14日火曜日

メモ:特定の範囲をMathJaxにレンダリングさせない方法

ブログで MathJax を使用できるように設定していると数式表示がとても便利になるのですが、ちょっと具合の悪い場合もあります。それは、数式に解釈できる文字列を含んだ Gist のコードを貼り付けた場合です。

例えばこのように、数式の部分が自動的に変換されて表示されます。

これを回避するには、MathJax の ignoreClass を使用します。

以下のように MathJax.Hub.Config の設定にignoreClass: "tex2jax_ignore"を追加すると。MathJax にレンダリングさせないクラスを設定することができます。

MathJax.Hub.Config({
    
    ...
    
    tex2jax: {

        ...

        ignoreClass: "tex2jax_ignore"
    }
});

コードのスクリプトを張り付ける際は、下記のようにclass="tex2jax_ignore"のブロックで囲みます。

<div class="tex2jax_ignore">
<script src="https://gist.github.com/icm7216/8409c6e4e7332a03ef5747f7f030fd58.js"></script>
</div>

これで MathJax にレンダリングされず、そのまま表示できるようになります。

2016年6月10日金曜日

Excelのユーザースタイルの使用状況を調べるマクロ

Excel のユーザースタイルの使用状況を調べるマクロを作りました。ユーザースタイルを適用している、ワークシートやセルアドレスを知ることができます。以前に作った「スタイル設定をシートに出力する VBAマクロ」の兄弟ツールになります。

結果は新しいシートに表示されます。この一覧ではユーザースタイルが適用されているシート名、セルアドレス、セルの内容、ユーザースタイル名、ユーザースタイルの設定内容などを表示します。