VBおじさんの Power Apps : ①コントロールに値を入れるやり方が分からない!
VB/Access に慣れた人が Power Apps を使う際に陥るパターンが、
コントロールに値を入れるやり方が分からない、というものです。
Power Apps をご存じの方なら初歩ですが、 VBおじさんの最初の関門になります。
ここが分からないと挫折するので丁寧に解説します!
※便宜上、VB/Access に慣れた人を「VBおじさん」、と呼びます。
私もその一人です😀。共に頑張って生き残りましょう!
シンプルな例で説明します。まず、空の新規アプリでボタンとラベルを配置します。
【失敗例① VBの構文で書く】
で、ボタンを押したら "Hello World" と表示させたいのです。
で、ボタンの On Select がボタンのイベントだと気が付くので、そこに以下のように書いてみます。
特にエラーも出ないようなので F5 を押して実行してみるわけです。
で、動きません。まずこれで最初に「あれっ?」ときます。😑
Onselect = 処理の関数 という形にならないといけないので、VBのような書き方はできません。
【失敗例② コントロールに直接代入してみる】
「ああ、これはVBでいうプロパティのようなものだから、ここは値とか関数なんだな」とVBおじさんは気を取り直します。値代入の関数で SET というのがあるようだから、これを使おう、となります。VBおじさんは前向きです。
で、今度は SET を使ってLabelに値を代入します。
んー、なんかエラーが出てるけど気にせず F5 を押して実行します。
でもボタンを押しても思ったように動きません。
「俺は Hello World にもたどり着けないのか」 orz 😪
と、ここが挫折ポイントです。惜しい! 頑張れ VBおじさん!
今までだって力づくで何でもやってきたじゃないか。あきらめたらそこで試合終了ですよ。
【答え】
と、答えは以下のようにグローバル変数を挟む、ということなんですがこれが意外と分かりづらい。そのため逆引きで記事にしてみた次第です。
ボタンの Onselect には例えば以下のように書きます。
Set(strHelloWorld, "Hello World")
この、strHelloWorld はグローバル変数です。宣言なしで使えます。
VBおじさんはプレフィックスが好きなので文字型の str としています。
で、ラベル の Text に この変数を設定します。
で、 F5 を押して実行し、ボタンを押すとちゃんとHello Worldと出ました。
おめでとう VBおじさん!
これで Power Apps はおじさんの手足だよ! 割とマジでw