Word, Excel, PowerPoint の各ビューワー

2010 形式バージョンのファイルにも対応しているビューワーが公開されていました。

Excel と PowerPoint については 2010 っぽいインターフェースなのですが、Word Viewer だけはなぜか 2003 のビューワーがインストールされました。(Windows XP にインストールしたせい?)

ただ、Word/Excel/PowerPoint 用 Microsoft Office 互換機能パック をインストール知れば Word Viewer 2003 でも 2007 形式のファイルは見れるようです。

]]>

OLEDB を使用して Excel ファイル(2007 形式)を読み込む際の接続文字列

メモです。必要そうな項目のみ列挙しています。

接続文字列の例

Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:Test.xlsx; Extended Properties="Excel 12.0; HDR=YES; IMEX=1;”

接続文字列パラメータ

Provider 使用する OLEDB のバージョン。2007 形式の Excel ファイル(.xlsx)を読み込みたい場合は「Microsoft.ACE.OLEDB.12.0」を指定。2003 以前の形式のみ(.xls)で構わないのであれば「Microsoft.Jet.OLEDB.4.0」も可。
Data Source 読み込む Excel ファイル名。またはファイルパス。
Extended Properties 拡張パラメータ。(以下参照)

 

Extended Properties パラメータ

Excel {バージョン} ISAMバージョン。2003 以前の形式の場合は「8.0」。2007 形式の場合は「12.0」
HDR シートの1行目をヘッダ列として扱う場合は「YES」、1行目から行データとして扱う場合は「NO」
IMEX 0:エクスポート モード、1:インポート モード、2:リンク モード。通常指定する必要がないが、1 を指定すると、セルの値がすべて表示されているテキストのまま読み込める。例えば、セルに「2011/10/1」と入力し、書式設定によって「2011年10月1日」と表示されている場合、IMEX に 1 を指定すると取得するデータは「2011年10月1日(string型)」となる。IMEX を指定していない場合はエンジンの自動解釈によって「2011/10/1(Date型)」として読み込まれるが、前後行の入力内容によって型の解釈が変化する。詳しくは「[PRB] DAO の OpenRecordset を使用すると Excel の値として NULL が返される」参照のこと。
]]>

OLEDB を使用して Excel ファイル(2007形式)のデータを読み込むための前準備

メモ書きです。プログラム側については探すといくつか出てくるので、ここではその前準備について書いています。(2011/10時点)

 

OLEDB を使用して 2007 形式の Excel ファイルを読み込むにはコンポーネントをインストールする必要があります。Office や Visual Studio をインストールしてもコンポーネントはインストールされないので個別にインストールする必要があります。

コンポーネントは下記のいずれかをインストールします。

2007 バージョンと 2010 バージョンはどちらをインストールしても大丈夫です。バージョンの違いによってプログラムが変わることはありません。

ただし、32bit と 64bit では以下のような違いがあります。

OS が 32bit 版の場合

2007 (32bit)、2010 (32bit) のいずれかのみインストールできます。

OS が 64bit 版の場合

どのコンポーネントもインストール可能です。ただし、プログラムで使用する際は注意する事項があります。(後程記載)

2007 Office がインストールされている場合

すべてインストールできます。

Office 2010 32bit がインストールされている場合

2010 の 64bit 版のコンポーネントはインストールできません。

Office 2010 64bit がインストールされている場合

2010 の 32bit 版のコンポーネントはインストールできません。ただし、2007 32bit 版のコンポーネントはインストールできます。

データ接続コンポーネント 32bit 版がインストールされている場合

64bit 版のコンポーネントはインストールできません。

データ接続コンポーネント 64bit 版がインストールされている場合

32bit 版のコンポーネントはインストールできません。(実は 2007 のコンポーネントをインストールする際、2010 の存在チェックを行っていないため、2010 64bit ⇒ 2007 32bit の順番でインストールすることは可能です。ただし、正常な動作をしてくれる保証はありません。)

 

64bit OS 環境で OLEDB を使用する際の注意点

上記の理由により 32bit 版と 64bit 版のデータ接続コンポーネントを同時にインストールすることはできません。作成したアプリケーションを起動した際、そのアプリケーションが 32bit なのか 64bit なのかで使用されるデータ接続コンポーネントの bit(32 or 64) が決定されるので注意が必要です。

例えば Office 2010 64bit をインストール済みの場合、データ接続コンポーネントのバージョンは必然的に 2010 64bit 版になります(2007 は除く)。Visual Studio 2010 SP1 で作成するアプリケーションはデフォルトで x86 になっているので、そのまま OLEDB を使用するアプリケーションを作成しても実行時にコンポーネントが存在しないというエラーが発生します。

また、他のアプリケーションの拡張コンポーネントとしてプログラムを作成する際、その対象アプリケーションの bit に依存する点も注意する必要があります。例えば Visual Studio 2010 の拡張プログラムを作成する際、Visual Studio 2010 は 32bit 版しか提供されていないので、作成した拡張コンポーネントは必然的に 32bit モードで動作します。

]]>

Excel ファイルを複数のウインドウに表示させる方法

【環境】

  • Excel 2003
  • Excel 2007
  • Excel 2010

【内容】

Excel ファイルを普通にダブルクリックして開くときに、すでに Excel のウインドウがひとつ以上存在する場合はそちらを使って Excel ファイルが開かれます。そのため、複数の Excel ファイルを見ながら使いたい場合でも、同時に複数のウインドウを開いて閲覧することができません。(Excel 内では MDI のウインドウを使って分割表示などはできますが、デスクトップ上でのウインドウはひとつです)

複数のウインドウで表示させたい場合は、新たに Excel を新規に起動して新しく開いた Excel に Excel ファイルをドラッグ&ドロップすることによって複数ウインドウで閲覧することができます。

]]>

クライアントに表示される特定のディメンションの属性を非表示にする方法 [SQL Server Analysis Services]

キューブとディメンションを作成しクライアントに公開する際、不要なディメンションの属性が公開されてしまう場合があります。特にキーとなる属性は公開しなくてもいい場合がありますが、ディメンションのキーとなるため削除するとディメンションとして成り立たなくなってしまいます。

クライアントに公開したくない場合は以下の設定で非公開にできます。(見えないだけなのでディメンション上では存在することになります)

【手順】

  1. 作成したディメンションを開く
  2. 「ディメンション構造」のタブを選択し、属性の項目から非表示にした属性を選択
  3. 属性を右クリックしメニューから「プロパティ」を選択
  4. プロパティから「詳細設定」グループの「AttributeHierarchyVisible」を「False」に設定
]]>

Excel の「Worksheets」と「Sheets」の違い

通常 Excel VBA でワークシートを使っている限りは両方に大きな違いはないのですが、Excel のシートには「ワークシート」と「グラフシート」が存在するため(Excel 97 以降)、グラフシートを追加すると両者のシートの取得数が異なります。簡単に表にまとめると

Worksheets 「ワークシート」のみを扱う
Charts 「グラフシート」のみを扱う
Sheets すべてのシートを扱う

になっています。

ですので Worksheets と Sheets の違いを意識せずに使っている方は注意しましょう。

]]>

Excel 2007, 2010 でテーブルとしての書式設定を元に戻す方法

選択しているセル範囲に対して「テーブルとしての書式設定」を使うと、特殊なテーブル形式のセルとして使用できるようになり、見た目がきれいになる、範囲選択が楽になる、フィルターがかけられる、集計がしやすくなるなどメリットがあります。

しかし、一度設定すると解除する方法がわかりにくいのでメモしておきます。

  1. 書式設定したセルを選択
  2. メニュータブから「デザイン」を選択
  3. 「ツール」グループから「範囲に変換」を選択
  4. 確認ダイアログが表示されるので「はい」を選択して解除する

書式自体はそのまま残りますが、テーブルの属性は解除されるので後は手動でセルの書式を書き換えることができます。

]]>

Excel でアクティブなシートを変更するショートカットキー

メモです。

通常シートを切り替えるときはマウスで左下にあるシートをクリックして変更しますが、ショートカットキーで切り替えた方が楽な場合があります。(多くのシートがあり順番にシートを確認したい場合など)

・次のシートに切り替える

  • 「Ctrl」+「PageUp」キー

・前のシートに切り替える

  • 「Ctrl」+「PageDown」キー
]]>