本ページには広告が含まれています。
目次
文字列の一部を切り出します。
- 構文
- UString = COPY( 文字列, 開始位置, コピー文字数 )
- UString = COPYB( 文字列, 開始位置, コピー文字数 )
- UString = COPY( 文字列, 開始位置, コピー文字数 )
- 引数
- 文字列 (String)必須
- コピー元の文字列
- 開始位置 (Integer)必須
- コピーすべき文字列の開始位置(1から)
- コピー文字数 (Integer)省略可
- コピーすべき文字数(省略時は最後の文字まで)
- 戻り値
結果の文字列
ANSI(バイト)処理の場合はCOPYB
使い方
半角文字は1文字=1バイトなので以外はCOPY、COPYBともに同じ結果となります。
PRINT COPY("abcdefg", 2, 4)
PRINT COPYB("abcdefg", 2, 4)
- 結果
bcde bcde
しかし処理する対象が日本語などのマルチバイトの場合1文字=1バイトでないため、日本語1文字の半分だけ切り出されると文字化けを起こします。
PRINT COPY("あいうえお", 2, 4)
PRINT COPYB("あいうえお", 2, 4)
- 結果
いうえお い・
文字列を左・右から切り出す
文字列を左からi文字切り出す。
PRINT COPY(str, 1, i)
文字列を右からi文字切り出す。
PRINT COPY(str, LENGTH(str) - i + 1)
文字列を左からiバイト切り出す。
PRINT COPYB(str, 1, i)
文字列を右からiバイト切り出す。
PRINT COPYB(str, LENGTHB(str) - i + 1)
開始位置
開始位置に小数の値を指定した場合、整数に切り捨てた値で処理されます。0や負数を指定した場合は「1」として処理されます。
コピー文字数
コピー文字数に小数の値を指定した場合、整数に切り捨てた値で処理されます。0や負数を指定した場合は「0」として処理されます。
プログラム実行例
ポップアップメニューで選択した項目を出力(サブメニューあり)
DIM menu[] = "項目1", "項目2", "{項目2-1", "項目2-2}", "項目3", "{項目3-1", "項目3-2", "項目3-3}", "項目4", "項目5"
DIM res = POPUPMENU(menu)
// サブメニューとして指定する際に必要な「{ }」を削除
IF COPY(menu[res], 1, 1) = "{" THEN menu[res] = COPY(menu[res], 2)
IF COPY(menu[res], LENGTH(menu[res], 1)) = "}" THEN menu[res] = COPY(menu[res], 1, LENGTH(menu[res] - 1))
PRINT menu[res]
使用関数
オブジェクトを作成したアプリケーションを示す数値を取得
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Add()
DIM dec = Excel.Worksheets.Creator
DIM hex = decToHex(dec)
DIM str = ""
FOR i = 1 TO LENGTH(hex) STEP 2
str = str + CHR("$" + COPY(hex, i, 2))
NEXT
PRINT "32bit," + dec
PRINT "32bit(16進数),0x" + hex
PRINT "文字," + str
Excel.Quit
結果
32bit, 1480803660
32bit(16進数), 0x5843454C
文字, XCEL
使用関数
今年の恵方を求める
恵方は西暦の下1桁の数字で決まるので、その値で条件分けをします。
DIM year = getYear(today())
DIM y = COPY(year, LENGTH(year))
SELECT y
CASE 0; PRINT "西南西微西"
CASE 1; PRINT "南南東微南"
CASE 2; PRINT "北北西微北"
CASE 3; PRINT "南南東微南"
CASE 4; PRINT "東北東微東"
CASE 5; PRINT "西南西微西"
CASE 6; PRINT "南南東微南"
CASE 7; PRINT "北北西微北"
CASE 8; PRINT "南南東微南"
CASE 9; PRINT "東北東微東"
SELEND
結果
西南西微西
使用関数
解説
関連記事
- Folder.CopyHere メソッド (Shell)
- 1つまたは複数のアイテムをフォルダにコピーします。
- FSO.CopyFile メソッド
- 指定したファイルを別の場所にコピーします。
- FSO.CopyFolder メソッド
- 指定したフォルダを別の場所にコピーします。
- Range.Copy メソッド (Excel)
- 範囲を、指定の範囲またはクリップボードにコピーします。