#author("2016-09-08T06:51:59+09:00","default:Miyashita","Miyashita") *行列データのファイル出力 [#c9ebe981] シート上のセルに連続で並んだ行列の数値をtxt形式でファイルに掃き出したいときに.~ 下記は固定長の出力としている.~ 今のところ文字列がある場合には対応していない.~ #author("2018-02-21T15:00:44+09:00","default:Miyashita","Miyashita") Option Explicit '行列配置をファイルに出力(固定長) Sub ファイル出力(sheetname As String, outfilename As String _ , Rstart, Cstart _ , strlength, degits) Dim WS As Worksheet Dim i, j, k As Long Dim fn As Long Dim formatstr As String Dim outdata, tmpline As String '画面の更新停止 Application.ScreenUpdating = False '相対パス用に ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path Set WS = ThisWorkbook.Worksheets(sheetname) If degits <= 0 Then formatstr = "0" Else formatstr = "0." For k = 1 To degits formatstr = formatstr & "0" Next k End If ''出力ファイルを開く fn = FreeFile Open outfilename For Output As #fn i = Rstart Do Until WS.Cells(i, Cstart) = "" j = Cstart tmpline = "" Do Until WS.Cells(i, j) = "" outdata = Format(WS.Cells(i, j), formatstr) tmpline = tmpline & Right(Space(strlength) & outdata, strlength) j = j + 1 Loop ' 文字列に変換した1行分を出力 Print #fn, tmpline i = i + 1 Loop Close #fn '画面の更新停止 Application.ScreenUpdating = True MsgBox "おわり" End Sub 引数について sheetname :出力したいシートの名前 String outfilename :出力するファイルの名前 String Rstart :シート内のデータ開始行 Long か Integer Cstart :シート内のデータ開始列 Long か Integer strlength :1データ(数値)の幅 Long か Integer degits :小数点以下の桁数 Long か Integer degitsは適当な名前が思い浮かばなかった.decimal pointを入れようとすると長くなるのでやめた.