• 締切済み

VBA Chr(10) Chr(13)

アクセスのテーブルの値をvbaで操作してるのですが Chr(10) + Chr(13) と Chr(10) & Chr(13) は、同じ意味と認識していいのでしょうか? これを実行して置換等をした場合、改行される時とされない時があり不思議に感じています。 フォームに紐づいたレコードソースをテキストボックスに表示させていて、改行させて表示させたい場合があります。

みんなの回答

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.4

> Chr(10) + Chr(13) > > と > > Chr(10) & Chr(13) > は、同じ意味と認識していいのでしょうか? Excel VBA 程度であれば、 http://msdn.microsoft.com/ja-jp/library/te2585xw.aspx こちらの説明で、下記の記述で十分でしょう。 文字列の連結には & 演算子を使用することをお勧めします。この演算子は文字列だけに定義されているので、意図しない変換が発生する可能性を減らすことができます。 ただし > アクセスのテーブルの値をvbaで操作してるのですが ということですので Null値 の理解は不可欠です。 連結する内容に Null値 が含まれると、「&」と「+」 で結果が異なってきます。 詳細はこちらで。 式を使用して文字列値を結合する http://office.microsoft.com/ja-jp/access-help/HA010235851.aspx もちろん、Chr(10) と Chr(13) の結合では どちらも同じ結果になります。 あと、一番大事なこと、アップ時の記述ミスでなければ Access の改行コードは Chr(10) + Chr(13) ではなく Chr(13) + Chr(10) です。 ついでに、 SQL の文字列などでは、 vbNewLine 等の vb の 定数はエラーになります。

  • chie65535
  • ベストアンサー率43% (8526/19383)
回答No.3

>Chr(10) + Chr(13) >と >Chr(10) & Chr(13) >は、同じ意味と認識していいのでしょうか? 左右のオペランドが「文字列」の場合は、どちらも同じ意味になりますが、マイクロソフトは文字列同士の連結は&を使う事を推奨しているので、&を使った方が良いです。

  • kkkkkm
  • ベストアンサー率65% (1623/2463)
回答No.2

VBAは同じ意味として結合してくれますが、基本的には文字列の結合は & で行う方が無難です。 また、VBAの場合でしたらChr(10) & Chr(13)ではなく、vbCrLfやvbNewLineの方が入力しやすいこともあり使います。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

>Chr(10) & Chr(13) は、同じ意味と認識していいのでしょうか? 明確には違います。 Chr(10) = vbLf = ラインフィード(改行) Chr(13) = vbCr = キャリッジリターン(復帰) 詳細は下記Wiki参照 http://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89

関連するQ&A

  • Chr(13)とChr(10)の違いは?

    myStr = Replace(myStr, Chr(13), "") や myStr = Replace(myStr, Chr(10), "") で、改行を置換しているのですが、どちらかでも改行できる時や どちらかじゃないと改行できない時があります。 そもそもChr(13)とChr(10)の違いはなんでしょう? どちらも改行ですよね? 何が違うのでしょう?

  • vbaでテキストボックスに改行した値を出力したい

    アクセスで、vbaでテキストボックスに改行した値を出力したいのですが うまく改行されません。 画像のような感じにしたいのですが、 Form_フォーム1.テキスト0.Value = "1" & Chr(10) + Chr(13) & "2" これでは改行されないようです。

  • EXCEL VBAにて、WORDへ置換

    EXCEL VBAにて、WORD文書への文字列置換を行っております。 文字列の置換自体はできています。 が、 置換文字列に「改行」(vbCRやvbLF)をいれて置換すると、 word側での表示が□になってしまいます。 vbCrだけでもvbLFだけでも、vbCRLFでも□と表示されてしまいました。 chr(13) & chr(10)でも□になりました。 EXCEL VBA にて WORDへ文字列置換する場合に送る、改行コード (たぶん「^p」と予測をつけているのですが)を chr関数等での 表示方法を教えてください。 EXCEL2003 WORD2003 よろしくお願いします。

  • アクセス 改行 Chr(10)とChr(13)

    アクセスのフォームの、Enter キー入力時動作を「フィールドに行を追加」にして、 改行できる状態にした時、エンターキー改行したら、 入力される文字はChr(10)とChr(13)のどちらになるのでしょうか?

  • と改行を含んだデータが入ってるのですが

    アクセスのレコードに 水300cc 味噌13g と改行を含んだデータが入ってるのですが VBAでこの改行を置換するにはどうすれば良いのでしょうか? str置換前 = Chr(10) & Chr(13) str置換後 = "," strSQL = "UPDATE テーブル Set テーブル.[フィールド] = """ & str置換後 & """ WHERE (テーブル.[フィールド])=""" & str置換前 & """;" DoCmd.RunSQL strSQL としても置換できませんでした。

  • ラベルに「コントロールソース」を設定することは不可能でしょうか?

    単票形式のフォームのレコードソースに紐付くコントロールソースを ラベルに設定したいのですができません。 ハイパーリンクをテキストボックスではなく ラベル上に表示したいです。 テキストボックスのプロパティには「コントロールソース」があるのですが ラベルに「コントロールソース」はありません。 設定することは不可能でしょうか? VBAでも可能なら教えてください。 よろしくお願いします。

  • フォームのコントロールソースにReplace関数を使うには?

    アクセスのフォームに内容という名前のテキストボックスがあります。 このテキストボックスのコントロールソースも同じく内容という名前ですが、この内容の中身の改行コードはchr$(0A)のみなので、アクセスのフォームでは改行表示されないので、chr$(0D)+chr$(0A)に置き換えたいのです。 その為に、このテキストボックスのコントロールソースに、 = Replace ( [内容] , chr(10), chr(13) & chr(10), , , 1) としましたが、エラーとなります。 エラーの内容は、指定した式の構文が正しくありません。 たとえば値または識別子が前にないのにカンマを指定しています。 というエラーです。 どうすればいいのでしょうか? 以上、よろしくお願い致します。

  • Accessのフォームで…

    Access 2010のフォームのリストボックスで、あるテーブルのフィールドの値を選択した場合に、同じテーブルの同じレコードにある違うフィールドの値を、テキストボックスに読み込みたいのですが、どうすれば出来ますでしょうか? VBAのサンプルソース等でも構いません。回答お願いしますm(_ _)m

  • 該当レコードがない場合その旨表示させたい

    Access2000を使用しています。 フォーム上のテキストボックスに日付を入力してボタンを押下すると、入力された日付に該当するレコードを、ソースとなるテーブルから選択クエリで抽出し、それをもとにレポート出力するようになっています。 入力された日付のレコードがソースとなるテーブルにない場合、「該当の日付のレコードはありません」とメッセージを出すようにしたいのですが、VBAでどのようにすればいいでしょうか? IsNull関数を用いて、If~Then~Elseを使おうと考えたのですが、この時テキストボックスに入力された日付で、ソーステーブルのレコードを絞り込む方法がわかりません。

  • Access 2003 VBA について

     始めまして Access 初心者です。  ある、フォームのテキストボックスに入力した内容を元に、 コマンドボタンクリック時に、Aテーブル内容を検索し、テキストボックスに 入力した内容と一致しない場合にAテーブルに格納し 一致するレコードが見つかった場合は、エラーを表示したいのですが、 どのように記述すればいいのでしょうか? 駄文失礼します。

専門家に質問してみよう