VBAで改行した値を表示できない?

このQ&Aのポイント
  • Access 2007のフォームにラベルを配置し、VBAコードを使用して改行した値を表示しようとしていますが、横に表示されてしまいます。縦に表示させる方法はありますか?
  • 手動でデザインフォームで改行した値を入力し、イベントを実行せずにフォームビューで表示すると縦に表示されます。しかし、VBAコードを使用して改行させて表示する方法を教えてください。
  • VBAで改行させた値を縦に表示する方法を知りたいです。Access 2007のフォームにラベルを配置し、VBAコードを使用して改行した値を表示する際に、横に表示されてしまいます。
回答を見る
  • ベストアンサー

ラベルにはVBAで改行した値を表示できない?

アクセス2007です。 フォームに、ラベルを配置して、適当に「test」と入力し、 フォームの開く時イベントで ************************************** Private Sub Form_Open(Cancel As Integer) Me.ラベル0.Caption = "a" & Chr(10) & "b" End Sub ************************************** としました。 そしてVBAコードを保存して、フォームを開くと、 ラベルには、「ab」と横に表示されてしまいます。 そうではなく a b と、縦に表示はできないのでしょうか? 手動でデザインフォームで 「a」を入力した後にCtrl+Enterを押し「b」を入力し(画像参照)、イベントを実行させずにフォームビューで表示すると a b になります。 VBAコードでも改行させて表示する方法をよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • aisyun
  • ベストアンサー率12% (1/8)
回答No.2

Chr(10)は改行コードの「CR(キャリッジリターン)」を表す文字コードですが、 windowsが標準的に扱う改行コードは CR + LF(ラインフィード)です。 CR ⇒ Chr(10) LF ⇒ Chr(13) ですので、Chr関数を使用する場合は Chr(10) + Chr(13) と記述します。 ※ + は & でも可 ちなみに vbcrlf は Chr(10) + Chr(13) を表す定数です。 ご参考までに改行コードは、  ・windows ⇒ CR/LF  ・UNIX系 ⇒ LF  ・Mac ⇒ CR と、OSによって異なっているため異種間でデータを転送する場合などは 注意する必要があります。

vfgrt34
質問者

お礼

ありがとうございました。大変参考になりました。

その他の回答 (1)

  • aisyun
  • ベストアンサー率12% (1/8)
回答No.1

"a" & Chr(10) & "b" の Chr(10) を vbcrlf に変更してみて下さい

vfgrt34
質問者

お礼

お教えいただいた通り、 「Chr(10)」を「vbcrlf」にしたら、思い通りになりました。 しかしなぜ「Chr(10)」ではダメなんでしょう? 再度ご回答いただければ幸いです。

関連するQ&A

  • エクセル VBAラベル 表示?

    宜しくお願いいたします。 エクセル2000にて Private Sub UserForm_Initialize() Dim TYU As Integer Dim TYUB As Integer For TYU = 3 To 100 If Worksheets("発注履歴").Cells(TYU, 1) = "" Then TYUB = Right(Worksheets("発注履歴").Cells(TYU - 1, 1).Value, 3) Label1.Caption = Format(Date, "yy") & TYUB + 1 Exit For End If Next TYU End sub 上記のようにコードを書き込みました。 ワークシート発注履歴("A3")には注文番号090001が 入力されております。 次回発注時、入力フォームを開いたときに ラベル1に090002を表示しようとしたのですが 092と表示されてしまい 2 のまえの00を表示できません。 どの様に修正すれば宜しいでしょうか?

  • VBA改行について

    Sub 改行() MsgBox "a" & vbCr & "i" MsgBox "a" & Chr(13) & "i" MsgBox "a" & vbLf & "i" MsgBox "a" & Chr(10) & "i" MsgBox "a" & vbCrLf & "i" MsgBox "a" & vbNewLine & "i" MsgBox "a" & Chr(13) + Chr(10) & "i" End Sub 上記のコードを実行すると、すべて改行できますが、 どれが正しい、一般的な改行のコードなのでしょうか? どれも正解だとは思いますが、 企業でプログラムを作る際、 どの改行のコードを使うのか知りたいです。 よろしくお願い致します。

  • VBAでユーザーフォームのcaption表示

    VBAを初めたばかりです。 VBAでユーザーフォームを作成したのですが ユーザーフォームプロパティのcaptionで入力しても 下記プログラムで入力しても表示されません。 VBA作成時の画面にはしっかりと「項目」と 表示されていますが、プログラムを実行してユーザーフォームを 呼び出すと何も表示されていません。 ご教授ください。 Private Sub UserForm_Initialize() UserForm1.Caption = "項目" With ListBox1 .AddItem "1" .AddItem "2" End With End Sub

  • Access レポートでのラベルの表示について

    こんにちは。 Access2003,windowsXPです。 レポート機能で、ラベルにテーブルのデータを表示させているのですが、指定したテーブルが空白の場合、エラーが出ます。 NULL値でもエラーが出ないように設定したいのですが、方法はありますか? 参考までに(VBA) Private Sub Report_Open(Cancel As Integer)   Me!ラベル133.Caption = DLookup("テーマNo", "BMM", "ID = 1") Me!ラベル134.Caption = DLookup("テーマ名称", "BMM", "ID = 1") Me!ラベル135.Caption = DLookup("請求額", "BMM", "ID = 1") End Sub

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

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

  • マウスが触れるとテキストを表示し離れる非表示にする

    アクセスです。 フォームにラベルを設置して、 そのラベルにマウスが触れたらテキストボックスを表示させたいのです。 フォームのオープンイベントは Private Sub Form_Open(Cancel As Integer) Me.テキスト2.Visible = False End Sub になっています。 ラベルのマウスボタン解放時イベントで Private Sub ラベル0_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.テキスト2.Visible = True End Sub にして、ラベルをクリックするとテキストボックスが表示されます。 マウスボタン移動時イベントで Private Sub ラベル0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.テキスト2.Visible = True End Sub にすると、理想通りラベルからマウスが触れたらテキストボックスが表示されます。 ここまではいいのですが マウスのカーソルが離れたら またテキストボックスを非表示にしたいのですがどうすればいいですか?

  • アクセス2003 レポートの総ページ数の取得

    アクセス2003 レポート VBAです。 先にレポートを開き、次にその用紙の設定をするフォーム「A」を開きました。 「A」にあるラベルにレポートの総ページ数を表示させたいのですが、レポートの[Pages]をどのように取得したらよいか教えて下さい。 Private Sub Form_Open(Cancel As Integer) ラベル.Caption = Str(Reports!レポート名![Pages]) End Sub のように、簡単に取得できたらいいのですが。。。

  • Access ラベルの通貨スタイルの設定について

    こんにちは。 Access2003,windowsXPを使っています。 アクセスのレポート機能で、テーブルを指定して、ラベルに表示しています。 が、数字が枠の左によってしまいます。 また、テーブルで通貨形式にしても、レポートでは、通貨になりません。 ぜひ、使い方を教えて下さい。 参考までに(VBA) Private Sub Report_Open(Cancel As Integer) Me!ラベル133.Caption = DLookup("テーマNo", "BMM", "ID = 1")&"" Me!ラベル134.Caption = DLookup("テーマ名称", "BMM", "ID = 1")&"" Me!ラベル135.Caption = DLookup("請求額", "BMM", "ID = 1")&"" End Sub

  • 改行について

    VBAでコードを作るにおいて 改行が必要な場合、 Sub 改行() MsgBox "1行目" & Chr(10) & "2行目" MsgBox "1行目" & Chr(13) & "2行目" MsgBox "1行目" & Chr(13) + Chr(10) & "2行目" MsgBox "1行目" & vbCr & "2行目" MsgBox "1行目" & vbLf & "2行目" MsgBox "1行目" & vbCrLf & "2行目" MsgBox "1行目" & vbNewLine & "2行目" End Sub どれを使うべきなのでしょうか? 理由も教えてください。

  • オプションボタンの名前を変更したい

    Excel2007を使用しています。VBAでの質問です。 ユーザーフォームに、タブストリップを作成し、その中にラベルとオプションボタンを配置しました。 タブは4ページありますが、切り替わるごとにラベルとオプションボタンの表示が下の様に変わるようにしたいのです。 (1) Label1 の value → ワークシート"緑"のA列に入力されている文字 (2) OptionButton1 の caption → ワークシート"緑"のB列に入力されている文字 (1)のラベルは、ネットで調べわかりました。  Private Sub TabStrip1_Change()    Dim myindex As Integer    myindex = TabStrip1.Value    Label1.ControlSource = "緑!A" & myindex  end sub (2)でも、(1)と同じように ControlSource で変わると思いましたが、valueでしかできないようです。 オプションボタンでも同じように表示を変えたいのですが、どのようにすればいいでしょうか? よろしくお願いします。

専門家に質問してみよう