• ベストアンサー

RSetとString関数の質問

String(3,255)という変換の結果は何ですか。 Dim MyString MyString = "0123456789" ' 文字列を初期化します。 Rset MyString = "Right->" ' MyString に " Right->" を格納します。 "0123"が空白になりますか。助けてください。お願いします。

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

  • ベストアンサー
回答No.2

String(3,255)は 文字コードが255(16進で&HFF)の文字が3文字を返します。 ただし、文字コードが255には文字が割り当てられていないので表示は出来ない。 MyStringの空いた部分は空白(スペースで埋められます) 下記のプログラム(エクセルのマクロ)で確認。 Sub Macro2() Dim MyString ' 文字列を初期化します。 MyString = "0123456789" ' MyString に " Right->" を格納します RSet MyString = "Right->" ' 確認 MsgBox ("#" & MyString & "#") End Sub 何故ヘルプを見ないのですか?1分で解決するのに。 VBAのヘルプより抜粋。 String 関数   バリアント型 (内部処理形式 String の Variant) の値を返します。   指定した文字コード (ASCII またはシフト JIS コード) の示す文字、   または文字列の先頭文字を、指定した文字数だけ並べた文字列を返す文字列処理関数です。 構文   String(number, character)   number:     必ず指定します。     長整数型 (Long) の値を指定します。文字をいくつ並べるのかを指定します。     名前付き引数 number に Null 値が含まれる場合は、Null 値を返します。   character:     必ず指定します。     バリアント型 (Variant) の値を指定します。文字の文字コード、または文字列式を指定します。     この文字列の先頭文字を number 回繰り返したものを返します。     名前付き引数 character に Null 値が含まれる場合は、Null 値を返します。 解説   名前付き引数 character に ASCII でもシフト JIS でもない無効な数値を指定すると、0 として処理されます。 -------------------------------------------------------------------------------- RSet ステートメント   文字列変数の値を右揃えにします。 構文   RSet stringvar = string   stringvar:     必ず指定します。文字列変数の名前を指定します。   string:     必ず指定します。stringvar に右揃えで格納される文字列式を指定します。 解説   引数 stringvar が引数 string よりも短い場合、   RSet ステートメントは引数 stringvar の余った部分をスペースで埋め、   文字列の先頭にカーソル位置を戻します。 メモ   RSet ステートメントでは、ユーザー定義型の変数を使用することはできません。

その他の回答 (1)

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

> String(3,255)という変換の結果は何ですか。 『文字コード「255」の文字が3文字ある文字列』って言う答えでよいんでしょうか? > "0123"が空白になりますか。 「なりますか」という質問なら、答えは『なります』ですけど・・・ RSetはそういう機能なので。 #『元の文字列の一部を置き換える』ではなく、 #『元の文字列と同じ長さの右詰め文字列(左側スペース)を新規に作成する』ので。 元の文字列を置き換えるなら「Mid ステートメント」(Mid関数ではない)ですね。 ただし、置き換え開始位置は自分で計算しなければなりませんけど。