マクロ専用関数/変数

メニューやツールバーからは直接利用できないマクロ専用関数があります。
ほとんどはWSH/PPA用でキーマクロ(.mac)からは利用できませんが一部例外があります。

メニューに入ってないコマンド にもマクロ向けコマンドがあります。
こちらは キーマクロからも利用できます。


■関数宣言の書式
構文: 関数名( 仮引数名 :変数型 ): 戻り値型;

解説
PPAから利用する場合、「S_関数名」と、S_をつけてください。
WSHから利用する場合、「Editor.関数名」のように、オブジェクト名をつけてください。

sakura: その関数が利用可能なバージョンを示します。


一覧
GetFilename(): String
GetSaveFilename(): String
GetSelectedString( int1 :Integer ) :String
ExpandParameter( str1 :String ): String
GetLineStr( int1 :Integer ): String
GetLineCount( int1 :Integer ) :Integer
ChangeTabWidth( int1 :Integer ) :Integer
ChangeWrapColm( int1 :Integer ) :Integer
IsTextSelected() :Integer
GetSelectLineFrom() :Integer
GetSelectColmFrom() :Integer
GetSelectColumnFrom() :Integer
GetSelectLineTo() :Integer
GetSelectColmTo() :Integer
GetSelectColumnTo() :Integer
IsInsMode() :Integer
GetCharCode() :Integer
GetLineCode() :Integer
IsPossibleUndo() :Integer
IsPossibleRedo() :Integer
IsCurTypeExt( str1 :String ) :Integer
IsSameTypeExt( str1 :String, str2 :String ) :Integer
InputBox( str1 :String, str2 :String, int1 :Integer ) :String
MessageBox( str1 :String, int1 :Integer ) :Integer
ErrorMsg( str1 :String ) :Integer
WarnMsg( str1 :String ) :Integer
InfoMsg( str1 :String ) :Integer
OkCancelBox( str1 :String ) :Integer
YesNoBox( str1 :String ) :Integer
FileOpenDialog( str1 :String, str2 :String ) :String
FileSaveDialog( str1 :String, str2 :String ) :String
FolderDialog( str1 :String, str2 :String ) :String
CompareVersion( str1 :String, str2 :String ) :Integer
Sleep( int1 :Integer ) :Integer
GetClipboard( int1 :Integer ) :String
SetClipboard( int1 :Integer, str1 :String ) :Integer
LayoutToLogicLineNum( int1 :Integer ) :Integer
LogicToLayoutLineNum( int1 :Integer, int2 :Integer ) :Integer
LineColumnToIndex( int1 :Integer, int2 :Integer ) :Integer
LineIndexToColumn( int1 :Integer, int2 :Integer ) :Integer
GetCookie( str1: String, str2: String ) :String
GetCookieDefault( str1: String, str2: String, str3: String ) :String
SetCookie( str1: String, str2: String, str3: String ) :Integer
DeleteCookie( str1: String, str2: String ) :Integer
GetCookieNames( str1: String ) :String
SetFontSize( int1: Integer, int2: Integer, int3: Integer )
GetDrawSwitch( int1: Integer ) :Integer
SetDrawSwitch() :Integer
StatusMsg( str1 :String, int1 :Integer )
IsShownStatus() :Integer
MsgBeep( int1: Integer )
CommitUndoBuffer()
AddRefUndoBuffer()
SetUndoBuffer()
AppendUndoBufferCursor()
GetStrWidth(str1 :String, int2 :Integer):Integer
GetStrLayoutLength(str1 :String, int2 :Integer):Integer
GetDefaultCharLength():Integer
ClipboardEmpty()
IsIncludeClipboardFormat(str1 :String) :Integer
GetClipboardByFormat(str1 :String, int2 :Integer, int3:Integer) :String
SetClipboardByFormat(str1 :String, str2 :String, int3 :Integer, int4:Integer) :Integer
GetLineAttribute(int1 :Integer, int2 :Integer) :Integer
IsTextSelectingLock() :Integer
SetViewTop( int1 :Integer )
SetViewLeft( int1 :Integer )
GetViewLines() :Integer
GetViewColumns() :Integer
CreateMenu( int1 :Integer, str2 :String ) :Integer

■ function GetFilename(): String; []
戻り値
現在のファイル名が返ります。

解説
取得できるファイル名はフルパスです。
ファイル名が「(無題)」の場合は、空文字列が返ります。
エラーにはなりません。

自動実行マクロの「ファイル保存時」で使う場合、変更前の名前になります。
例えば「C:\file.txt」を開いて、名前をつけて保存でダイアログなどで「C:\backup.txt」を選んだ場合でも「C:\file.txt」です。
新規作成後なら、ファイル名は空になります。
保存するファイル名は、GetSaveFilename を使用してください。
sakura:1.2.106.9以降

■ function GetSaveFilename(): String; []
戻り値
保存時のファイル名が返ります。

解説
自動実行マクロの「ファイル保存時」の実行中のみ文字列が設定されます。
それ以外では、空文字列が返ります。
取得できるファイル名はたいていの場合フルパスです。
FileSaveAs を実行した結果呼ばれた場合は、引数に依存します。

sakura:1.6.5.0以降

■ function GetSelectedString( int1 :Integer ) :String; []
引数
int1    予約されています。0を指定してください。

戻り値
選択されている文字列が返ります。

解説
sakura:1.3.8.0以降
選択部分全体を返します。未選択の時は空文字列を返します。
改行コードなども含めて選択範囲の文字列をそのまま取得します。
複数行の取得も可能です。
従来の機能を使いたいときはExpandParameter('$C')を使ってください。
※$sではありません。

sakura:1.3.5.4以降 1.3.7.0まで
1行の一部が選択されている場合 → 選択範囲
2行以上選択されている場合 → 1行目の選択されている部分
選択されていない場合 → カーソル位置の単語
改行コード/NULL文字は文字列に含まれません。
sakura:1.3.5.4以降

■ function ExpandParameter( str1 :String ): String; []
引数
str1    展開したい特殊文字列を指定します。

戻り値
str1 で指定した文字列を展開・置き換えられた結果の文字列が戻ります。

解説
ExpandParameter書式がそのまま使える関数です。
ヒント ExpandParameter('$F'); は GetFilename(); と同じ値を返します。(無題のときは違います。)
sakura:1.3.5.4以降

■ function GetLineStr( int1 :Integer ): String; []
引数
int1    取得したい行の行番号を改行単位(1開始)で指定します。
0 を指定すると、カーソル行の文字列を取得できます。

戻り値
改行コードを含む1行の文字列です。

解説
取得する文字列も改行単位です。
戻り値の文字列が長さ 0 のだった場合、その行は存在しなかったことを意味します。
int1 がマイナス値だと、エラーが発生します。
sakura:1.4.2.0以降

■ function GetLineCount( int1 :Integer ) :Integer; []
引数
int1    予約されています。0を指定してください。

戻り値
改行単位の全行数を返します。
最終行にデータがない場合、すなわちEOFだけの行は、この行数に含まれません。

解説
int1 に 0 以外を指定すると、エラーが発生します。
EOF だけの行は行数に含まれませんが、カーソルは移動できることに注意してください。
sakura:1.4.2.0以降

■ function ChangeTabWidth( int1 :Integer ) :Integer; []
引数
int1    1~64までの間の値が有効です。

戻り値
設定変更前のタブ幅を返します。

解説
引数で指定した値でタブ幅を設定します。
タブ幅の取得のみ行いたいときは 0 など無効な引数を指定してください。
変更はこのマクロを実行した画面にだけ適用され、設定には保存しません。

sakura:1.6.5.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。ただし戻り値は取得できません。
sakura:1.5.5.0以降

■ function ChangeWrapColm( int1 :Integer ) :Integer; []
引数
int1    折り返し桁数を指定します。

戻り値
元の折り返し桁数を返します。

解説
引数で指定した桁数で折り返します。
有効な桁数の範囲は10~10240です。範囲外の桁数では折り返し桁数を変更しません。
折り返し桁数の取得のみ行いたいときは 0 を指定してください。
実行すると折り返し方法は自動的に「指定桁で折り返す」になります。
ChangeTabWidth マクロと同様、変更はこのマクロを実行した画面にだけ適用され、設定には保存しません。

sakura:1.6.5.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。ただし戻り値は取得できません。
sakura:1.6.3.0以降

■ function IsTextSelected() :Integer; []
戻り値
0    非選択状態
1    選択中
2    矩形選択中

解説
選択幅が 0 のときも選択モードになっていれば選択中と判断します。
sakura:1.5.5.0以降

■ function GetSelectLineFrom() :Integer; []
戻り値
選択開始行(1から始まる)を返します。レイアウト座標(折り返し単位)です。
sakura:1.5.5.0以降

■ function GetSelectColmFrom() :Integer; []
戻り値
選択開始桁(1から始まる)を返します。レイアウト座標です。
sakura:1.5.5.0以降

■ function GetSelectColumnFrom() :Integer; []
解説
GetSelectColmFromと同じです。
sakura:2.1.0.0以降

■ function GetSelectLineTo() :Integer; []
戻り値
選択終了行(1から始まる)を返します。レイアウト座標です。
sakura:1.5.5.0以降

■ function GetSelectColmTo() :Integer; []
戻り値
選択終了桁(1から始まる)を返します。レイアウト座標です。
sakura:1.5.5.0以降

■ function GetSelectColumnTo() :Integer; []
解説
GetSelectColmToと同じです。
sakura:2.1.0.0以降

■ function IsInsMode() :Integer; []
戻り値
0    上書きモード
1    挿入モード
sakura:1.5.5.0以降

■ function GetCharCode() :Integer; []
戻り値
0    SJIS
1    JIS
2    EUC
3    UTF-16
4    UTF-8
5    UTF-7
6    UTF-16BE
7    CESU-8
8    Latin1(Windows-1252)
90    CP_ACP (sakura:2.2.0.0以降)
91    CP_OEM (sakura:2.2.0.0以降)
コードページ番号 (sakura:2.2.0.0以降)

解説
現在開いているファイルがどの文字コードとして開かれているかを調べます。
特定範囲、または指定位置のテキストの状態を取得するものではありません。
sakura:1.5.5.0以降

■ function GetLineCode() :Integer; []
戻り値
0    CRLF
1    CR
2    LF

解説
『入力改行コードの指定』で指定された改行コードを調べます。
特定範囲、または指定位置のテキストの状態を取得するものではありません。
sakura:1.5.5.0以降

■ function IsPossibleUndo() :Integer; []
戻り値
0    無効
1    有効
解説
元に戻す」が可能か調べます。
sakura:1.5.5.0以降

■ function IsPossibleRedo() :Integer; []
戻り値
0    無効
1    有効
解説
やり直し」が可能か調べます。
sakura:1.5.5.0以降

■ function IsCurTypeExt( str1 :String ) :Integer; []
引数
str1    調べる拡張子を指定します。

戻り値
0    不一致
1    一致
解説
現在適用されているタイプ別設定と、指定した拡張子を持ったファイルを開いた場合に適用されるタイプ別設定が同じかを調べます。
拡張子はピリオドを除いた文字列です。
sakura:1.6.5.0以降

■ function IsSameTypeExt( str1 :String, str2 :String ) :Integer; []
引数
str1    調べる1つめの拡張子を指定します。
str2    調べる2つめの拡張子を指定します。

戻り値
0    不一致
1    一致
解説
2 つそれぞれの拡張子を持ったファイルを開いた場合に適用されるタイプ別設定が同じかどうかを調べます。
拡張子はピリオドを除いた文字列です。
sakura:1.6.5.0以降

■ function InputBox( str1 :String, str2 :String, int1 :Integer ) :String; []
引数
str1    表示メッセージ
str2    既定の値
int1    最大入力文字数

戻り値
入力文字列。キャンセル押下時は空文字列
解説
テキスト入力ダイアログを表示し、入力された文字列を返します。
sakura:2.0.3.0以降

■ function MessageBox( str1 :String, int1 :Integer ) :Integer; []
引数
str1    表示メッセージ
int1    メッセージボックス種別
    以下の値を足したものを指定します。
表示するボタン 0x0OK
0x1OK/キャンセル
0x2中止/再試行/無視
0x3はい/いいえ/キャンセル
0x4はい/いいえ
0x5再試行/キャンセル
0x6キャンセル/再実行/続行
アイコン 0x10エラー
0x20確認
0x30警告
0x40情報
デフォルトボタン 0x0001番目
0x1002番目
0x2003番目
0x3004番目
モーダル状態 0x0000APPLMODAL
0x1000SYSTEMMODAL
0x2000TASKMODAL
戻り値
押されたボタンの番号を返します。
0x1OK
0x2キャンセル
0x3中止
0x4再試行
0x5無視
0x6はい
0x7いいえ
0x10再実行
0x11続行
解説
メッセージボックスを表示します。
sakura:2.0.3.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。(sakura 2.1.0.0 以降)

■ function ErrorMsg( str1 :String ) :Integer; []
■ function WarnMsg( str1 :String ) :Integer; []
■ function InfoMsg( str1 :String ) :Integer; []
■ function OkCancelBox( str1 :String ) :Integer; []
■ function YesNoBox( str1 :String ) :Integer; []
解説
それぞれ以下のMessageBox関数と等価です。
ErrorMsg「エラーアイコン」+「OKボタン」
WarnMsg「警告アイコン」+「OKボタン」
InfoMsg「情報アイコン」+「OKボタン」
OkCancelBox「確認アイコン」+「OK/キャンセルボタン」
YesNoBox「確認アイコン」+「はい/いいえボタン」
sakura:2.0.3.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。(sakura 2.1.0.0 以降)

■ function FileOpenDialog( str1 :String, str2 :String ) :String; []
引数
str1    既定のファイルまたはフォルダパス
str2    フィルタ文字列
戻り値
選択ファイルパス名。キャンセル押下時は空文字列
解説
ファイルを開くダイアログを表示します。
sakura:2.0.3.0以降

■ function FileSaveDialog( str1 :String, str2 :String ) :String; []
引数
str1    既定のファイルまたはフォルダパス
str2    フィルタ文字列
戻り値
選択ファイルパス名。キャンセル押下時は空文字列
解説
ファイル保存ダイアログを表示します。
sakura:2.0.3.0以降

■ function FolderDialog( str1 :String, str2 :String ) :String; []
引数
str1    表示メッセージ
str2    既定のファイルまたはフォルダパス
戻り値
選択ファイルパス名。キャンセル押下時は空文字列
解説
フォルダを開くダイアログを表示します。
sakura:2.0.3.0以降

■ function CompareVersion( str1 :String, str2 :String ) :Integer; []
引数
str1    バージョン文字列1
str2    バージョン文字列2
戻り値
0    等しい
0以下    バージョン文字列1が古い
0以上    バージョン文字列1が新しい
解説
2つのバージョン文字列を比較します。
バージョンは4個までの数字を「.」「-」「_」「+」でつなげたものとし、ほかに以下の記号を認識します。
    「a」「alpha」 < 「b」「beta」 < 「rc」「RC」 < (記号なし) < 「p」「pl」
sakura:2.0.3.0以降

■ function Sleep( int1 :Integer ) :Integer; []
引数
int1    スリープ時間(ミリ秒)
戻り値
0
解説
指定した時間だけマクロを止めます。
sakura:2.0.3.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。(sakura 2.1.0.0 以降)

■ function GetClipboard( int1 :Integer ) :String; []
引数
int1    予約値。0を指定してください
戻り値
クリップボード文字列
解説
クリップボードの文字列を取得します。
sakura:2.0.3.0以降

■ function SetClipboard( int1 :Integer, str1 :String ) :Integer; []
引数
int1    オプション
str1    設定する文字列
戻り値
0
解説
クリップボードに文字列を設定します。
オプションは以下の通りです。
0x00    通常コピー
0x01    矩形選択 (sakura:2.1.0.0以降)
0x02    ラインモード (sakura:2.1.0.0以降)
sakura:2.0.3.0以降

■ function LayoutToLogicLineNum( int1: Integer ) :Integer; []
引数
int1    レイアウト(折り返し単位)行番号(1開始)
戻り値
ロジック(改行単位)行番号(1開始)
解説
レイアウト行番号からロジック行番号を取得します。
sakura:2.0.4.0以降

■ function LogicToLayoutLineNum( int1: Integer, int2: Integer ) :Integer; []
引数
int1    ロジック行番号(1開始)
int2    ロジック桁番号(1開始)
戻り値
レイアウト行番号(1開始)
解説
ロジック座標からレイアウト行番号を取得します。
sakura:2.0.4.0以降

■ function LineColumnToIndex( int1: Integer, int2: Integer ) :Integer; []
引数
int1    レイアウト行番号(1開始)
int2    レイアウト桁番号(1開始)
戻り値
ロジック桁番号(1開始)
解説
レイアウト座標からロジック桁番号を求めます。
sakura:2.0.4.0以降

■ function LineIndexToColumn( int1: Integer, int2: Integer ) :Integer; []
引数
int1    ロジック行番号(1開始)
int2    ロジック桁番号(1開始)
戻り値
レイアウト桁番号(1開始)
解説
ロジック座標からレイアウト桁番号を求めます。
sakura:2.0.4.0以降

■ function GetCookie( str1: String, str2: String ) :String; []
引数
str1    スコープ名
str2    Cookie名
戻り値
設定されていたCookie値が返ります。
Cookieが設定されていなかった場合、空文字列が返ります。
解説
スコープ名には、"document"と"window"を指定できます。
スコープ名、Cookie名は大文字小文字を区別します。
sakura:2.0.6.0以降

■ function GetCookieDefault( str1: String, str2: String, str3: String ) :String; []
引数
str1    スコープ名
str2    Cookie名
str3    デフォルト値
戻り値
設定されていたCookie値が返ります。
Cookieが設定されていなかった場合、デフォルト値が返ります。

解説
スコープ名には、"document"と"window"を指定できます。
スコープ名、Cookie名は大文字小文字を区別します。
sakura:2.0.6.0以降

■ function SetCookie( str1: String, str2: String, str3: String ) :Integer; []
引数
str1    スコープ名
str2    Cookie名
str3    設定値
戻り値
0: 正常終了
1: スコープ名が不正だった
2: Cookie名が不正だった

解説
Cookie系マクロでは、マクロ/プラグイン実行終了後も保持できる一時的な文字列を格納しておくことができます。
プラグインのPlugin.SetOption/GetOptionはグローバルな値を保持するのに使います。
Cookieでは各ウィンドウごとに別々の値を保持します。
スコープ名には、"document"と"window"を指定できます。
"document"は、ファイルを開いてから閉じるまで有効です。ファイルを開きなおすしたり閉じるとクリアされます。
"window"は、ウィンドウを開いてから閉じるまで有効です。

Cookie名に使用可能な文字は、[0-9A-Za-z_]のみです。
スコープ名、Cookie名は大文字小文字を区別します。
sakura:2.0.6.0以降

■ function DeleteCookie( str1: String, str2: String ) :Integer; []
引数
str1    スコープ名
str2    Cookie名
戻り値
0: 正常終了
1: スコープ名が不正だった
2: Cookie名が不正だった
5: Cookie名に該当するCookieが存在しなかった
解説
スコープ名には、"document"と"window"を指定できます。
スコープ名、Cookie名は大文字小文字を区別します。
sakura:2.0.6.0以降

■ function GetCookieNames( str1: String ) :String; []
引数
str1    スコープ名
戻り値
該当のスコープの全Cookie名がカンマ区切り(例:「option1,option2」)で取得できます。
解説
スコープ名、Cookie名は大文字小文字を区別します。
sakura:2.0.6.0以降

■ function SetFontSize( int1: Integer, int2: Integer, int3: Integer ); []
引数
int1    フォントサイズ(1/10ポイント単位)
int2    フォントサイズを拡大or縮小するための変更量(int1=0のとき有効)
int3    変更範囲(省略可能、ただしPPAマクロは省略不可) sakura:2.1.0.0以降)
戻り値
なし
解説
使用中のフォントがTrueTypeのみサイズを変更できます。
int1でフォントサイズを設定します。1/10ポイント単位になります。
10.5ptにしたいときは、SetFontSize(105, 0);を設定します。

int1=0に設定したときに、int2でフォントサイズの拡大or縮小ができます。
選択されるフォントサイズは下記の通りです。
8pt, 9pt, 10pt, 10.5pt, 11pt, 12pt, 14pt, 16pt, 18pt, 20pt, 22pt, 24pt, 26pt, 28pt, 36pt, 48pt, 72pt
現在のフォントサイズが10のときにSetFontSize(0,1);を設定するとフォントサイズが11になります。
現在のフォントサイズが10のときにSetFontSize(0,-1);を設定するとフォントサイズが9になります。
int3=0(省略時規定) 共通設定変更
int3=1 タイプ別設定変更
int3=2 現在のウィンドウのみ一時的に変更
sakura:2.0.8.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function GetDrawSwitch() :Integer; []
戻り値
0: 非表示に設定されている
1: 表示に設定されている
解説
画面描画の表示・非表示を取得します。
sakura:2.1.0.0以降

■ function SetDrawSwitch( int1: Integer ) :Integer; []
引数
int1    表示設定値
    0: 非表示
    1: 表示
戻り値
0: 設定する前は非表示に設定されていた
1: 設定する前は表示に設定されていた
解説
画面描画の表示・非表示を設定します。
戻り値で以前の値が取得できます。
マクロ・プラグインの実行が完了すると、自動的に実行する直前の値に再設定されます。
sakura:2.1.0.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function StatusMsg( str1 :String, int1 :Integer ); []
引数
str1    表示文字列
int1    表示オプション
    0: ステータスバーが非表示のとき、右上に表示(省略時規定値)
    1: ステータスバーが非表示のとき、InfoMsgに表示
    2: ステータスバーが非表示のとき、何もしない
解説
ステータスバーに文字列を表示します。
ただしカーソル移動、次・前検索・再描画等のコマンドでステータス表示が上書きされます。
sakura:2.1.0.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function IsShownStatus() :Integer; []
戻り値
0: 非表示
1: 表示

解説
ステータスバーが表示されているかを取得します。
sakura:2.1.0.0以降

■ function MsgBeep( int1 :Integer ); []
引数
int1    音の選択
    -1: ビープ音
     0: 一般の警告音(省略時規定値)
     1: エラー音
     2: 問い合わせ音
     3: 警告音
     4: 情報音
解説
音をならします。OSのシステムで設定されている音がなります。
sakura:2.1.0.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function CommitUndoBuffer(); []
解説
Undoバッファを強制登録します。中身がない場合は登録されません。参照カウンタの数は維持されます。
sakura:2.1.0.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function AddRefUndoBuffer(); []
解説
Undoバッファをまとめるように指示を出します。
参照カウンタを1増加させます。
sakura:2.1.0.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function SetUndoBuffer(); []
解説
AddRefUndoBufferを実行した回数呼び出すとUndoバッファの内容をRedo/Undoのリストに登録します。中身がない場合は登録されません。

InsText('a');
AddRefUndoBuffer(); // これ以降、Undoバッファをまとめる
InsText('b');
InsText('c');
SetUndoBuffer(); // ここで'bc'がまとめてUndoバッファのリストに登録される
InsText('d'); // ここは個別にUndoバッファのリストに登録される
AddRefUndoBuffer(); // これ以降、Undoバッファをまとめる
InsText('e');
InsText('f');
CommitUndoBuffer(); // ここで'ef'がまとめてUndoバッファのリストに登録される
// CommitUndoBuffer() は、SetUndoBuffer() + AddRefUndoBuffer() の意味になる
InsText('g');
InsText('h');
SetUndoBuffer(); // ここで'gh'がまとめてUndoバッファのリストに登録される
InsText('i'); // iがUndoバッファに登録される
SetUndoBuffer(); // ここでは、何もUndoバッファに登録されない
sakura:2.1.0.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function AppendUndoBufferCursor(); []
解説
Undoバッファに現在のカーソル位置を追加し登録します。
sakura:2.1.0.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function GetStrWidth(str1 :String, int2 :Integer):Integer; []
引数
str1    対象文字列
int2    開始Offset(省略可能、ただしPPAマクロは省略不可)
戻り値
文字列の幅
解説
文字列の幅を取得します。
開始Offsetは1開始です。省略時は1です。タブ幅計算などに使います。改行を含んだ計算はできません。
sakura:2.1.0.0以降

■ function GetStrLayoutLength(str1 :String, int2 :Integer):Integer; []
引数
str1    対象文字列
int2    開始Offset(省略可能、ただしPPAマクロは省略不可)
戻り値
文字列のレイアウト幅
解説
文字列のレイアウト幅を取得します。
開始Offsetは1開始です。省略時は1です。タブ幅計算などに使います。改行を含んだ計算はできません。
現在のバージョンでは、GetStrWidthと値は同じです。
sakura:2.1.0.0以降

■ function GetDefaultCharLength():Integer; []
戻り値
レイアウト幅
解説
ルーラー等の1文字幅あたりのレイアウト幅を取得します。
現在のバージョンでは、1です。
sakura:2.1.0.0以降

■ function ClipboardEmpty(); []
解説
クリップボードを空にします。
sakura:2.1.0.0以降

■ function IsIncludeClipboardFormat(str1 :String) :Integer; []
引数
str1    クリップボードフォーマット名
戻り値
0: 該当フォーマットなし
1: 該当フォーマットあり
解説
クリップボードに指定したフォーマットの形式があるか調べます。
クリップボードフォーマット名にはシステムに登録されたCF_xxxや登録された物が使えます。
フォーマット名の例一覧:
    'CF_UNICODETEXT'
    'CF_TEXT'
    'CF_OEMTEXT'
    'CF_HDROP'
    'HTML Format'
    'SAKURAClipW'
    'MSDEVColumnSelect' (矩形コピーマーク)
    'MSDEVLineSelect' (行コピーマーク)
    'VisualStudioEditorOperationsLineCutCopyClipboardTag' (行コピーマーク)
sakura:2.1.0.0以降

■ function GetClipboardByFormat(str1 :String, int2 :Integer, int3:Integer) :String; []
引数
str1    クリップボードフォーマット名
int2    モード(文字コードセット)
int3    終端モード
戻り値
クリップボードの内容の文字列
解説
クリップボードに指定したフォーマットの形式があるか調べます。
モードには以下のものが使えます。
    -2    サクラ標準処理(使えるフォーマットのみ)
    -1    x00-xffをU+00-U+ffにマップ
    0~    文字コードセット
    99    文字コードセット(自動認識)
終端モードには以下のものが使えます。
    -1    モード依存
    0    バイナリ
    1    ASCII互換の0x00で切り取り
    2    UTF-16で切り取り
    4    UTF-32で切り取り
sakura:2.1.0.0以降

■ function SetClipboardByFormat(str1 :String, str2 :String, int3 :Integer, int4:Integer) :Integer; []
引数
str1    データ(文字列)
str2    クリップボードフォーマット名
int3    モード(文字コードセット)
int4    終端モード
戻り値
1: 成功
0: 失敗
解説
クリップボードに指定形式でデータを追加します。
元からあるデータは削除しないので、ClipboardEmptyと併用してください。
sakura:2.1.0.0以降

■ function GetLineAttribute(int1 :Integer, int2:Integer) :Integer; []
引数
int1    行番号1開始(0==カーソル行)
int2    属性
戻り値
属性によります。
解説
属性は以下の種類です。
    0    変更行: 戻り値 0=未変更 1=修正あり
    1    変更行シーケンス: 戻り値 シーケンス番号
    2    ブックマーク: 戻り値 0=未設定 1=ブックマーク行
    3    DIFFマーク: 戻り値 0=未変更 1=追加 2=変更 3=削除 4=削除(EOF以降)
    4    関数リストマーク: 戻り値 0=未設定 1=設定あり
sakura:2.2.0.0以降

■ function IsTextSelectingLock() :Integer; []
戻り値
0    未ロック
1    通常選択ロック
2    矩形選択中でロック
sakura:2.2.0.0以降

■ function SetViewTop( int1 :Integer ); []
引数
int1    行番号
画面スクロール位置を一番上の行の行番号で設定します。
sakura:2.2.0.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function SetViewLeft( int1 :Integer ); []
引数
int1    桁番号
画面スクロール位置を一番左の桁の桁番号で設定します。
桁はレイアウト単位で指定します。
ルーラー基準の10文字目を指定するには、SetViewLeft( GetDefaultCharLength() * 10 )と指定します。
sakura:2.2.0.0以降
この関数は、特別にキーマクロ(.mac)形式でも使えます。

■ function GetViewLines() :Integer; []
戻り値
画面に表示されている行数を取得します。
sakura:2.2.0.0以降

■ function GetViewColumns() :Integer; []
戻り値
画面に表示されている桁数を取得します。
ただし桁数はレイアウト単位なので、プロポーショナル版ではピクセル数になっています。
ルーラー基準の文字数に変換するには以下のようにします。
var px = GetViewColumns();
var chars = Math.floor(px / GetDefaultCharLength());
sakura:2.2.0.0以降

■ function CreateMenu( int1 :Integer, str2 :String ) :Integer; []
引数
int1    0=マウス位置に表示 1=カーソル位置に表示
str2    メニュー文字列
戻り値
セパレータ要素,サブメニューを除いた、項目番号(1開始)が返ります。
キャンセルされた場合は 0 です。
解説
メニュー文字列は , 区切りで指定します。
先頭に以下の文字を付けるとそれぞれの意味になります。
複数設定する場合は[CD]のように書きます。
[C] チェックボックス
[D] 非活性(Disable)
[R] ラジオボタン
[S] サブメニュー
[E] サブメニュー終了(サブメニューの最後の要素に書く)
[EE] 2段分サブメニューを終了(3段はEEE,4段はEEEE...)
[B] メニューの折り返し(これを指定すると描画が旧テーマ風)
"["そのものを先頭に表示したい場合は、"[][str]"のように書く必要があります。
アクセスキーを付ける場合は &A のように書きます。& そのものは && と書いてください。
要素を「-」(スラッシュ単独)にすると、その要素はセパレータです。
例、CreateMenu( 0, "[C]チェック項目(&A),[S]サブメニュー(&B),サブメニュー1, [E]サブメニュー2,-,[D]非活性" )
sakura:2.2.0.0以降