前々回から続く 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 件のコメント:
コメントを投稿