質問: FileSystem.FreeFile() ' フリーファイルNoを取得 'Open strFileName For Output As #intNo ' 上書きモードでファイルをオープン Open strFileName For Append As #intNo ' 追加モードでファイルをオープン 'Print #intNo, "ABCDE" 'Print #intNo, "あいうえお" Print #intNo, strSQL Close #intNo ' ファイルをクローズ End Sub ### 試したこと ループ箇所変えたりしてみましたが、初期化みたいなことができないか模索してます。。。
回答: > > 1回目のループで置き換えしてしまっているためでしょうか? > > > 正にこれだと思います。 ファイルから読み込んだものと、置き換える変数は別々で用意するとよいと思います。 以下、動作確認はしていませんが、修正案です。 ``` ~省略~ Dim strTempSQL As String ' ←追加 Dim strSQL As String f_num = FreeFile Open F_PATH For Input As f_num ' ここではstrTempSQLを編集 Do Until EOF(f_num) Line Input #f_num, rcd strTempSQL = strTempSQL + vbCrLf & rcd Loop Close f_num ~省略~ ' 全テーブル走査 Set rng = tableSheet.Columns(テーブル名シート_テーブル列) For r = IIf(IS_HEADER, 3, 1) To rng.Cells(rng.Cells.Count).End(xlUp).Row ' テンプレートのSQLを適用 strSQL = strTempSQL ' ←追加 ' テーブル名取得 tableName = tableSheet.Cells(r, テーブル名シート_テーブル列).Text ~省略~ ```