#727 | メモ型(長いテキスト)データの行数やn行目を調べるには? | フォーム、VBA | |
メモ型(長いテキスト)のフィールドをコントロールソースとするテキストボックスでは、長い文章を入力するだけでなく、その中で改行を行うことも多々あります。 そのとき、あくまでも一連の文章がまとまって1つの「Value」プロパティ値となりますので、直接的に何らかのプロパティを使って何行目のデータとか全部で何行あるかといったことを取得することはできません。1つの長い文字列を改行コードで区切ってからそれぞれを解析する処理が必要となります。 ここではその例として、メモ型データの全体の行数や、1行目・6行目・最終行それぞれの値を別のテキストボックスに結果表示する例を紹介します。 ※メモ型の特性として、文章の最後に改行だけをいくつ入力してもそれらは保存されません。また最後の1文字のすぐ次に入力した改行コードも保存されません。「Value」プロパティ値は最後の文字が終端となります。よって、そのような文末の空行は考慮しなくてよいという前提になっている点、注意してください。 まず、下図のようなフォームを作ります。 テーブルのフィールドと連結した、メモ型データを入力可能なテキストボックスを配置します。ここではそれを「備考」という名前のテキストボックスとしています。 さらに、解析を実行するためのコマンドボタンや各結果値を表示するテキストボックスを配置します。コントロール名は次のようなものとしています。
下記がそのサンプルコードです。[解析]ボタンをクリックした際に各値を取得、各テキストボックスにセットしています。 Private Sub cmd解析_Click() '[解析]ボタンクリック時 Dim avarRowData As Variant '備考の値を改行コードで分解して配列にセット avarRowData = Split(Nz(Me!備考), vbCrLf) Me!行数 = UBound(avarRowData) + 1 Me!行データ1 = avarRowData(0) Me!行データ6 = avarRowData(5) Me!行データ最終 = avarRowData(UBound(avarRowData)) End Sub
実行例: |
|||
|
Copyright © T'sWare All rights reserved |