Accessのテキストボックス内で改行する方法

概要

この記事の結論
Accessのテキストボックス内で改行するには、Ctrl+Enterを使います。Enterだけで改行したい場合は、デザインビューで対象のテキストボックスを選び、[Enterキー入力時動作]を[フィールドに行を追加]に設定します。入力欄の高さだけを広げても改行は保存されません。長文の備考欄は長いテキスト型を検討します。

この記事でわかること

  • 今だけ改行するならCtrl+Enter
  • 常用するならEnterの動作を設定
  • 折り返しと保存される改行は別
  • 画面と帳票と外部出力を確認

この記事の主な内容

  1. Accessで改行する2つの方法
  2. Enterキー入力時動作を設定する手順
  3. 折り返しと改行とデータ型の違い
  4. VBAと式で改行を入れる方法
  5. 改行できない表示されないときの切り分け
  6. レポートとCSVで改行を扱う実務上の注意点
  7. まとめ
  8. よくある質問

想定読了時間:約15分~18分


Accessで改行する2つの方法

Accessの入力欄で今すぐ改行したいときは、Ctrl+Enterを使います。備考欄などで毎回Enterだけで改行したい場合は、そのテキストボックスの[Enterキー入力時動作]を変更します。利用者としての操作と、フォームを設計する人の設定を分けて覚えると分かりやすくなります。

例えば「受付済み」の次の行に「折り返し連絡」と書きたい場合、同じテキストボックス内へ改行を入れます。次の入力欄へ移動する操作や、レコードを追加する操作とは異なります。

一時的に改行するならCtrlとEnter

入力中のテキストボックスで、改行したい位置へカーソルを置き、Ctrlキーを押しながらEnterを押します。Enterだけでは別の欄へ進んでしまう場合でも、文字を入力できる欄なら、まずこの操作で確認できます。

Excelのセル内改行で使うAlt+Enterと混同しないようにしましょう。また、日本語の変換中はキーが変換確定に使われる場合があるため、入力を確定してから改行操作を試してください。

やりたいこと操作・設定確認すること
今だけ同じ欄で改行Ctrl+Enter改行位置が意図どおりか
Enterで毎回改行Enterキー入力時動作を変更対象欄だけに設定されているか
次の入力欄へ移動Tabなどタブオーダーが入力順に合うか
長文を読みやすく表示高さ、スクロール、書式を調整保存される改行とは別に確認
一時的な改行はCtrlとEnter、常用する入力欄はEnterの動作設定を使う比較

氏名欄と備考欄で同じ設定にしない

備考や対応内容は複数行で入力すると読みやすくなります。一方、顧客コードや氏名のように通常は1行で扱う欄では、Enterで次へ進む操作が合う場合があります。フォーム全体を一律に変更せず、項目の使い方に合わせて選びます。

なお、Enterの動作を既定にしても、貼り付けなどによる改行の混入まで禁止する仕組みにはなりません。改行を含めてはいけないコード欄には、保存時のチェックも別に検討します。


Enterキー入力時動作を設定する手順

Enterだけで改行させるには、フォームのデザインビューで対象のテキストボックスを選び、[Enterキー入力時動作]を[フィールドに行を追加]に設定します。この設定名にある「行」は、同じ文字列内の新しい行を指します。[1]

対象のテキストボックスを選ぶ

説明用に、F_対応履歴フォームのtxt備考を設定します。txt備考は、T_対応履歴テーブルの備考フィールドへ連結されているとします。実際のファイルでは、フォーム名、コントロール名、保存先フィールドを確認して読み替えてください。

1. 変更前のフォームをコピーするなど、元の設計へ戻せる状態にします。
2. ナビゲーションウィンドウでF_対応履歴を右クリックし、[デザインビュー]を開きます。
3. txt備考の入力枠を選択します。横に付いているラベルは選ばないようにします。
4. F4キーでプロパティシートを表示し、選択対象がテキストボックスであることを確認します。
5. [その他]または[すべて]タブで[Enterキー入力時動作]を探します。
6. [フィールドに行を追加]を選び、フォームの設計を保存します。
7. フォームビューで2行以上を入力し、Enterで同じ欄の次の行に進むことを確認します。

対象テキストボックスのプロパティでEnterキー入力時動作を変更する流れ

入力欄の高さとスクロールも整える

改行できても、入力欄が1行分の高さでは全文を確認しにくくなります。デザインビューで、通常入力される行数が見える高さへ調整します。長い文章が入る場合は、必要に応じて垂直スクロールバーも設定し、最後の行まで確認できるようにします。

高さをどれだけ確保するかは、実際の文章例で判断します。短いダミー文だけで確認すると、実務の長い備考を入れた際に読みにくくなることがあります。周囲のボタンや他の入力欄を隠さないことも確認してください。

確認するプロパティ設定の考え方
コントロールソース保存する備考フィールドへ連結する
Enterキー入力時動作複数行の備考ならフィールドに行を追加
高さよく使う文章が数行見える大きさにする
スクロールバー長文を最後まで確認できるようにする
テキスト形式プレーンテキストかリッチテキストかを確認する
タブストップキーボードで備考欄へ移動できるか確認する

初期値は実際のプロパティで確認する

データ型が短いテキストだから必ずこの動作、長いテキストだから必ずあの動作、と決め付けないでください。フォームの作成方法、部品の既定設定、コピー元、後からの修正などが関係します。Microsoftは、コントロールの既定値設定を変更できることも説明しています。

新しい欄を追加したときは、以前の欄と同じ動作だと思い込まず、EnterとTabをそれぞれ試します。既存フォームの統一感を保つためにも、「備考はEnterで改行、次の欄へはTab」など、入力方針を決めておくと案内しやすくなります


折り返しと改行とデータ型の違い

画面で文章が次の行に見えることと、文字列に改行が保存されていることは別です。自動的な折り返しは、入力欄の幅に合わせて表示を変えています。改行は、文字列の中に行の区切りを入れる操作です。

折り返しは枠の幅で変わる

横幅が狭い欄では、1行の文章も複数行に見えます。入力欄を広げると1行に戻るなら、見た目の折り返しだった可能性があります。文章の区切りをCSVや帳票にも残したい場合は、明示的な改行が必要かを判断します。

例えば、住所の都道府県と番地を別行に見せたいだけなら、表示時に区切る方法もあります。元データへ改行を保存するのか、帳票だけで改行して見せるのかを分けると、外部連携への影響を抑えやすくなります。

折り返しは幅で表示が変わり、改行は文字列に行の区切りが残る違い

短いテキストと長いテキストを使い分ける

短いテキスト型は最大255文字で、フィールドサイズを小さくしていればその範囲が上限です。長い説明、問い合わせ内容、対応記録などは、長いテキスト型を検討します。改行の有無だけでなく、必要な文章量と利用方法で選びます。

保存する内容データ型の候補注意点
顧客コードや名称短いテキスト不要な改行を入れない
短い補足文短いテキストフィールドサイズと改行分も考慮
長い備考や対応内容長いテキスト表示、検索、出力先も確認
数量や金額数値・通貨複数行の文章を保存する欄には使わない
日付や時刻日付/時刻説明文は別の備考欄へ分ける
短い文字列は短いテキスト、長い備考は長いテキストを選ぶ考え方

テキストボックスを広げても保存容量は増えない

画面の高さを広げる操作は、見える範囲を変えるだけです。保存先が短いテキスト型であれば、長い文章を無制限に保存できるようにはなりません。文字が途中までしか入らない場合は、まず保存先のデータ型とフィールドサイズを確認します。

既存フィールドを長いテキストへ変える際は、クエリの集計、インデックス、帳票、CSVなどの利用箇所も点検します。型変更が必要かどうかを確かめず、入力欄が小さいという理由だけで変更するのは避けましょう。

短いテキストにも改行を含められますが、改行コードも文字列の一部です。「見える文字だけで255文字以内だから問題ない」と考えず、実際の入力と保存で境界を確認してください。


VBAと式で改行を入れる方法

VBAでプレーンテキストへ改行を入れる基本形は、文字列の間にvbCrLfを挟む方法です。vbCrLfは、キャリッジリターンとラインフィードの組み合わせを表す定数です。MicrosoftはChr(13)とChr(10)の組み合わせとして定義しています。

決まった文章を2行で表示する

次の1行は、txt備考へ2行の文章を代入する例です。このコードを実行すると現在の値を置き換えるため、既存の備考を残したい欄にそのまま使わないでください。

Me!txt備考.Value = “受付済み” & vbCrLf & “折り返し連絡”

画面に文章を表示したいだけなら、保存用の備考欄とは別の非連結テキストボックスを使う選択肢があります。連結された入力欄へ代入すると、そのレコードの変更につながるため、表示と保存の目的を区別します。

2つの文字列の間にvbCrLfを入れて同じ欄の中で次の行へつなぐ仕組み

既存の文章へ追記する例

次は、プレーンテキストのtxt備考へ「折り返し連絡」を追記する例です。F_対応履歴にcmd追記というボタンを置き、クリック時イベントへ記述する想定です。既存の備考がNullでも動くよう、Nzで空文字列に置き換えてから扱います。

Private Sub cmd追記_Click()
    Dim currentText As String
    Dim addText As String

    currentText = Nz(Me!txt備考.Value, “”)
    addText = “折り返し連絡”

    If Len(currentText) = 0 Then
        Me!txt備考.Value = addText
    Else
        Me!txt備考.Value = currentText & vbCrLf & addText
    End If
End Sub

このコードは、既存の末尾に改行があるかまでは判定していません。すでに改行で終わっていれば空行が増えることがあります。連続クリックでも同じ文章が追加されるので、実運用ではボタンの用途と重複追記の扱いを決めてください。

複数担当者が同じ履歴欄へ追記する業務では、1つの長文へすべて詰め込むより、対応日時、担当者、内容を履歴テーブルの別レコードとして持つ方法もあります。追記内容を検索したい、記入者ごとに確認したい、といった要件から選びます

クエリやコントロールソースの式で改行する

VBAの定数をそのまま式へ書く方法と、Accessの式で文字コードを組み合わせる方法は区別します。表示用テキストボックスのコントロールソースなら、例えば次の式で会社名と担当者名を2行にできます。

=Nz([会社名],””) & Chr(13) & Chr(10) & Nz([担当者名],””)

この例は表示用の計算式です。計算結果のテキストボックスへ利用者が直接入力して元の会社名を更新する、という用途ではありません。また、会社名が空なら先頭に空行が出るため、空の項目の行を表示するかどうかは要件に合わせて調整します。

リッチテキストは同じ処理を流用しない

文字の色や太字を保存するリッチテキストは、プレーンテキストと表現方法が異なります。TextFormatでリッチテキストを表示する設定を確認し、HTMLの構造を持つ値へプレーンテキスト用の追記処理を無条件に混ぜないようにします。

本記事のVBA例はプレーンテキストが対象です。リッチテキストの改行や段落を組み立てる場合は、実際の保存値と表示を確認し、入力文字に含まれる記号の扱いも設計してください。


改行できない表示されないときの切り分け

不具合は、キーを押しても改行しない、改行は入るが見えない、開き直すと消える、帳票だけ切れる、というように段階を分けて調べます。入力設定だけを変え続けると、保存先や印刷側の問題を見落とします。

入力と保存と表示を分けて確認する

最初に、検証用の新規レコードへ短い2行の文章を入れます。次に保存して開き直し、その後で帳票やCSVへ出します。どの段階で期待と違う状態になるかが分かれば、確認する箇所を絞れます。

症状確認する場所対処の方向
Enterで次の欄へ移るEnterキー入力時動作Ctrl+Enterで試し、必要なら設定変更
2行目が入力できても見えない高さ、スクロール表示領域を確保
文字数が増えると保存できないデータ型、フィールドサイズ保存上限と実際の値を確認
開き直すと文章が消えるコントロールソース、保存処理非連結や保存失敗を調査
ボタン操作後に改行が消える文字列整形のVBAReplaceやTrim等の目的を確認
帳票の後半だけ切れる印刷時拡張と配置レポートの設定を確認
出力先で行が増えたように見えるCSVの囲みと読み込み方改行を含む項目として正しく処理
キー入力、保存値、画面表示を分けて改行の問題を特定する手順

既存のコードにReplaceがあっても、すぐに削除しないでください。外部システムが1行の値しか受け付けないために、改行を除去している可能性があります。入力時の値を守り、必要なら出力時だけ別の表現へ変換する方針を検討します。

改行の有無を値として調べる

プレーンテキストの欄では、InStr関数でChr(13)やChr(10)が含まれるか調べられます。例えば次の式は、備考にいずれかの改行文字があるかを確認する表示用の例です。調査用クエリや非連結コントロールで使います。

=InStr(Nz([備考],””),Chr(13))>0
 Or InStr(Nz([備考],””),Chr(10))>0

コントロールソースへ入力する場合は、上の式を1行で記述します。この方法は、画面の折り返しに惑わされず保存値を確認するためのものです。リッチテキストではHTMLの段落なども関係するため、同じ判定だけで結論を出さないでください。

備考欄と帳票の表示不具合を相談する

設定を見直しても解消しない場合や、複数のフォーム・保存先への影響が分からない場合は、対象画面と再現手順を整理してご相談ください。


レポートとCSVで改行を扱う実務上の注意点

フォームで正しく見えても、レポートや外部出力で同じように表示されるとは限りません。入力、保存、印刷、出力先での読み込みまでを一連の動作として確認すると、納品後の文字切れや件数ずれを防ぎやすくなります。

レポートの印刷時拡張を確認する

レポートで備考が途中までしか印刷されない場合は、テキストボックスの[印刷時拡張]を確認します。英語名はCanGrowで、文字列を表示するために印刷・プレビュー時の高さを伸ばす設定です。通常のフォームビューで入力欄が自動的に広がる設定とは区別します。

1. 対象のレポートをデザインビューで開きます。
2. 備考を表示するテキストボックスを選び、印刷時拡張を[はい]にします。
3. 配置するセクションの設定と、周囲のコントロールの重なりを確認します。
4. 短文、長文、空欄のレコードを使い、印刷プレビューで確認します。
5. 実際に使用するPDF出力や印刷でも、後続項目と改ページの状態を確認します。

レポートのテキストボックスの印刷時拡張と重なりを確認するポイント

Microsoftは、コントロールが重なっていると拡張できない場合があると説明しています。高さだけでなく、隣の欄やラベルと重なっていないかも見直してください。長文を表示できるようになった後は、1件が複数ページに分かれる際の読みやすさも確認します。

CSVの改行をレコードの区切りと混同しない

CSVでは、項目内の改行と、次のレコードへ進む改行を区別する必要があります。文章をダブルクォーテーションで囲むなど、出力側と取込側の仕様に合わせて扱います。ファイルの物理的な行数だけで、データの件数を数えないようにしてください。

例えば備考に2行の文章があるレコードは、テキストエディター上では複数行に見えることがあります。改行を含む項目として正しく読める処理なら1レコードですが、単純に改行で分割する処理では別レコードに見えてしまいます。

Accessのエクスポート・インポート設定、テキスト修飾子、出力先の読込仕様を合わせて確認します。外部システムが項目内改行を受け付けない場合は、出力用に空白や区切り記号へ変える方針を決め、元の備考を無断で書き換えないようにします。

プレーンテキスト、リッチテキスト、CSVで改行の表し方を確認する注意点

代表的な文章を使って最終確認する

次の項目は、確認用のケースです。保存できたという1点だけで完了にせず、最後の行まで読み取れるか、再取込した件数が合うかまで確かめます。

入力・出力のケース確認する結果
Ctrl+Enterで2行入力同じ欄に2行が残る
Enterで3行入力対象欄だけが改行動作になる
空欄へVBAで追記先頭に不要な空行が入らない
既存文章へVBAで追記元の文章を消さずに続けられる
末尾が改行の文章へ追記空行の扱いが要件に合う
長い文章を保存して開き直す保存先で途中切れしていない
長文を帳票へ出す全文と後続項目が読める
改行・カンマ・引用符を含むCSV再取込した件数と内容が一致する

長い履歴を1つの欄で管理している場合は、誰がいつ追記したかを記録する必要も見直します。文章を見やすくする改行だけでは、履歴の検索性や更新履歴の保証まで実現できません。必要に応じて、履歴を別レコードにする設計を検討してください。


まとめ

Accessのテキストボックス内で改行するにはCtrl+Enterを使います。Enterだけで改行したい欄は、Enterキー入力時動作を変更します。折り返しと保存される改行、入力欄の高さと保存先の容量は、それぞれ別に確認してください。

VBAではプレーンテキストにvbCrLfを使い、既存の文章やNullを考慮して追記します。帳票は印刷時拡張、CSVは項目内改行の扱いを確認し、入力した文章が最後の出力先まで正しく残る設計にしましょう。

備考欄と帳票の表示不具合を相談する

Accessの教科書では、既存Accessの調査・改修・保守をご相談いただけます。フォーム名、症状、発生する操作、変更した設定が分かると、確認すべき範囲を整理しやすくなります。


よくある質問

対象のテキストボックスで、Enterキー入力時動作を[フィールドに行を追加]にします。一時的な改行ならCtrl+Enterを使えます。

改行を含む文字列を扱えますが、最大255文字などの保存上限があります。長い備考は長いテキスト型を検討し、型変更の影響も確認してください。

データ型だけで断定せず、実際のプロパティを確認してください。作成方法、コピー元、既定の部品設定、後からの変更などが関係します。

必ずしも保存されていません。枠の幅に応じた自動折り返しの場合があります。保存値に行の区切りが必要なら、明示的な改行を確認します。

プレーンテキストでは、文字列をvbCrLfでつなぐ方法が基本です。既存文章を残すか、Nullのときにどうするか、リッチテキストではないかも確認します。

テキストボックスの高さ、印刷時拡張、他のコントロールとの重なりを確認します。フォームで見えていても、帳票の配置は別に調整が必要です。


参考情報

[1] TextBox.EnterKeyBehavior 参照内容:Ctrl+Enterと改行設定
https://learn.microsoft.com/en-us/office/vba/api/access.textbox.enterkeybehavior

[2] Introduction to data types and field properties 参照内容:短いテキストと長いテキスト
https://support.microsoft.com/en-us/access/introduction-to-data-types-and-field-properties

[3] Miscellaneous constants 参照内容:改行コード定数
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/miscellaneous-constants

[4] TextBox.CanGrow 参照内容:印刷時の高さ調整
https://learn.microsoft.com/en-us/office/vba/api/access.textbox.cangrow

[5] TextBox.TextFormat 参照内容:リッチテキスト表示
https://learn.microsoft.com/en-us/office/vba/api/access.textbox.textformat

[6] Import or link to data in a text file 参照内容:テキスト取込の構造
https://support.microsoft.com/en-us/access/import-or-link-to-data-in-a-text-file

関連記事

Accessフォームをデザインビューで作成する方法

Accessのデータ型の種類と使い分け

Accessクエリの抽出条件に日付を指定する方法

Accessのタブオーダーでカーソル移動順を設定する方法

TOP