- 締切済み
Excelファイルから固定長データの作り方について
次のエクセルのデータを 番号 金額 ← 空白行が入ります。 1001 300 ← 空白行が入ります。 1002 400 ← 空白行が入ります。 1005 800 ← 空白行が入ります。 1013 1200 下記のように固定長のデータに変換したいのですが 2 00000300 0010010001 2 00000400 0010020002 2 00000800 0010050003 2 00001200 0010130004 「2」(固定)、「 」(スペース5個))、金額(8桁)、「」(スペース1個)、番号(6桁)、連番(4桁) どのようにしたらいいのでしょうか? VBを使えばいいとは思うのですが、よくわかりません。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- bin-chan
- ベストアンサー率33% (1403/4213)
結果をどう保存しますか?「シート上」それとも「ファイル」のどちらでしょう? シート上に結果を得るなら 1.ソートして空白行を取り除く。 2.値を編集する。 番号は列A、金額が列Bとして、列Cに答えを書くとしましょう。 セルA2からデータがあるとして、セルC2に次の式を設定。 =TEXT(A3,"2 00000000")&TEXT(B3," 000000")&TEXT(ROW()-1,"0000")
- imogasi
- ベストアンサー率27% (4737/17069)
旧DOS時代からあってVBにもエクセルVBAにもあるようですが、Lset、Rset(LはLeft,RはRightの意味)というStatementがあるので、これが使えるのではないでしょうか 。文字列変数の値を右(左)詰にするものです。 Sub test01() Dim b As String b = String(10, " ") a = 1234 RSet b = a MsgBox b Cells(1, 1) = "'" & b End Sub これを実行してみると、左に6桁のスペースがセットされることがわかります。この方法で作った列ごとの文字列を繋げて、1行分をPrint#文で書き出す。
- todo36
- ベストアンサー率58% (728/1234)
番号がA列、金額がB列と仮定して C列に ="2_" & RIGHT("00000000" & B1,8) & "_____" & RIGHT("000000" & A1,6) & RIGHT("0000" & ROW(A1),4) を入れるとか。(_ はスペースを表す)