SPLITスプリット関数

本ページには広告が含まれています。

SPlIT関数は、文字列を指定した区切文字列で区切り配列を返す関数です。

配列を結合し文字列にするには、JOIN関数を使います。

構文
  1. safearray = SPLIT( 文字列, 区切文字列, 空文字処理フラグ, 数値処理フラグ )
引数
文字列 (String)必須
区切り文字列を含んだ文字列
区切文字列 (String = スペース)省略可
区切る為の文字列(省略時はスペース)
空文字処理フラグ (Boolean = False)省略可
FALSE
空文字も有効(デフォルト)
TRUE
空文字は無効として処理しない
数値処理フラグ (Boolean = False)省略可
FALSE
数値以外も有効 (デフォルト)
TRUE
数値型にて格納、数値以外は無効として空文字に変更する
戻り値
作成された一次元配列(SAFEARRAY型) 

使い方

文字列のみ指定

第一引数の文字列のみ指定した場合、区切り文字列は (半角スペース)として処理されます。

UWSC
DIM str = "This is a pen."
DIM array = SPLIT(str)

FOR item IN array
PRINT item
NEXT
結果
プレーンテキスト
This
is
a
pen.

区切り文字列

str.で区切り、配列に格納します。

UWSC
DIM str = "96.0.4664.45"
DIM array = SPLIT(str, ".")

FOR item IN array
	PRINT item
NEXT
結果
プレーンテキスト
96
0
4664
45

文字列に指定した区切り文字列がない場合は、分解されずに元の文字列を要素とする(要素数1の)配列が返されます。

空文字処理フラグ

第三引数の空文字処理フラグは区切り文字が連続したときに空要素を残すか無視するかを表します。

空文字処理フラグがFalseの場合、空文字の要素も残して処理されます。

UWSC
DIM str = "1,2,,3"
DIM array = SPLIT(str, ",")

FOR item IN array
PRINT item
NEXT
結果
プレーンテキスト
1
2

3

空文字処理フラグがTrueの場合、連続する区切り文字は一つとして考え空文字の要素は削除して処理します。

UWSC
DIM str = "1,2,,3"   // 「,,」を「,」に置換し"1,2,3"として処理
DIM array = SPLIT(str, ",", TRUE)

FOR item IN array
PRINT item
NEXT
結果
プレーンテキスト
1
2
3

数値処理フラグ

第四引数の数値処理フラグは(文字型の)数字を数値として扱うかを表します。処理した配列を計算に使う場合Trueを指定します。

数値処理フラグをFalseにした場合、結果はUNICODE文字列を表す258が返ります。

UWSC
DIM str = "96.0.4664.45"
DIM array = SPLIT(str, ".", TRUE)

FOR item IN array
	PRINT VARTYPE(item)
NEXT
結果
プレーンテキスト
258
258
258
258

SPLIT関数で分割した値を計算に使おうとしても文字列なので+は結合の意味として捉えられ、960466445となります。

UWSC
DIM str = "96.0.4664.45"
DIM array = SPLIT(str, ".")
DIM sum

FOR item IN array
	sum = sum + item
NEXT
結果
プレーンテキスト
960466445

数値処理フラグをTrueにした場合、結果は倍精度浮動小数点値(数値)を表す5が返ります。

UWSC
DIM str = "96.0.4664.45"
DIM array = SPLIT(str, ".", TRUE)

FOR item IN array
	PRINT VARTYPE(item)
NEXT
結果
プレーンテキスト
5
5
5
5

SPLIT関数で分割した値を計算に使うと4805(=96+0+4664+45)となっていることがわかります。

UWSC
DIM str = "96.0.4664.45"
DIM array = SPLIT(str, ".", TRUE, TRUE)
DIM sum

FOR item IN array
	sum = sum + item
NEXT
結果
プレーンテキスト
4805

戻り値を変数に代入せず要素を直接取得

分割した配列を使い回さない場合、変数に格納せずSPLIT関数の後ろにindexを指定することで分割した要素を直接取得することもできます。

要素数を超えるindexを指定した場合エラーが発生するので注意が必要です。

UWSC
DIM str = "96.0.4664.45"
PRINT SPLIT(str, ".")[0]
結果
プレーンテキスト
96

プログラム実行例

UWSC.INIのDefaultFontを変更する

UWSC
使用関数

UWSC.INIよりUWSCを再生するホットキーを取得

Roamingフォルダ(C:\Users\username\AppData\Roaming\)のUWSCフォルダにあるUWSC.INIを読み込み、UWSCを停止するホットキーを取得します。

UWSC
[syntaxHighlight language="INI" title="UWSC.INI"][SET] Position=7,81 PlayHotKey=1,2 StopHotKey=2,2 RecHotKey=3,2 TrayHotKey=14,5 LunchMenuHotKey=14,0 MouseOrg=0 NotActive=0 StayOnTop=0 LogLines=2000 DefaultFont=, TaskTrayStart=1[/syntaxHighlight]
結果
プレーンテキスト
ALT+F1
使用関数
解説

UWSC.INIよりUWSCを停止するホットキーを取得

UWSC
[syntaxHighlight language="INI" title="UWSC.INI"][SET] Position=7,81 PlayHotKey=1,2 StopHotKey=2,2 RecHotKey=3,2 TrayHotKey=14,5 LunchMenuHotKey=14,0 MouseOrg=0 NotActive=0 StayOnTop=0 LogLines=2000 DefaultFont=, TaskTrayStart=1[/syntaxHighlight]
結果
プレーンテキスト
ALT+F2
使用関数
解説

UWSC.INIよりUWSCを記録するホットキーを取得

Roamingフォルダ(C:\Users\username\AppData\Roaming\)のUWSCフォルダにあるUWSC.INIを読み込み、UWSCを記録するホットキーを取得します。

UWSC

UWSCを記録するホットキーはSETセクションのRecHotKeyで取得できます。

[syntaxHighlight language="INI" title="UWSC.INI"][SET] Position=7,81 PlayHotKey=1,2 StopHotKey=2,2 RecHotKey=3,2 TrayHotKey=14,5 LunchMenuHotKey=14,0 MouseOrg=0 NotActive=0 StayOnTop=0 LogLines=2000 DefaultFont=, TaskTrayStart=1[/syntaxHighlight]
結果
プレーンテキスト
ALT+F3
使用関数
解説

UWSC.INIよりUWSCをトレイに格納するホットキーを取得

Roamingフォルダ(C:\Users\username\AppData\Roaming\)のUWSCフォルダにあるUWSC.INIを読み込み、トレイに格納するホットキーを取得します。

UWSC

トレイに格納するホットキーはSETセクションのTrayHotKeyの値で、組み合わせるキー,修飾子キーの形式です。

[syntaxHighlight language="INI" title="UWSC.INI"][SET] Position=7,81 PlayHotKey=1,2 StopHotKey=2,2 RecHotKey=3,2 TrayHotKey=14,5 LunchMenuHotKey=14,0 MouseOrg=0 NotActive=0 StayOnTop=0 LogLines=2000 DefaultFont=, TaskTrayStart=1[/syntaxHighlight]
結果
プレーンテキスト
CTRL+ALT+W
使用関数
解説

UWSC.INIよりUWSCをランチメニューを表示するホットキーを取得

Roamingフォルダ(C:\Users\username\AppData\Roaming\)のUWSCフォルダにあるUWSC.INIを読み込み、ランチメニューのホットキーを取得します。

UWSC

ランチメニューのホットキーはSETセクションのLunchMenuHotKeyキーの値で、組み合わせるキー,修飾子キーの形式です。

[syntaxHighlight language="INI" title="UWSC.INI"][SET] Position=7,81 PlayHotKey=1,2 StopHotKey=2,2 RecHotKey=3,2 TrayHotKey=14,5 LunchMenuHotKey=14,0 MouseOrg=0 NotActive=0 StayOnTop=0 LogLines=2000 DefaultFont=, TaskTrayStart=1[/syntaxHighlight]
結果
プレーンテキスト
Ctrl+W
使用関数
解説

関連記事

CALCARRAY関数 (スクリプト関数)
配列の合計値・最小値・最大値・平均値を求めます。
GETALLWIN関数 (スクリプト関数)
全ウィンドウのIDを取得します。
GETOLEITEM関数 (スクリプト関数)
JOIN関数 (スクリプト関数)
引数に指定した配列を結合し文字列を返します。
SETCLEAR関数 (スクリプト関数)
配列を指定された値で埋めます。
SHIFTARRAY関数 (スクリプト関数)
配列を指定した値だけシフトします。プラス値で後方、マイナス値で前方にシフトします。
連想配列
連想配列とは、自動的に割り当てられる数字をキーとして持つかわりに、自由に任意の文字列を割り振ることができる配列のことです。添え字に番号の変わりに名前をつけることでわかりやすく管理することができます。
divisors (自作関数)
引数に指定した数値の約数をリストを配列で返します。
LENGTH関数 (スクリプト関数)
POPUPMENU関数 (スクリプト関数)
ポップアップメニューを表示し、引数に指定した配列の中から選択された項目の要素番号を取得します。選択された項目を取得したい場合は、POPUPMENUの戻値を引数に指定した配列の要素番号として指定します。