2023/08/15

ノーツで QR コード:#8)Excel VBA から LotusScript に変換 その③

前々回から続く Excel VBA の”モジュール”を LotusScript に移植するときに発生する文法エラーの撲滅作業です。


AscWがないので置き換え

VBA の AscW は Unicode の文字コードを返す関数です。

LotusScript には、同等の関数 Uni がありますので、書き換えます。

Function AscL(s As String) As Long
   If IsMs Then AscL = Uni(s) Else AscL = Asc(s)
End Function


配列の次元変更

VBA にも LotusScript にも配列を再定義する命令に ReDim があります。ただ、LotusScript では、配列の次元数が変更できない制約があります。この制約に引っかかるのが次の部分です。

なぜこのような宣言となっているのかよくわからないのですが、1回目の Redim は無用なので削除します。

また、この関数(qr_gen)の最後のあたりと dmx_gen 関数にも同様のコードがあるので、削除します。


vbNewLine の置き換え

vbNewLine は VBA の定数で、その名の通り改行を表します。特徴としては、プラットフォーム(OS)に応じた改行コードをセットしてくれます。

今回は、Windows を前提としますので、"vbNewLine" を "Chr(13) & Chr(10)" に置き換えます。2か所しかなかったのでベタ書きしました。


MsgBox のアイコン

Excel VBA では、MsgBox のアイコンを省略して、ウィンドウタイトルの設定ができるようです。

LotusScript では、アイコンを省略できません。エラーメッセージのようなので、 MB_ICONSTOP の 16 をセットします。

MsgBox TypeName(pa), 16, "Unknown type"


省略された引数の追加

次のエラーは、以下の部分です。

関数の定義を確認すると次の通りとなっていました。以前の作業で、引数の Optional を削除して、関数の中身をコメントアウトした関数ですね。

とりあえず、文法エラーの改善を目的に引数 xNam が省略された場合のコードを探すと、デフォルト値は "QR" であることがわかりました。

これを呼び出し元にセットして、エラーを回避します。

Call bc_2Dms(s, "QR")


文法エラーの対応はこれで完了

ここまでの対応で、スクリプトライブラリに移植した VBA のコードの文法エラーが完全に回避できました。

次回からは、内部を確認しながら、ノーツに組み込みを行います。
前回 ノーツで QR コード 次回

0 件のコメント:

コメントを投稿