7.リスト作成処理と初期処理
 主制御処理と初期処理までを作ります。プロシジャなどは「3.マクロ作成の準備」で作成した帳票モジュールへ書いて行きます。
 初期処理(CSVファイルのオープンや新しいワークブックのオープンなど)、帳票編集印刷設定終了処理の、各プロシジャを呼び出すのみです。細かいことは、それぞれのプロシジャで行います。
モジュール変数の追加
 (General)(Declarations)モジュール変数を1つ追加しておきます。この変数は、新規ワークブックを作成したときに、そのワークブック名を保存しておくための物です。なぜモジュール変数かは、また後ほど触れます。
 なお、モジュール変数とは、モジュール全体で使用できる変数です。

Option Explicit
'モジュール変数
'新規ワークブック名
Dim strNewWorkbookName As String

プロシジャ「帳票作成」の作成
 メインの制御処理です。プロシジャ名をリスト作成という名前で定義しましたが、あとで変えます。理由は、また後ほど・・・。
 この処理では、初期処理(CSVファイルのオープンや新しいワークブックのオープンなど)、帳票編集印刷設定終了処理の、各プロシジャを呼び出すのみです。実際の処理は、それぞれのプロシジャで行います。

Sub 帳票作成()

  Call 初期処理
  Call 帳票編集
  Call 印刷設定
  Call 終了処理

End Sub

プロシジャ「初期処理」の作成
 初期処理では、CSVファイルのオープンや新しいワークブックのオープンなど帳票を作るための準備を行います。

Sub 初期処理()

  'CSVファイルを開く
  'ファイル名とパスは指定例です。あなたのPCに合わせて変えください
  If f_CsvOpen("z:\data\uriage.csv") = 9 Then
    MsgBox "CSVファイルがありません"
    End
  End If

  '新規ワークブックを開く
  strNewWorkbookName = f_NewWorkbook()

  '見出しをコピーする
  Workbooks("Excel Smile01.xls").Worksheets("Sheet1").Range("A1:J1").Copy
  Workbooks(strNewWorkbookName).Worksheets("Sheet1").Range("A1:J1").PasteSpecial

End Sub

 まず、f_CsvOpen関数(自作)で、CSVファイルを開きます。ファイルはフルパスで指定します。
 どうやら、24才OLの香織さんが必要としているCSVファイルは、ネットワークドライブか何かにあるようです。仮に、指定した場所にファイルがなかった場合はエラーメッセージ(Msgbox)を表示して、処理を中断(End)します。

 CSVファイルが開けたら、次は新しいワークブックをf_NewWorkbook関数(自作)で開きます。と、同時に新しいワークブックの名前を取得します。名前は、関数の戻り値で取れますので安心してください。それを、モジュール変数strNewWorkbookNameへ保存します。

 初期処理の最後は、ひな型(見出し部分)のコピーです。もう、説明の必要はありませんね!
 ちなみに、このマクロが入っているワークブックのファイル名Excel Smile01.xlsということにしています。

 新規ワークブック名は、後で数箇所のプロシジャで使います。strNewWorkbookNameを「モジュール変数」として定義したのはそのためでした。実は、これだったんですねぇ、使い道というのは。
 Dimの説明や変数の説明についてはAccessの「1.12 データの指定〜入力画面の表示」に詳しく載ってるので省略。気になる人は、そちらを見てください。
試しに動かす場合
 ここまで作れば、CSVファイルを開き、新しいワークブックを作る所までが確認出来ます。テストがてらに動かしてみたい場合は、帳票作成プロシジャを実行してみてください。
 ただし、動かす前にワークブックの保存をお忘れ無く!動かす前の保存はクセにした方が無難です。

 ※帳票編集プロシジャの呼び出し(Call 帳票編集)でプロシジャが無いという内容のエラーが出ますが、これは気にしないでください。ここまでの状態だと、まだ作っていないため必ず出ます。でも、それ以外のエラーが出たときは気にしてください(汗)
Copyright(C) 1999-2006 結城圭介。 All rights reserved