エクセル(VBA)でテキストファイル出力時
リターンコードはどうやって記述するのでしょうか?

chr(9)はタブ
chr(10)はラインフィード
chr(13)はキャリッジリターン

らしいんですがリターンコードはなんでしょうか?

宜しくお願いします

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんにちは。

maruru01です。
Enterキーの入力であれば、Chr(13)です。
ちなみに、Windowsでの改行は、VBやVBAでは
Chr(10) & Chr(13)で表します。
これはvbCrLfという定数が用意されており、例えば、
"1行目" & vbCrLf & "2行目"
のように記述します。もちろんこれは、
"1行目" & Chr(10) & Chr(13) & "2行目"
とまったく同じことです。
それから、VBAの画面でHELPで、"ascii"と入れて検索すると、文字コード表が見られますよ。
では。
    • good
    • 0
この回答へのお礼

ありがとうございます
助かりました

お礼日時:2001/12/10 17:05

書く必要は無いはずですが?


ファイルに書き出す時にwrite文かprint文なら特に指定の必要性は有りません。(勝手に付く)

なおリターンコードはVbCrLfで良いですよ。
使い方としては(Buffが文字列の変数とすれば)
Buff = "値" & VbCrLf
    • good
    • 0
この回答へのお礼

ありがとうございます
助かりました

お礼日時:2001/12/10 17:06

chr(9)→vbTab


chr(10)→vbLf
chr(13)→vbCr

テキストへの改行はvbCrLfだっけ?(記憶あいまい)
メッセージボックスならvbNewLineでも改行します。
    • good
    • 0
この回答へのお礼

早々の回答、ありがとうございます
助かりました

お礼日時:2001/12/10 17:08

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qキャリッジ リターンコードが邪魔なんです

VBを使用してGP-IBインタフェースの測定器と通信しています。
測定値は,"LF""CR"が,付加された状態で読み出されてきますが,これをEXCEL等に入力するのに"LF""CR"が邪魔なんです。
制御コードを除くには,読み込みバッファの制御コード出現の位置を調べ
その位置-1までを測定値として取り出す他に手はないのでしょうか?

Aベストアンサー

Replaceとか
Splitとか

QVBでプリンター制御コードを記述する方法

VisualBasicでアプリケーションを作っているのですが、
印刷するタイミングで、プリンターに直接改行命令を送
りたいのですが、記述方法がわかりません。

プリンター:NEC MultiImpact700JX
使用目的 :専用伝票に印字する打ち出し位置を調整す
      るため

納期が迫っていて大変困っております。
どうか教えて下さい。

Aベストアンサー

For i = 1 To 10
Printer.Print vbCrLf
Next i
で10行下へ改行します。
右へはスペースを印字します。
Printer.Print " ";
また下記で用紙の左上よりのX座標、Y座標指定した位置にAAAを印字します。
Printer.CurrentX = 2600
Printer.CurrentY = 5000
Printer.ForeColor = 3
Printer.Font.Size = 20
Printer.Print "AAA"
これらのどちらかを使って印字位置を調節することは出来ませんか。
何かのご参考になりませんでしょうか。

QVB.NETで起動したEXCELのシートに作成したCommandButtonのコードの記述について

 VB.NETからEXCELを起動し、シートにCommandButtonを作成しました。
 このCommandButtonのコードをどこに記述すればいい
のかわかりません。
 初歩的な質問で申し訳ありませんが、どなた様か、よろしくご教授下さい。

Aベストアンサー

Withブロックの後に
「CommandButton1 = CType(ExlSheet.CommandButton1,MSForms.CommandButton)」
を挿入してもだめでしょうか?

Q文字列からタブコードを取り除きたい

お世話になります。
文字列からタブ文字をスペースに置き換えるにはどうすればよいでしょうか?
strREC = Replace(strREC, ○, " ")
と書いて、○のところに"\t"などをいれてみたのですが、うまくいきません。

Aベストアンサー

strREC = Replace(strREC, vbTab, " ")
または
strREC = Replace(strREC, chr(9), " ")
でどうでしょう

QVB2005 コード記述作法

VBのコード記述作法に自身がなく不安です。

CADのラバーラインのような感じです。
PictureBoxを置いてFormの上下左右にアンカーしてるだけです。

lineモードにXorがないので下記のようにしました。
今は、とりあえず動いてますが、<?>印部分をここに記述しても安定動作しますか?
(メモリの無駄使いとか・CPUの負荷とか)

又Form1_Resizeで再描画してますが、Windowを最小化すると当然でしょうが
PictureBox1.Image = New Bitmap(PictureBox1.Width, PictureBox1.Height)
でエラーになります。
これを防ぐ方法を教えて下さい。


Public Class Form1
Private sx, sy, ex, ey As Integer
Private flg As Boolean = False
Private fg, bg As Graphics   '----<?>----
Private d(100, 4) As Integer
Private po As Integer = 1
'--------------------------------
Private Sub PictureBox1_MouseDown(~~
If flg = False Then
sx = e.X
sy = e.Y
ex = sx
ey = sy
flg = True
fg = PictureBox1.CreateGraphics() '----<?>----

Else
flg = False
ex = e.X
ey = e.Y
PictureBox1.Refresh()
fg.Dispose() '----<?>----

bg = Graphics.FromImage(PictureBox1.Image) '----<?>----
bg.DrawLine(Pens.Black, sx, sy, ex, ey)
bg.Dispose() '----<?>----

PictureBox1.Refresh()
d(po, 1) = sx
d(po, 2) = sy
d(po, 3) = ex
d(po, 4) = ey
po = po + 1

End If
End Sub
'--------------------------------
Private Sub PictureBox1_MouseMove(~~

If flg = True Then
PictureBox1.Refresh()

fg.DrawLine(Pens.Blue, sx, sy, e.X, e.Y)
ex = e.X
ey = e.Y
End If
End Sub
'--------------------------------
Private Sub Form1_Resize(~~

Dim x As Integer

PictureBox1.Image = New Bitmap(PictureBox1.Width, PictureBox1.Height)

bg = Graphics.FromImage(PictureBox1.Image) ' ----<?>----

For x = 1 To po - 1
bg.DrawLine(Pens.Black, d(x, 1), d(x, 2), d(x, 3), d(x, 4))
Next
bg.Dispose() ' ----<?>----
End Sub
'--------------------------------

End Class

VBのコード記述作法に自身がなく不安です。

CADのラバーラインのような感じです。
PictureBoxを置いてFormの上下左右にアンカーしてるだけです。

lineモードにXorがないので下記のようにしました。
今は、とりあえず動いてますが、<?>印部分をここに記述しても安定動作しますか?
(メモリの無駄使いとか・CPUの負荷とか)

又Form1_Resizeで再描画してますが、Windowを最小化すると当然でしょうが
PictureBox1.Image = New Bitmap(PictureBox1.Width, PictureBox1.Height)
でエラーになり...続きを読む

Aベストアンサー

gはペイントイベントの引数のプロパティを使っているのでDisposeする必要はありませんよ
コレは Framework側で管理してますのでユーザー側でDisposeしてしまうとおかしくなってしまいます
Disposeするのはユーザーが作成したオブジェクトと考えればほぼ間違えないでしょう

またオブジェクトが10000とかあるのでしたら描画のしなおしに対し自分自身が描画対象なのか判定する必要が出てくるでしょう
今は Invalidateで無条件に コントロール全体を無効にしています
描画しなおしたい範囲を指定することも可能ですので無効化を
Invalidate(New Rectangle( sx, sy, abs(ex-sx), abs( ey-sy )) )
といった具合にします

描画ルーチンで
 dim rc,rcPaint as Rectangle
 rcPaint = e.ClipRectangle
 For x=1 to po -1
  rc = new Rectangle( d(x,1), d(x,2), abs(d(x,3) - d(x,1)), abs(d(x,4) - d(x,2))
  ' 交差部分があるかチェック
  if rc.IntersectsWith( rcPaint ) then
   g.DrawLine( Pens.Black, d(x,1) ,d(x,2), d(x,3), d(x,4) )
  end if
 next

といった具合にしてみてはいかがでしょう ・・・

gはペイントイベントの引数のプロパティを使っているのでDisposeする必要はありませんよ
コレは Framework側で管理してますのでユーザー側でDisposeしてしまうとおかしくなってしまいます
Disposeするのはユーザーが作成したオブジェクトと考えればほぼ間違えないでしょう

またオブジェクトが10000とかあるのでしたら描画のしなおしに対し自分自身が描画対象なのか判定する必要が出てくるでしょう
今は Invalidateで無条件に コントロール全体を無効にしています
描画しなおしたい範囲を指定することも可能...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報