タグ「Excel」が付けられているもの

前の記事の続きでWinMergeの便利な使い方を紹介します。

WinMerge 日本語版に含まれているCompareMSExcelFiles、CompareMSWordFilesプラグインはExcelとWordの差分比較を可能にする高性能プラグインです。
一方、xdocdiff WinMerge PluginはWordやExcelだけではなく、PDF、PowerPoint、一太郎などの文書ファイルも差分比較可能にする多機能プラグインです。

ExcelとWordはCompareMS*Files、それ以外のファイルはxdocdiff WinMerge Pluginを使用したいと思ったのですが、いざ両方のプラグインをインストールした環境で使用したところ、xdocdiff WinMerge Pluginの方が優先されてしまいました。
WinMergeの[メニューバー]→[プラグイン(P)]→[プラグインの設定(L)...]を見ましたが、プラグインを読み込む順番を設定する機能はなさそうです…

ここでふと思ったのがxdocdiff WinMerge Pluginに関するプラグインが「amb_xdocdiffplugin.dll」という名前であること。
aから始まるプラグインから読み込まれるのであれば、プラグインのDLL名の先頭にアルファベット後半の文字列に変更してあげれば上手く動くのではないかと。

試しに「amb_xdocdiffplugin.dll」から「Xamb_xdocdiffplugin.dll」にリネームし、WinMergeを使用したところ、想定通りの動作になってくれました(≧∇≦)

なお、現在、こちらの環境では64bit版のWinMergeを使用している為、動作確認したxdocdiffプラグインは64bit版となっております。
両方とも「MergePlugins」ディレクトリに格納するDLLファイル名が「amb_xdocdiffPlugin.dll」だったので32bit版でも動作するかと思います。
※"P"の大文字小文字の違いで動作が変わるということはないと思いますし。
xdocdiff WinMerge Plugin32bit版のプラグインは「xdocdiff WinMerge Plugin」から、64bit版のプラグインは「xdocdiffPlugin64」からダウンロードをどうぞ。

以上、WinMerge 日本語版のTipsでした( ̄∇ ̄)ノ♪

ブログの記事を読み直して、紹介していないことに今になって気付いたので紹介します。

編集した新旧文書ファイルがあるが、ファイル間でどこを修正したのか確認したいということはないでしょうか。
自分は良くあります(笑)

そんなときに使用しているのがDiffツールと呼ばれている以下のツールです。

WinMerge 日本語版

このツールを利用することでテキストファイル、Wordファイル、Excelファイルの差分比較が可能です。
Excelファイルについては、新旧ファイルを画像化した後にどこに差分が発生しているのかを視覚的に確認する方法もあります。
※詳しくはWinMerge 日本語版 - デモ - Excelプラグインをご覧ください。

いや~、便利ですね。
なお、WinMergeプラグインはTortoiseSVNなどのSubversionツールとも連携できるので、リビジョン間での差分比較を確認することもできます。

皆様も是非ご活用ください( ̄∇ ̄)ノ♪

いつ頃からか分かりませんが、ネットワーク上の共有ディスク(NAS)に格納されているExcelを開こうとすると、開くまで1分から数分掛かるようにありました。
ファイルサイズが小さくても大きくても問答無用で発生します。

これはマイクロソフトのバグじゃないかと思ったら、やっぱりそうでしたorz

PC Game Warrior - ネットワークドライブのEXCELファイルを開くのが遅い

これは酷い...
詳細と対策はリンク先を見て頂ければ分かると思いますが、結局の所レジストリをいぢるしかないようで...

ネットワークドライブとか共有ディスクとかNASからExcelを開く事なんてざらにあるんだから、もうちょっとマイクロソフトには頑張って貰いたいところですな。
うん。

Excelでセル内の行数を調べる方法

Excelでセル内の行数を知りたい場合、ちと細かい作業が必要だったので備忘録的に書いておきます。

例えばExcelシートに以下のように値が入力されているとします。

  A B
1 あああ
いいい
テストです
 

A1セルには「あああ(改行)いいい(改行)テストです」と値が入力されています。
この際、A1セルの行数として、「3」の値を取得する関数がないか調べてみましたが、残念ながら、この様な文字列関数はないようです...
しかし、Excelの文字列個数を求める方法と改行コードを示す"CHAR(10)"を使用し、以下のように条件式を設定することで求められます。

上の例の場合、B1セルに以下のように条件式を入力します。

=LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1
こうすると以下のような結果になります。
  A B
1 あああ
いいい
テストです
3

Excelもやりますな(≧∇≦)

以上、エクセルのTipsでした( ̄∇ ̄)ノ♪

Excelマクロで工程表をひけるユーティリティがあったら便利だよね...っとそんな風に思っている人には以下のツールが便利です。

ITレシピ - EXCELマクロでガントチャートを作ってみた

上記サイトから最新版のファイル(tasklineV22.zip)をダウンロードし、解凍するとtaskline.xlaというXLA(Microsoft Excel Addin)形式のファイルが存在します。

新規作成の場合はtaskline.xlaをダブルクリックしましょう。
そうすると左側に縦のバーが表示されていると思います。
上記サイトや操作説明を参考に、縦のバーにあるボタンをぽちぽちしながらガントチャートを作成してみましょう。

新規作成後、工程表をメンテナンスしたい場合にはtaskline.xla→目的のExcelファイルの順番で起動します。
最初、俺が孔明の罠にはまったのが、アドインを起動してからExcelファイルを起動しないことでした( ̄□ ̄;)!!
工程表だけを起動しても単なるExcelファイルなんですよね(^_^;)

開始日、終了日、進捗率から特定の日の稲妻線を加えることもできますし、使いこなせると便利ですよ(≧∇≦)
俺の下手な説明を加えるより、産むが易しということで是非是非お使い下さい( ̄∇ ̄)ノ♪

※会社のPC(Windows XP + Excel 2003)では問題なく起動できましたが、自宅PC(Windows 7 + Excel 2003)では以下のようなメッセージが発生し起動しませんでしたorz

「&H80040111 (-2147221231) ClassFactory は要求されたクラスを提供できません。」というエラーの後、更に「メモリ不足です」と表示されるのですが、理由が分からないですね...
メモリを4GB積んでるこのマシンでは特に(;_;)

何か調査してみて分かったらまた載せますね( ̄∇ ̄)ノ♪

Microsoft Excel 2003を使用していますが、Print ScreenやAlt+Print Screenで画面のハードコピーを取得し、Ctrl + VでExcelに貼り付けようとすると「データを貼り付けできません。」というエラーダイアログが表示され、キャプチャした画面を貼付できないときがあります。
このエラーの困ったところは、発生するときと発生しないときがあるということ。そして、再現手順が全く分からないのが困りものです。

情報があるとしたら、以下のページぐらいでした:
エクセル Excel [エクセルの学校] - 『データを貼付できません』

自分の経験則と数少ない関連サイトの情報を纏めると以下の様になりました:

  1. PrintScreenでの画面キャプチャはBitMap形式でクリップボードに保存されている
  2. Officeクリップボードはアイテム数が最大24個までだが、サイズの大きなアイテムがコピーされるとその限りではない
  3. キャプチャされる画面サイズが大きい(=データが大きい)と発生しやすくなる
  4. Excelを起動し直しても直るとは限らない
  5. OSを再起動しても直るとは限らない
  6. Windows/Excel起動直後だろうが発生するときは発生する
  7. Windows/Excel長時間使用時であっても、発生しないときは発生しない

何この絶望的な状況orz

ただ、ここで注目して欲しいのは「キャプチャされる画面サイズが大きい(=データが大きい)と発生しやすくなる」という記述です。

例えば、WSXGA(1280x854)で使用しているPCでPrint Screenした場合に、今回の様な事象が発生したとします。
その場合でも、画面の解像度をXGA、VGA等の小さいサイズに設定変更することで、Excelにスクリーンキャプチャ画像をExcelに貼り付けることができるかもしれません。
また、画面解像度の設定を変えなくても、Alt + PrintScreenであるならば、キャプチャ対象のウインドウサイズを小さく変えて取り直すことで画像をエクセルに貼り付けできるかも知れません。
それ以外にも、現在、画面の色の設定が32bitであったら、24bitや16bitに設定変更した後にプリントスクリーンすることでExcelに貼り付けできるかも知れません。

要するに、Print Screenでクリップボードにコピーされるデータを少なくすることで「データを貼り付けできません」のエラーが発生した環境でも、OSを再起動せずに、Excelへの画面貼付作業を続ける可能性があるということです。
面倒ですよね、システム検証の作業で画面貼り付け作業をしているのに、OSの再起動って(笑)

ただ、上記の様な対処をしても、Excelを使い続けると発生することがあり、画面キャプチャ時のクリップボードへコピーされるデータサイズを小さくする方法以外に対処しようがないようです。
本当困りものですよね...

そこで、私はキャプラという画面キャプチャソフトを利用する事にしました。

まず、キャプラを起動したら、画像左上(メニューバー[ファイル(F)]の下部)の様にのように[連続して保存する]を選択します。

次に、メニューバーの[ファイル(F)]→[保存形式・連続保存の設定(H)...]を選択し、[連続保存]タブを開きます。
保存方法から格納先を適当にどこか選択し(今回はC:\)、ファイルの種類で「PNG ファイル  (*.png)」を選択し、[OK]ボタンを押します。
※JPEGファイルでも構わないと思いますが、BMP(ビットマップ)ファイルが可逆圧縮形式であることを考えるとPNGファイルが適当かと思います。

その後、[ツール(T)]→[ホットキーの設定(H)...]を開き、アクティブウインドウとフルスクリーンをキャプチャする際のショートカットキーを設定しましょう。
※今回はそれぞれCtrl + 1とCtrl + 2に設定しました。

これでキャプラの設定は終了です。
今回は以下の画像をキャプラ(Ctrl + 1)でアクティブウインドウでキャプチャし、Excelに取り込むことにします。
※突っ込みどころがある画像ですが、スルーしてください。

Microsoft Excel 2003を起動したら、ツールバーに[図]を追加しましょう。[図]のツールバーがないと面倒です。

[図]のツールバーの一番左に[図をファイルから挿入]があります。それをクリックしましょう。

先ほどキャプラの連続保存格納先で選択したフォルダに移動し、先ほどキャプチャしたファイルを選択します。

これで画像が取り込めました。

2回目以降は[図をファイルから挿入]を選択すると、前回使用したフォルダから開けるので便利になるかと思います。
また、何回もファイルを選択する場合、ファイル一覧の表示を[詳細]に設定し、更新日時の降順で表示すると便利になるかと思います。

「Alt + PrintScreen」→(Excelにウインドウ切替)→「Ctrl + V」の操作が、「Ctrl + 1」→(Excelにウインドウ切替)→[図をファイルから挿入]→ファイル選択と手間が掛かるようになりますが、慣れればそれ程の時間ロスを感じなくなると思います。
また、この方法を使用は、キャプラで連続保存してから[図をファイルから挿入]することができるので、先に画像を取得してから後から図を貼り付けるということが可能です。
不便であるけど利点にもなり得ます。

正直、Microsoftが今回の様なバグをさっさと直してくれていたら、こんな無駄な作業をする必要はないのですが(笑)
そんなわけで、Excelに頑張って画像を貼り付けてる皆さん、参考にして下さい( ̄∇ ̄)ノ♪