まだご紹介していない機能は多々ありますが、
今回でマクロ編を閉めようかと思います。
・ファイル出力
せっかくExcel内でデータをいじれるようになったので、
これを別のファイルに出力してみましょう。
順番としては
「1、ファイルを開く」
↓
「2、ファイルに書き込む」
↓
「3、ファイルを閉じる」
となります。
流れは分かりやすいのですが記述方法が独特ですので、
とりあえず書いてみて動かしてみて覚えていきましょう。
1、ファイルを開く
・・の前に、下ごしらえをしなければなりません。
Dim fileAddress as String
fileAddress = C:\test.txt
/* fileAddressには、作成するファイルのアドレスに加え、
ファイル名および拡張子まで指定します。
存在しないアドレスを指定するとエラーになりますよ。 */
Dim fileNo as Integer
fileNo = FreeFile
/* これはコンピュータ側の都合なのですが、
ファイルを扱うときに専用の番号を指定しておきます。
占有することで、処理中に他のプログラムによる
介入を妨げます。 */
/* 現在どの番号が空いているのかなんてイチイチ設定して
いられないのですが、「FreeFile」と記述すると、
空いているファイル番号を勝手に指定してくれます。便利ですね。 */
改めて、
1、ファイルを開く
Open fileAddress For Output As #fileNo
/* Open 出力ファイルアドレス For 記述形式 As #ファイル番号 */
/* 出力ファイルアドレス、ファイル番号については上記の通りです。
ファイル番号の前に「#」を記述するのを忘れないでくださいね。 */
/* 記述形式とは、ファイルへの書き込み方法の事でして、
「Output」で上書きモード、「Append」で追記モードを指定します。 */
2、ファイルに書き込む
Print #ファイル番号, 記述内容
/* もう一般系の記述で書いてしまいますが、
どのように書くかは大体理解いただけるかと思います。
「#」と「,」を忘れないで! */
3、ファイルを閉じる
Close #ファイル番号
/* 説明省略 */
・・と、これがファイル出力の一連の流れとなります。
では問題。
Open example1 For Output As #freeFile1
Print #freeFile1, "これは"
Print #freeFile1, "問題1です。"
Close #freeFile1
Open example2 For Append As #freeFile2
Print #freeFile2, "これは"
Print #freeFile2, "問題2です。"
Close #freeFile2
さて、example1とexample2には
それぞれ何が記述されているでしょうか?
もちろん、
どちらのファイルもテキストとして正常に出力されているとします。
それでは答えです。
答え
example1 : これは問題1です。
example2 : これは問題2です。
思いっきり引っかかっていただいた方、ありがとうございます。
記述方式に関わらず続けて記述されるのですよ。
じゃあ何が違うのかといいますと、
既に同ファイルが存在していたときの扱いが異なるのです。
Open example1 For Output As #freeFile1
Print #freeFile1, "これも"
Print #freeFile1, "問題1です。"
Close #freeFile1
Open example2 For Append As #freeFile2
Print #freeFile2, "これも"
Print #freeFile2, "問題2です。"
Close #freeFile2
これをさらに実行した場合、
example1 : これも問題1です。
example2 : これは問題2です。
これも問題2です。
・・とまぁ、このように処理される訳なのです。
まだまだ初歩の初歩ですが、
とりあえずマクロは一旦キリをつけましょう。
次回は今のところ未定ですが、
特に思い浮かばなければテストツールの話でもします。











