• 締切済み

Excel VBA 固定長のテキストの作成方法

Excel2003のデータを固定長のテキストに書き出す方法について 質問させてください。 ■仕様: A列・・・文字列データ(1バイト文字 最大4桁、それ未満のデータあり) B列・・・数字データ(1バイト文字 最大6桁、それ未満のデータあり) A列の値が最大桁数に満たない場合、右側に空白を挿入し4桁とする B列の値が最大桁数に満たない場合、左側にゼロを挿入し6桁とする A・B列合わせて、1件10バイトで改行するテキストデータを作成したい と考えています。 ■補足: B列の下2桁は小数点以下であり、Excelの書式設定で"ユーザー定義" の"種類"に"0000.00"と設定されている。テキスト生成時には、この小数 点を消したい(123.45 → 012345) ■その他仕様 ・Excelのデータ件数は毎回変化 ・上記の内容をCドライブ中の特定のフォルダに書き込み ・テキストデータのファイル名は固定 3冊ほど本を見てみたのですが、固定長出力の記述が無く、また ネット上のお手本を元に作成したものは、A・B間に無用のブラ ンクが挿入されたり、桁数がバラつき、10バイト固定長になら ずに困っております。 ■追記 上記、”補足”の箇所は、計算用の列を挿入して、そこで100倍した 値を使ってはどうかと思うのですが、より洗練された方法があれば知 りたいと思いました。

みんなの回答

  • hogya
  • ベストアンサー率67% (49/73)
回答No.1

Excelの書式設定はValueプロパティで取得すれば、値で取得できるので関係ないですよ。 Dim dataA As Variant Dim dataB As Variant Dim A As String * 4 Dim B As String * 6 dataA = Worksheets("Sheet1").Cells(1, 1).Value dataB = Worksheets("Sheet1").Cells(1, 2).Value A = dataA B = Format(dataB * 100, "000000") とりあえず、A列のデータに関しては固定長の文字列型に突っ込むだけではだめなのでしょうか。 >そこで100倍した 値を使ってはどうかと思うのですが 小数点の桁位置が決まっているのであればその方法でもよいと思いますよ。

griffin-aki
質問者

お礼

御礼が遅くなり申し訳ありません。 お蔭様で大変助かりました。

関連するQ&A