'*******************************************************************************
' 固定長形式テキストファイル書き出すサンプル(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. 通过xml处理sql语句时对小于号与大于号的处理转换

    以上方法,很容易使用,直接ss < #{ss} 法二   <![CDATA[>=]]>表示大于等于      变量<![CDATA[ < ]]>#{变量}表示 ...

  2. Java 构造器 考虑用静态构造方法代替构造器

    类可以提供一个公有的静态工厂方法,它是一个返回类的实例的静态方法.静态工厂方法与设计模式中的工厂方法模式不同. 优势: 静态工厂方法与构造器不同的第一大优势在于,它们有名称.一个类只能有一个带有指定签 ...

  3. GDB快速入门

    GDB快速入门 GDB(GNU DeBugger)是Linux下强大的C/C++调试器,纯命令行操作 启动 以下为测试代码 #include <stdio.h> int nGlobalVa ...

  4. 无脑博士的试管们--dfs搜素

    无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直到被灌试 ...

  5. Aizu2249 Road Construction(dijkstra优化+思路 好题)

    https://vjudge.net/problem/Aizu-2249 感觉这题和2017女生赛的Deleting Edge思路很像,都是先找最短路,然后替换边的. 但是这题用最朴素的dijkstr ...

  6. 【Web】Web开发中的异常处理方案

    我认为最合理的做法: 1.dao层不捕获异常.不抛出异常:spring框架将底层的数据库checked异常封装成unchecked异常了 2.service层捕获异常,并抛出自定义unchecked异 ...

  7. 解决Android Studio出现GC overhead limit exceeded

    方法一: 修改项目目录下的gradle.properties,增加如下配置信息(红色文字中需要根据自己电脑的配置修改内存大小,其余的配置用于加快gradle的编译速度) org.gradle.daem ...

  8. WIN10系统提示无法使用内置管理员账户打开XXX应用程序怎么办

    重装了系统之后,只保留Administrator账户,结果打开程序的时候回弹出这个提示   运行,输入secpol.msc   本地策略-安全选项,启用下面这个,然后重启计算机      

  9. 解决 安装VMwanre tools时 Enter the path to the kernel header files for the 3.10.0-862.14.4.el7.x86_64 kernel

    1.使用ctrl+z停止安装vmtools安装 2.然后yum升级kernel-devel yum -y install kernel-devel

  10. [C#] 将NLog输出到RichTextBox,并在运行时动态修改日志级别过滤

    作者: zyl910 一.缘由 NLog是一个很好用的日志类库.利用它,可以很方便的将日志输出到 调试器.文件 等目标,还支持输出到窗体界面中的RichTextBox等目标. 而且它还支持在运行时修改 ...