4.CSVファイルのオープン
 やっとマクロを作るっぽくなってきました。ここからが、本題です。えっ?前置きが長いって??おとうさん!それは言わない約束でしょ(笑)という具合に、すぐに脱線してしまうのがオレの悪いところです。

 というわけで、CSVファイルを開くための処理を作ってみましょう。
関数「f_CsvOpen」の作成
 エクセルマクロでファイルを開くにはWorkbooks.Openという呪文を使います。詳しくはエクセルマクロTipsの「2.1 既存のワークブックを開く」をご覧下さい。

 ファイルを開く呪文がわかった所で、帳票の元ネタとなるCSVファイルを開くための処理をサクっと作っちゃいましょう。この処理は、関数として定義してみます。どこに書くかは、もうおわかりですね!帳票モジュールです。そのまま撃(打)つかコピペしちゃって下さい。

Function f_CsvOpen(strFileName As String) as Integer

  On Error GoTo ErrorExit

  Workbooks.Open Filename:=strFileName, ReadOnly:=True
  f_CsvOpen = 0

  Exit Function

ErrorExit:

  f_CsvOpen = 9

End Function

 この処理では、まず渡された引数(strFileName)のファイルを開きます。指定したファイルが開けた(ファイルがあった)ときは関数の戻り値は0(正常終了)を返します。
 しかし、ファイル名が間違えていたなどのケースも考えて、開けなかったときは関数の戻り値へ9(エラーコード)を返すようにしました。
 On Error GoTo ErrorExitは、そのために付いています。命令を実行したときにエラーが出たときは、ムリヤリErrorExitへ飛びます。

 ちなみに、関数名の先頭にf_と付けたのは、この処理が関数であることを分かりやすくするためです。
動かしてみよう
 作ったら、さっそく動かしてみたくありませんか?というわけで、軽く動かしてみましょう。

 作ったのは関数なので、そのままを押しただけでは動きません。
 なので、次のような試験用の使い捨てプロシジャを作って動かしてみます。

Sub test()

MsgBox f_CsvOpen("c:\happy\island.xls")

End Sub

 例では、c:\happyというフォルダにisland.xlsというファイルを作っておき、そのファイルを開くという内容としました。ファイル名やパスは、あなたの好みに合わせて変えて下さい。ただし、そのときはマクロの方も同じにしてください。
 
プロシジャを入力したら、この図で指定するあたりをクリックして、を押してみましょう。

 うまくファイルが開ければ、左のようなダイアログがワークブックが画面に表示され、マクロによって開いたワークブック(またはCSVなど)が出ていることでしょう。ダイアログにかかれている0というのは、f_CsvOpen関数の戻り値(0/開けた!)です。


 もし、ファイル名やパスが間違えていて開けなかったときは、左のようなダイアログ(9と書かれている)が表示されます。


 ここまでで、帳票の元となるCSVファイルを開くための準備は完了です!
Copyright(C) 1999-2006 結城圭介。 All rights reserved