'*******************************************************************************
' 固定長形式テキストファイル書き出すサンプル(FSO)
'
' 作成者:井上治 URL:http://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'*******************************************************************************
' [参照設定]
' ・Microsoft Scripting Runtime
'*******************************************************************************
Option Explicit '*******************************************************************************
' 固定長形式テキストファイル書き出すサンプル(FSO)
' 参照設定:Microsoft Scripting Runtime
'*******************************************************************************
Sub WRITE_FixLngFile1()
Const cnsFILENAME = "\SAMPLE.dat"
Dim FSO As New FileSystemObject ' FileSystemObject
Dim TS As TextStream ' TextStream
Dim GYO As Long ' 収容するセルの行
Dim GYOMAX As Long ' データが収容された最終行 ' 最終行の取得
With ActiveSheet
If .FilterMode Then .ShowAllData
End With
GYOMAX = Range("A65536").End(xlUp).Row
' 指定ファイルをOPEN(出力モード)
Set TS = FSO.CreateTextFile(Filename:=ThisWorkbook.Path & cnsFILENAME, _
Overwrite:=True)
' 2行目から開始
GYO =
' 最終行まで繰り返す
Do Until GYO > GYOMAX
' レコードを出力(REC編集処理より受け取る)
TS.WriteLine FP_EDIT_FixLngRec(GYO) ' 改行(CrLf)付き
' TS.Write FP_EDIT_FixLngRec(GYO) ' 改行(CrLf)なし
' 行を加算
GYO = GYO +
Loop
' 指定ファイルをCLOSE
TS.Close
Set TS = Nothing
Set FSO = Nothing
End Sub '*******************************************************************************
' CSV形式テキストの1レコードの編集処理
'*******************************************************************************
Private Function FP_EDIT_FixLngRec(GYO As Long) As String
Dim strREC As String ' A列(コード)は5バイトの文字列処理
strREC = FP_GET_FIXLNG(Cells(GYO, ).Value, )
' B列(メーカー)は10バイトの文字列処理
strREC = strREC & FP_GET_FIXLNG(Cells(GYO, ).Value, )
' C列(品名)は15バイトの文字列処理
strREC = strREC & FP_GET_FIXLNG(Cells(GYO, ).Value, )
' D列(数量)は4バイトの数値処理
strREC = strREC & Format(Cells(GYO, ).Value, "")
' E列(単価)は6バイトの数値処理
strREC = strREC & Format(Cells(GYO, ).Value, "")
' F列(単価)は8バイトの数値処理
strREC = strREC & Format(Cells(GYO, ).Value, "")
' 編集したレコード内容を戻り値にセット(計48バイト)
FP_EDIT_FixLngRec = strREC
End Function '*******************************************************************************
' 指定バイト数の固定長データ作成(文字列処理)
'*******************************************************************************
Private Function FP_GET_FIXLNG(strInText As String, _
lngFixBytes As Long) As String
Dim lngKeta As Long
Dim lngByte As Long, lngByte2 As Long, lngByte3 As Long
Dim IX As Long
Dim intCHAR As Integer
Dim strOutText As String lngKeta = Len(strInText)
strOutText = strInText
' バイト数判定
For IX = To lngKeta
' 1文字ずつ半角/全角を判断
intCHAR = Asc(Mid(strInText, IX, ))
' 全角と判断される場合はバイト数に1を加える
If ((intCHAR < ) Or (intCHAR > )) Then
lngByte2 = ' 全角
Else
lngByte2 = ' 半角
End If
' 桁あふれ判定(右切り捨て)
lngByte3 = lngByte + lngByte2
If lngByte3 >= lngFixBytes Then
If lngByte3 > lngFixBytes Then
strOutText = Left(strInText, IX - )
Else
strOutText = Left(strInText, IX)
lngByte = lngByte3
End If
Exit For
End If
lngByte = lngByte3
Next IX
' 桁不足判定(空白文字追加)
If lngByte < lngFixBytes Then
strOutText = strOutText & Space(lngFixBytes - lngByte)
End If
FP_GET_FIXLNG = strOutText
End Function

【Excel】输出固定长文本的更多相关文章

  1. 【Excel】读取固定长文本

    '******************************************************************************* ' 固定長形式テキストファイルを読み込 ...

  2. POI插入图片至Excel使用固定的长宽

    使用POI在Excel里插入图片,如何使插入的图片使用固定的大小?先介绍原有的两种方式: 一种是指定开始和结尾单元格,然后从头画到尾,相当于平铺 还有一种就是仅指定开始的单元格,图片的大小跟这个单元格 ...

  3. Bert不完全手册9. 长文本建模 BigBird & Longformer & Reformer & Performer

    这一章我们来唠唠如何优化BERT对文本长度的限制.BERT使用的Transformer结构核心在于注意力机制强大的交互和记忆能力.不过Attention本身O(n^2)的计算和内存复杂度,也限制了Tr ...

  4. OAF 中对文字实现html效果及对超级长文本实现默认换行,对只读的messageTextInput中的内容自动换行

    今天遇到一个需求,客户注册页面客户化了一个超级长的注册须知,内容很多.但是样式相对又要做起来好看点. 注册须知的内容使用多个message拼接而成. 老大说rawText支持html样式,于是我想到了 ...

  5. smartforms长文本处理方式

    因为长文本的话不好换行,在smartforms中对于长文本的处理有两种:一种是自定义文本模板,自己定义好的文本格式,然后再使用的时候再文本类型中选择文本模板,最好是勾上如果没有文本存在怎无错误.这种方 ...

  6. SpringBatch Sample (四)(固定长格式文件读写)

    前篇关于Spring Batch的文章,讲述了Spring Batch 对XML文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对固定长格式文件的读写操作.实例延 ...

  7. css截断长文本显示

    实现 截断长文本显示处理,以前是通过后台的截取,但这种方法容易丢失数据,不利于SEO. 而通过前端css的截断,则灵活多变,可统一运用与整个网站. 这项技术主要运用了text-overflow属性,这 ...

  8. ABAP程序中关于长文本的处理方法

    现象描述 长文本在SAP的运用主要体现在一些notes的记录,或者一些比较长的文本的存取,比如工作流的审批意见,采购申请和采购订单的附加说明等等.如下图: 处理过程 1:SAP中所有的长文本都存在两张 ...

  9. <q>标签,短文本引用;<blockquote>标签,长文本引用

    <q>标签,短文本引用 <q>引用文本</q>,默认显示双引号,不需要在文本中添加 <blockquote>标签,长文本引用 浏览器对<block ...

随机推荐

  1. HashMap源码分析和应用实例的介绍

    1.HashMap介绍 HashMap 是一个散列表,它存储的内容是键值对(key-value)映射.HashMap 继承于AbstractMap,实现了Map.Cloneable.java.io.S ...

  2. Column 'u_id' in field list is ambiguous

  3. SpringMVC整合FastJson:用"最快的json转换工具"替换SpringMVC的默认json转换

    2017年11月23日 09:18:03 阅读数:306 一.环境说明 Windows 10 1709 Spring 4.3.12.RELEASE FastJson 1.2.40 IDEA 2017. ...

  4. SpringCloud无废话入门05:Spring Cloud Gateway路由、filter、熔断

    1.什么是路由网关 截至目前为止的例子中,我们创建了一个service,叫做:HelloService,然后我们把它部署到了两台服务器(即提供了两个provider),然后我们又使用ribbon将其做 ...

  5. Java全栈程序员之08:MAVEN+JAVA配置

    从Spring3.0开始,Spring支持以Java配置的方式来代替XML配置.这一点说起来其实有点可笑,XML配置的方式最初被创建出来就是为了让配置与程序员无关.可是最终我们发现,绝大多数的那些配置 ...

  6. sql格式化并高亮

    演示地址: https://ryan-miao.github.io/sql-format-with-highlight/index.html 源码: https://github.com/Ryan-M ...

  7. 【Geek软技能】程序员,为什么写不好一份简历?

    一份好简历会是一份好工作的开端. 为什么?沧海也会遗珠   简历,是如此重要,它是获得一份满意工作的敲门砖,但不同的简历敲门的声响可不同. 但很多时候简历给人的感觉也似乎微不足道,因为没有人会真正细致 ...

  8. 【Google设计冲刺】一种适合于创新小组的协作方式

    传统的产品闭环是1.产品策划-2.研发-3.上线-4.等待市场反馈,4个步骤.对于一个创新项目来说,试错成本过高,等待周期过长[注释1].那么,有没有一种适合创新项目的协作方式呢?谷歌风投杰克·纳普发 ...

  9. Java 基础【19】代理

    Java 代理(Proxy)模式与现实中的代理含义一致,如旅游代理.明星的经纪人. 在目标对象实现基础上,增加额外的功能操作,由此来扩展目标对象的功能. JavaWeb 中最常见的过滤器.Struts ...

  10. [Java] Windows/Linux路径不同时,统一war的最简办法

    作者: zyl910 一.缘由 在项目开发时,因为运行环境的不同,导致有时得分别为不同的环境,切换配置参数打不同war包.但手工切换配置文件的话,不仅费时费力,而且容易出错. 有些打包工具支持配置切换 ...