ボタンはレイアウト上に配置してスクリプトの起点として使いますが、通常はレイアウトモードでしか名称変更できません。
それをユーザーが変更できるようにする方法です。
ご存知の通り直接ボタン名を変更するスクリプトはありませんから、擬似的に再現します。
概要
次のように、ボタン名入力フィールドと、ボタンがあるとします。
ボタンのスクリプトは、例としてカスタムダイアログでボタン名を表示するようにしました。
ボタン名フィールドの内容を以下のように変えると、ボタン名も変更されているように見えます。
という内容です。
方法
すでに想像できたかもしれませんが、ボタンとボタン名表示は各々独立させています。
フィールドの定義は以下の2つ。
- ボタン名入力:テキストタイプ。実際に入力するフィールド。
- ボタン名表示:計算タイプ。ボタンの上に表示されている文字列。
ボタン名表示の計算内容は以下の通りです。
- Case ( Length ( ボタン名入力 ) ≥ 10 ; TextSize ( ボタン名入力 ; 12 ) ; TextSize ( ボタン名入力 ; 20 ) )
表示は入力されたそのままでも良いのですが、ボタン名入力の長さによってはボタンからはみ出してしまいます。そのため、長さによってフォントサイズを変更するようになっています。
上記の例では10文字以上でサイズが12、9文字以下はサイズが20になります。設置するボタンの大きさによって条件数やサイズを変更すると良いでしょう。
ポイントとして、計算結果は「テキスト」である必要があります。テキストの書式設定を変更する場合、計算結果が「テキスト」でないと反映されません。
レイアウト上には以下の3つを配置しています。
- ボタン名入力フィールド(ユーザーが入力できるフィールド)
- ボタン名表示フィールド(表示用に計算した結果の文字列、フォントは太ゴシック)
- ボタン(名前なしでスクリプトのみ設定)
表示フィールドをボタンと同じ大きさにして、上に重ねます。
以上の設定で、ボタン名の変更ができるようになり、かつボタン名入力の長さによってフォントサイズが調整されるようになりました。
使用例
「これ何に使うの?」と言われそうなので使用例を1つ。
ファイル名とファイルパスを入力しておくと、ボタンからそのファイルを実行できるようにする例。
ファイル名はボタン名になっています。
ボタンのスクリプトは Eventを送信 の ファイル/アプリケーションを開く で計算を指定します。
計算の内容にはファイルパスフィールドを指定すればOKです。
これで、ボタンをクリックするとファイルパスに指定したファイルが実行されます。
上記の例では電卓が起動します。
豆知識として、”C:WindowsSystem32″ 内のアプリケーションであれば、その名前だけ指定しても実行されます。
- 電卓なら「calc」
- ペイントなら「mspaint」
と入力するだけでOKです。
また、上記の設定ではファイルパスを絶対パスで指定していますが、相対パスで指定することも可能です。
その方法は少し複雑になるので別記事に分けたいと思います。