テクニック集/数式リファレンス

Last-modified: 2013-02-15 (金) 00:36:10

数式のエディタの"オブジェクトからデータを抽出"を選択したときに選べる、特殊な数式のリファレンスです。

特別

乱数を生成

Random(>基本数を入力<)
0から基本数-1の範囲で乱数(ランダムな数値)を返します。返される乱数は整数です。
  • Random(5)とした場合は、0~4の整数がランダムに返ってきます。

グローバル変数を読み出し

グローバル変数 A もしくは Global Value( >数値を入力< )
グローバル変数に入っている数値を返します。
  • グローバル変数のデフォルト名は"グローバル変数 A、グローバル変数 B、グローバル変数 C..."と続き、変数の名前を変えた場合は、その名前がグローバル変数になります。
  • また、複数あるグローバル変数から1つのグローバル変数を可変で選びたい場合はGlobal Valueを使います。
    • Global Value(3)の場合は、グローバル変数 Cの値を読み出します。

グローバル文字列を読み出し

グローバル文字列 A もしくは Global String( >数値を入力< )
グローバル文字列に入っている文字列を返します。
  • グローバル文字列のデフォルト名は"グローバル文字列 A、グローバル文字列 B、グローバル文字列 C..."と続き、文字列の名前を変えた場合は、その名前がグローバル文字列になります。
  • また、複数あるグローバル文字列から1つのグローバル文字列を可変で選びたい場合はGlobal Stringを使います。
    • Global String(4)の場合は、グローバル文字列 Dの値を読み出します。

ファイル名

アプリケーションドライブ名

Appdrive$
実行アプリケーション(mfaやexeファイル)があるドライブ名を返します。
  • Cドライブにあるファイルを実行させた時、Appdrive$は"c:"を返します。

アプリケーションディレクトリ

Appdir$
実行アプリケーションがあるディレクトリを返します。
  • "c:\mmf2\file\"にあるファイルを実行させた時、Appdir$は"\mmf2\file\"を返します。

アプリケーションパス名

Apppath$
実行アプリケーションがあるパスを返します。
  • "c:\mmf2\file\"にあるファイルを実行させた時、Apppath$は"c:\mmf2\file\"を返します。

テンポラリアプリケーションパス名

AppTempPath$
実行アプリケーションのテンポラリアプリケーションパス(作業フォルダ)を返します。

アプリケーションファイル名

Appname$
実行アプリケーションのファイル名を返します。
  • 返す文字列はファイル名のみで拡張子はつきません。
    • "sample.exe"ファイルを実行させた時、Appname$は"sample"を返します。

バイナリファイルのテンポラリファイル名

BinFileTempName$(> 文字列を入力 <)

変換

数字を文字列に変換

Str$(>変換する数を入力<)
数値を文字列へ変換します。

浮動小数を文字列に変換

FloatToString$(>値<, >桁数<, >少数点以下の桁数<)
浮動小数の桁数を整理して文字列へ変換します。

文字列を数字に変換

Val(>変換する文字列<)
文字列を数値へ変換します。
  • 変換する文字列は先頭が数字になっている必要があります。
  • 数字を含まない文字列や文字列の先頭が数字ではない場合は、0に変換されます。

浮動小数点数を整数に変換

Int(>数を入力<)
小数を整数に変換します。
  • 小数点以下の数は必ず切り捨てになります。

ラウンド値

Round(>数を入力<)
小数を丸め、整数に変換します。
  • Intとの違いは、Roundは小数点以下を四捨五入するところです。

整数を16進数に

Hex$(>整数を入力<)
整数を16進数に変換します。
  • 変換後の数値は文字列として返る点に注意してください。

整数をバイナリ文字列に

Bin$(>整数を入力<)
整数を2進数に変換します。
  • 変換後の数値は文字列として返る点に注意してください。

計算

絶対値

Abs(>数を入力<)
入力された値の絶対値を返します。

シーリング値

Ceil(>数を入力<)
数値を切り上げます。
  • 入力された値以上の、小数部を含まない最小の数値を返します。

フロアー値

Floor(>数を入力<)
数値を切り捨てます。
  • 入力された値以下の、小数部を含まない最大の数値を返します。

平方根

Sqr(>正数を入力<)
平方根を計算します。
  • 入力された正の数値の平方根を返します。
  • 負の数値を入れた場合、Sqrは-1を返します。

Log

Log(>数を入力<)
対数を計算します。
  • 10を底とする入力された数値の対数を返します。

Ln

Ln(>数を入力<)
自然対数を計算します。
  • 入力された数値の自然対数を返します。

指数関数

Exp(>数を入力<)
指数関数を計算します。
  • 入力された数値の指数関数を返します。

2値の最小

Min(>数を入力<, >数を入力<)
2の値を比較し、小さい側の数値を返します。
  • Min(5, 3)とした場合は、3を返します。

2値の最大

Max(>数を入力<, >数を入力<)
2の値を比較し、大きい側の数値を返します。
  • Max(5, 3)とした場合は、5を返します。

サインおよびコサイン

サイン

Sin(>角度を入力<)
入力された角度のサインを返します。

コサイン

Cos(>角度を入力<)
入力された角度のコサインを返します。

タンジェント

Tan(>角度を入力<)
入力された角度のタンジェントを返します。

アークサイン

ASin(>0 から 1 の間の数を入力<)
入力された数値のアークサインを返します。

アークコサイン

ACos(>0 から 1 の間の数を入力<)
入力された数値のアークコサインを返します。

アークタンジェント

ATan(>数を入力<)
入力された数値のアークタンジェントを返します。

y/xのアークタンジェント

ATan2(>Y を入力<, >X を入力<)
座標の原点(0,0)から入力された(X,Y)の座標を結んだ線の角度を計算して返します。

論理

Not

Not(>バイナリ番号を入力<)
入力された数値のビットを反転させた数値を返します。

文字列

左サブ文字列を抽出

Left$(>文字列を入力<, >文字数を入力<)
入力された文字列から、左から文字数分の文字列を返します。
  • Left$("ABCDあいうえ", 3)の場合、"ABC"を返します。

右サブ文字列を抽出

Right$(>文字列を入力<, >文字数を入力<)
入力された文字列から、右から文字数分の文字列を返します。
  • Right$("ABCDあいうえ", 3)の場合、"いうえ"を返します。

中央サブ文字列を抽出

Mid$(>文字列を入力<, >最初の文字番号を入力<, >文字数を入力<)
入力された文字列の左から文字番号の数だけ進んだ地点から、文字数分の文字列を返します。
  • Mid$("ABCDあいうえ", 2, 4)の場合、"CDあい"を返します。

文字列長

Len(>文字列を入力<)
入力された文字列の文字数を返します。
  • Len("ABCDE")の場合は、5を返します。

新しい行

NewLine$
改行の定数です。計算式内で文字列に改行をさせる時に使います。
  • 他のプログラミング言語でいう"vbCrLf"や"\n"と同じ意味です。

文字列を小文字に変換

Lower$(>文字列を入力<)
入力された文字列の中にあるアルファベットを小文字に変換します。

文字列を大文字に変換

Upper$(>文字列を入力<)
入力された文字列の中にあるアルファベットを大文字に変換します。

文字列内の文字列を検索

Find(>検証する文字列<, >検索する文字列<, >最初の文字<)
文字列内から特定の文字列が最初に現れる位置を返します。
  • 最初の文字は検索を開始する位置を数値で指定します。
  • 検索する文字列が見つからない場合は-1を返します。

文字列内の文字列を後ろから検索

ReverseFind(>検証する文字列<, >検索する文字列<, >最後の文字<)
文字列内を後ろから数えて特定の文字列が最初に現れる位置を返します。
  • Findが文字列の前から調べるの対し、ReverseFindは文字列の後ろから調べます。
  • 最後の文字は検索を開始する位置を数値で指定します。
  • 検索する文字列が見つからない場合は-1を返します。

ドラッグアンドドロップ

ドロップしたファイル数:

NDropped
ウィンドウにドロップされたファイルががいくつあるかを返します。

ドロップしたファイル名

Dropped$(>ファイルの番号を入力<)
ウィンドウにドロップされたファイルのパスを返します。

コマンドライン

コマンドラインを取得

CommandLine$
コマンドラインを返します。

コマンド項目を取得

CommandItem$(>文字列を入力<)

RGB値を取得

GetRGB(>R 値を入力<, >G 値を入力<, >B 値を入力<)
RGBで指定された色の数値を整数に変換します。
主に計算式で色を変更する時に使います。

※直接計算する場合は RGB値 = B*65536 + G*256 + R

RGB値のRの値を取得

GetRed(>RGB 値を入力<)
GetRGBでRGB値に変換した数値から、R値を取り出して返します。

RGB値のGの値を取得

GetGreen(>RGB 値を入力<)
GetRGBでRGB値に変換した数値から、G値を取り出して返します。

RGB値のBの値を取得

GetBlue(>RGB 値を入力<)
GetRGBでRGB値に変換した数値から、B値を取り出して返します。

クリップボード

クリップボードからテキストを取得

ClipText$
クリップボードに保管されているテキストを返します。
  • クリップボードに画像などのテキストではないデータが保管されていた場合は空文字""を返します。

高速ループ

ループインデックスを取得

LoopIndex(>ループ名を入力<)
ループインデックスを返します。
  • 指定された高速ループが現在何度目のループを行っているかの数値です。

計算式エディタにある関数ボタン

計算式エディタにある関数ボタンのリファレンスです。

Mod ... 余り ... x mod a → xをaで割った余り

 

その他
パワー ... Pow ... 累乗
bit-wise and ... ビット比較演算 論理積 ... 両方1なら1
bit-wise or ... ビット比較演算 論理和 ... どちらかが1なら1
bit-wise Xor ... ビット比較演算 排他的論理和 ... 異なる時に1

 

Pi ... π 円周率 3.141592654
Sin(x) ... 三角関数 サイン
Cos(x) ... 三角関数 コサイン
Tan(x) ... 三角関数 タンジェント
Spr(x) ... 平方根
Ln(x) ... 自然対数
Log(x) ... 対数 ... 10を底とした x の対数
Exp(x) ... 指数関数

 

Left$("文字列",a) ... 文字列の左から a個 文字を取り出す
Mid$("文字列",a,b) ... 文字列の左から a文字目から b個 文字を取り出す
Right$("文字列",a) ... 文字列の右から a個 文字を取り出す
Len("文字列") ... 文字列の文字数 ( 2バイト文字も1文字とカウント )
日本語版はUnicode対応なので2バイト1バイトは関係ないが、英語版はANSIなので2バイト文字は2文字とカウントされる
Left,Mid,Rightなどでも英語版は2バイト文字は1バイトずつ表示されてから本来の2バイト文字として表示される

 

val("文字列") ... 文字列を数値に変換 ... 数字以外の文字があると以降は無視される
頭にあって判別してくれる文字

- ... マイナスの値
0x ... 16進数を10進数に変換してくれる ... val("0xABC") → 2748
0b ... 2進数を10進数に変換してくれる ... val("0b101") → 5

 

str$(数値) ... 数値を文字列に変換(文字列)
Hex$(数値) ... 数値を16進数に変換(文字列) ... 頭に0x その後に変換した値
Bin$(数値) ... 数値を2進数に変換(文字列) ... 頭に0b その後に変換した値

 

$が付いてるものは文字扱い。数値を計算するところに入れるとエラー

数式使用例

  • 奇数か偶数かを判定
    数値 mod 2
    = 0…偶数
    = 1…奇数
  • 数値の各桁の数字を取得
    数値 mod 10/1…1の位の数字を取得
    数値 mod 100/10…10の位の数字を取得
    数値 mod 1000/100…100の位の数字を取得
    数値 mod 10000/1000…1000の位の数字を取得