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

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

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

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

]]>

MS Project でガント チャートを作業者で絞り込んで表示する

メモ書きです。

【環境】

  • MS Project 2007

【手順】

  1. ガントチャートを作成
  2. 各タスクのリソース名から作業者を割り当てる
  3. ツールバーより、フィルタコンボボックスをクリックして展開する
  4. 「リソースを使用しているタスク…」を選択
  5. ダイアログ表示後作業者を選択
]]>

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 モードで動作します。

]]>

Oracle で OUT引数のあるストアドプロシージャを呼び出すときの引数の指定の仕方

【環境】

  • Oracle 10g Release 2

【内容】

OUT 引数によって変数に値を返す場合は、呼び出し側の OUT 引数の前に「:(コロン)」を追加します。

■例1(out 引数が一番最後にある場合)

・ストアド側 (定義)

StoredFunction(arg1 in varchar2, arg2 in varchar2 arg3 out varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)
execute StoredFunction(argA, argB, :argC)

■例2(out 引数が一番最初にある場合)

・ストアド側 (定義)

StoredFunction(arg1 out varchar2, arg2 in varchar2 arg3 in varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)
execute StoredFunction(:argA, argB, argC)

■例3(out 引数が複数ある場合)

・ストアド側 (定義)

StoredFunction(arg1 out varchar2, arg2 in varchar2 arg3 out varchar2)

・呼び出し側

variable argA varchar2(255)
variable argB varchar2(255)
variable argC varchar2(255)
execute StoredFunction(:argA, argB, :argC)
]]>

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

【環境】

  • Excel 2003
  • Excel 2007
  • Excel 2010

【内容】

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

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

]]>

VBScript から ADO を使用して Oracle データベースに接続するサンプルプログラム

Option Explicit Dim objADO ' ADO オブジェクトを作成 Set objADO = CreateObject("ADODB.Connection") ' ADO を使い Oracle データベースを開きます ' $ConnectionString$ : 接続文字列 ' $UserName$ : ユーザー名 ' $Password$ : パスワード objADO.Open "Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=$ConnectionString$; UID=$UserName$; PWD=$Password$;" ' ADO をクローズします objADO.Close Set objADO = Nothing msgbox "接続正常終了" ]]>

クライアントから Oracle データベースに接続するための事前設定 (クライアント側)

メモ書きです。

【環境】

  • Oracle 10g Release 2 データベース (別サーバーに存在)
  • クライアントに Oracle 10g Release 2 管理者ツール
  • Windows Vista (クライアント)
  • Windows Server 2003 (Oracle サーバー)

 

パターン1:Net Manager を使う方法

  1. スタートメニューから「Oracle - XXXXXX」「コンフィグレーションおよび移行ツール」「Net Manager」を選択して実行。(XXXXX はインストール時の名前)(ツールがない場合は必要なツールがインストールされていない)
  2. 「Oracle Netの構成」「ローカル」「サービス・ネーミング」を選択し、左にある「作成」ボタンをクリック
  3. ネット・サービス名を入力。(後で接続文字列に使用される)
  4. TCP/IPを選択
  5. データベースのあるホスト名(PC名)とポート番号(デフォルト1521)を入力
  6. サービス名を入力。(通常グローバル・データベース名)
  7. テストボタンをクリックし、ログイン変更ボタンをクリック。接続するためのユーザー名とパスワードを入力して接続できるかテストを行う。
  8. 完了をクリック。
  9. サービス・ネーミングのツリーに作成した接続名が追加されていることを確認し、Net Manager を閉じる。
  10. 保存確認ダイアログが表示されるので保存を行う。(ここまでしないと設定は反映されません)(ちなみにメニューに保存がありそうですが、クリックしてもメニューが展開されないので確認できず)(保存するとパス「%Oracle_Home%networkADMINtnsnames.ora」)ファイルが作成、または更新される)

 

パターン2:tnsnames.ora ファイルを直接書き換える方法

Net Manager を使うと「tnsnames.ora」ファイルが更新されますが、手動で書き換えることもできます。「tnsnames.ora」ファイルは以下のフォルダにあります。

  • %Oracle_Home%networkADMINtnsnames.ora

※特にフォルダを意識せずインストールした場合は「C:oracleproduct[Version][InstallName]networkADMINtnsnames.ora」です。

一つの接続設定ごとに以下のテキストが追加されています。($XXXXX$がパラメータなので適時置き換えてください。)

$ConnectionName$ =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = $Protocol$)(HOST = $HostName$)(PORT = $PortNumber$))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = $ServiceName$)
    )
  )
パラメータ名 説明
$ConnectionName$ 接続名。他システムで接続文字列に使用します。
$Protocol$ 通信プロトコル。通常は「TCP」
$HostName$ Oracle データベースのあるホスト名(PC名)
$PortNumber$ ポート番号。デフォルトでは「1521」
$ServiceName$ サービス名。SIDまたはグローバル・データベース名。
]]>