|

|
|
 |
4.CSVファイルのオープン |
 |
|
|
|
|
|
やっとマクロを作るっぽくなってきました。ここからが、本題です。えっ?前置きが長いって??おとうさん!それは言わない約束でしょ(笑)という具合に、すぐに脱線してしまうのがオレの悪いところです。
というわけで、CSVファイルを開くための処理を作ってみましょう。
|
|
|
|
|
|
|
|
|
|
エクセルマクロでファイルを開くには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ファイルを開くための準備は完了です!
|
|
|
|
|