VBA入門
ファイル操作Ⅱ(Print #)

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2022-03-24

第118回.ファイル操作Ⅱ(Print #)


VBAでファイル(CSV等)を扱う時は、
最初に、ファイルを開き、
その後に、読込み書込みを行い、
最後に、ファイルを閉じます。


ファイルを書き込む時には、Print # ステートメントを使います。


Print # ステートメント

シーケンシャル出力モード (Output または Append) で開いたファイルにデータを書き込むファイル入出力ステートメントです。

Print #filenumber, [outputlist]



filenumber 必ず指定します。
任意のファイル番号を指定します。
OpenステートメントやCloseステートメントで指定するファイル番号と一致させます。
outputlist 省略可能です。
出力する式や数式または文字列式を指定します。
[{Spc(n) | Tab[(n)]}] [expression] [charpos]
Spc(n) 出力するデータに n 個のスペースを挿入します。
Tab(n) expression の出力位置を n 番目の桁位置に移動します。
Tab 関数の引数 n に何も指定しない場合は、出力位置は次の印字領域の先頭になります。
expression 出力する数式または文字列式を指定します。
charpos 次の文字の出力位置を指定します。
セミコロン (;) を指定すると、次の文字は最後の文字の直後から出力されます。
Tab(n) 関数で出力位置の桁番号を指定できます。
Tab 関数の引数 n に何も指定しないと、出力位置は次の印字領域の先頭になります。
引数 charpos を省略すると、次の文字は次の行の先頭から出力されます。

引数 outputlist を省略し引数 filenumber の後ろに区切り記号だけを指定すると、ファイルに空白行を出力します。
ブール型 (Boolean) のデータは、True または False という文字列で出力されます。
日付型 (Date) のデータは、コントロール パネルで設定した短い形式で書き込まれます。
マクロ VBA  ファイル Print


Print # ステートメントの使用例



Sub sample()
  Dim i As Long
  Dim FileNumber
  FileNumber = FreeFile
  Open "C:\TEST.txt" For Output As #FileNumber
  For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    Print #FileNumber, Cells(i, 1)
  Next
  Close #FileNumber
End Sub

上記では、ワークシートのA列のデータを、
テキストファイル"C:\TEST.txt"に書き出しています。

ファイルが一つだけなので、#FileNumber#1と固定数値で指定しても構いませんが、
このVBAサンプルのように、FreeFile関数を使用して次に使用可能なファイル番号を取得するようにした方がより安全です。


以下も参考にしてください。
VBAでのCSVの扱い方まとめ
・本サイトにあるCSV関連記事一覧 ・CSVの読込方法 ・CSVの読み込み方法(改) ・CSVの読み込み方法(改の改) ・CSVの読み込み方法(ジャグ配列) ・CSVの読み込み方法(ジャグ配列)(改) ・CSVの出力(書き出し)方法 ・UTF-8でCSVの読み書き(ADODB.Stream) ・ADOでCSVの読み込み(SQL)
CSVの読込方法
・もっとも簡単かつ良くあるCSV読み込みVBAコード ・「,」「"」に対応したCSV読み込みVBAコード ・CSVをExcelブックとして開くVBA ・クエリーテーブルを使ったCSV読み込みVBAコード ・その他のCSV読み込み方法
CSVの読み込み方法(改)
実施したいこと ・ファイル名を指定し、形式をカンマ区切り、文字列で開く、その際、改行コードLF、CRLF、CRいずれにも対応、セル内の","や改行についてはカラムで区切らない。掲示板で上記のリクエストを頂きました。ということで、対応ロジックを書いてみました。
CSVの読み込み方法(改の改)
・CSVの形式について ・CSV読み込みVBAコード ・配列を使ってシートにまとめて出力する場合 ・QueryTablesを使ったCSV読み込みVBAコード ・本サイトにあるCSV関連記事一覧
CSVの読み込み方法(ジャグ配列)
・CSVの読み込み方法(改の改)での予告 ・CSV読み込みでのジャグ配列の使いどころ ・CSV読み込みVBAコード:ジャグ配列バージョン ・最後に ・本サイトにあるCSV関連記事一覧
CSVの読み込み方法(ジャグ配列)(改)
・CSV読み込みVBAコード:CSVの読み込み方法(ジャグ配列)(改) ・CSVの読み込み方法(ジャグ配列)(改)の使用例 ・本サイトにあるCSV関連記事一覧
CSVの出力(書き出し)方法
・エクセルの機能をそのまま利用します ・直接CSVを出力 ・本サイトにあるCSV関連記事一覧
UTF-8でCSVの読み書き(ADODB.Stream)
・アクティブシートの内容をUTF-8でCSV出力します ・UTF-8のCSVを読込、シートに出力します ・ADODB.Streamのメソッドとプロパティ ・本サイトにあるCSV関連記事一覧
ADOでCSVの読み込み(SQL)
・CSVテストデータ ・ADOでCSV読込のVBA ・ADO使用時の注意点 ・ADOレコードセットをCSV出力 ・ADOでTSVの読み込み ・ADOでCSVの読み込みについて ・本サイトにあるCSV関連記事一覧




同じテーマ「マクロVBA入門」の記事

第115回.Split関数
第116回.ファイル操作Ⅱ(OpenとClose)
第117回.ファイル操作Ⅱ(Line Input #)
第118回.ファイル操作Ⅱ(Print #)
第119回.ファイルシステムオブジェクト(FileSystemObject)
第120回.OnTimeメソッド
第121回.SendKeysメソッドとAppActivateステートメント
第122回.Shell関数
第123回.APIについて(Win32API)
第124回.Workbookのイベントプロシージャー
第125回.Worksheetのイベントプロシージャー


新着記事NEW ・・・新着記事一覧を見る

数字(1~50)を丸付き数字に変換するVBA|VBA技術解説(2022-11-15)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)|エクセル入門(2022-11-14)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)|エクセル入門(2022-11-14)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)|エクセル入門(2022-11-12)
LAMBDA以降の新関数はVBAで使えるか|VBA技術解説(2022-11-11)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)|エクセル入門(2022-11-08)
WRAPROWS関数(1次元配列を指定数の行で折り返す)|エクセル入門(2022-11-08)
EXPAND関数(配列を指定された行と列に拡張する)|エクセル入門(2022-11-07)
TAKE関数(配列の先頭/末尾から指定行/列数を取得)|エクセル入門(2022-11-06)
DROP関数(配列の先頭/末尾から指定行/列数を除外)|エクセル入門(2022-11-06)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.エクセルVBAでのシート指定方法|VBA技術解説
9.マクロって何?VBAって何?|VBA入門
10.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ