シートに入力されているの文字数の合計を取得するMyRecord業務の効率化に役立つ情報を発信します。文字列や数値、記号などの文字の合計を取得するには、文字列の長さを取得するLen【レン】関数で取得できますが、文字の間に空白があると、一つの空白を1文字として加算してしまいます。セル内で改行している場合も見た目ではわかりませんが、改行コード(Chr(10))があり、こちらも一つの改行を1文字として加算してしまいます。そこで、Range【レンジ】オブジェクトのデータを置換えるReplace【リプレイス】メソッドを使用して、全角半角空白を長さ0文字の文字列「””」に、Chr【キャラクター】関数で取得した改行コード「Chr(10)」を長さ0文字の文字列「””」に置き換えてから、Len【レン】関数を使用して文字の長さ(数)を取得します。Replace【リプレイス】メソッドで空白や改行を「長さ0文字の文字列」に置換えしてしまうと文字列の配置が変わってしまい元に戻せないので、不具合が生じます。そこで、シートの複製(コピー)を作成して、その複製シートにReplace【リプレイス】メソッドを使用して置き換えを実行し、空白や改行を除いた文字だけにし、その数をLen【レン】関数で取得し、変数に格納します。その後、複製シートは削除して、元のシート(置換えをしていないシート)をアクティブにして、MsgBox【メッセージボックス】関数を使用して、文字数の合計を表示します。実行例(1から5の数値が10個のセルに入力されているので文字数は50です。配列の上限値がわからないので動的配列としてバリアント型(Variant)で宣言します。使用されているセル範囲のセルの数をCount【カウント】メソッドで数えて、変数「セル数」に格納します。繰り返し処理の中で、配列の要素番号を表すカウンター変数「i」を長整数型(Long)で宣言します。繰り返し処理の中で、セルの集まりのコレクションからオブジェクトを取り出し、その取り出したセルを格納する変数「セル」をオブジェクト型(Range)で宣言します。繰り返し処理の中で、配列「文字」から取り出した要素をLen【レン】関数で数えて、その数を格納する変数「文字数」を長整数型(Long)で宣言します。繰り返し処理の中で、配列から取り出した要素の文字数が格納されている変数「文字数」を加算して、最終的にシート内の文字数を格納する「文字数合計」を長整数型(Long)で宣言します。Range】Worksheet【ワークシート】オブジェクトの使用されているセル範囲を取得するUsedRange【ユーズドレンジ】プロパティで取得したセル範囲を格納する変数「データ範囲」をオブジェクト型(Range)で宣言します。文字数を数えるシートのシート名を格納する変数「シート名」を文字列型(string)で宣言します。ActiveSheet.Name】Worksheet【ワークシート】オブジェクトのName【ネーム】プロパティを使用して、現在アクティブな文字数を数えるシートのシート名を取得し、変数「シート名」に代入します。after:=Sheets(シート名)】Sheets【シーツ】プロパティで引数に指定した変数「シート名」のシート、つまり文字数を数えるシートをWorksheet【ワークシート】オブジェクトのCopy【コピー】メソッドを使用してコピーし、移動先を表す引数after【アフター】に変数「シート名」のシートの後(右側)を指定します。現在アクティブになっている複製(コピー)シートを表すWorksheet【ワークシート】オブジェクトの使用されているセル範囲を返すUsedRange【ユーズドレンジ】プロパティを使用して、文字が入力されているセル範囲を取得して、オブジェクト変数「データ範囲」にSet【セット】キワードを使用して代入します。複製シートの文字が入力されているセル範囲が格納されているオブジェクト変数「データ範囲」をWith【ウィズ】ステートメントで指定します。Application.ReplaceFormat.Clear】Application【アプリケーション】オブジェクトのReplaceFormat【リプレイスフォーマット】置換えの書式を表すCellFormat【セルフォーマット】オブジェクトを取得し、Clear【クリア】メソッドで、設定されていなくても念の為、置換え書式を削除します。“」を長さ0文字の文字列「””」に置換えます。”」を長さ0文字の文字列「””」に置換えます。【キャラクター】関数を使用して改行を表す文字を取得し、長さ0文字の文字列「””」に置換えます。Application.ReplaceFormat.Clear】Application【アプリケーション】オブジェクトのReplaceFormat【リプレイスフォーマット】置換えの書式を表すCellFormat【セルフォーマット】オブジェクトを取得し、Clear【クリア】メソッドで、設定されていなくても念の為、置換え書式を削除します。複製シートの文字が入力されているセル範囲が格納されている変数「データ範囲」にRange【レンジ】オブジェクトのCount【カウント】プロパティを使用してセルの数を取得し、変数「セル数」に代入します。ReDim【リデム】ステートメントを使用して配列要素の上限値を設定を変数「セル数」に設定します。繰り返し処理の中で、配列変数の要素番号を表すカウンター変数「i」に0を代入します。Next【フォーイーチネクスト】ステートメントを使用して繰り返し処理の始まりです。コレクションには、文字が入力されているセル範囲が格納されているオブジェクト変数「データ範囲」を指定し、オブジェクト変数「セル」に繰り返し処理の中で範囲のセルを一つずつ取り出して代入します。「i」番目の要素にオブジェクト変数「セル」の値をRange【レンジ】オブジェクトのValue【バリュー】プロパティで取得し、代入します。格納されている文字の要素番号をカウンター変数「i」にして繰り返し処理の中で順に取り出し、文字の長さを取得して変数「文字数」に格納します。1】カウンター変数「i」に1を加算して再度、カウンター変数「i」に代入します。28行目【Next】23行目からここまでの処理をオブジェクト変数「データ範囲」のセルの数分繰り返し処理をします。【ディスプレイアラーツ】プロパティにFalseを指定して、次の行で実行するシート削除の注意メッセージの抑制をします。ActiveSheet.Delete】Worksheet【ワークシート】オブジェクトのDelete【デリイト】メソッドを使用して、現在アクティブな複製シートを削除します。抑制していた注意メッセージを再開します。32行目【Sheets(シート名).Select】Sheets【シーツ】プロパティで変数「シート名」に格納されている元のシートを参照してSelect【セレクト】メソッドで選択します。格納されている合計の文字数を表示します。シートに入力されているの文字数の合計を取得する方法についての解説を終了します。ありがとうございました。