calc VBA互換でVBScript.RegExpは非対応でしょうか?

calc VBAを使って罫線を引きたいでお世話になりました。ありがとうございました。

再び疑問と言うか、確認というかです。

CreateObjectを少し見ているのですが、ADODB.Streamを利用したutf-8テキストファイルは作成できました。

次いでVBScript.RegExpを利用して正規表現マッチを試しましたが、だめでした。

開発サイドにすれば、やはりOLEそれぞれに対応するのは大変なんでしょうかね?

何か私の方で見落としがあるかもしれないので、皆様にご確認して頂きたいと思います。よろしくお願いいたします。

ちなみにExcel2010では動作確認済みです。calcではエラーは出ませんが、msgboxに何も表示されません。

Win10、LibreOfficeバージョン: 6.4.1.2 (x64)です。


Sub VBScript_001()
'流石に無理なのか
'出典
'RegExpオブジェクト:Excel VBA入門
'http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_regexp.html
    Dim RE As Object
    Dim Match As Object
    Dim Matches As Object
    Dim strPat As String
    Dim strTest As String
    Dim strAns As String
    
    strTest = "abcdefgabcfdrabc"    '----検索される文字列
    Set RE = CreateObject("VBScript.RegExp")
    strPat = "abc"      '----検索するパターン
    
    With RE
        .Pattern = strPat       '----パターンを設定します
        .IgnoreCase = True  '----大文字と小文字を区別するFalseか、しないTrueか
        .Global = True      '----文字列全体を検索するTrueか、しないFalseか
    End With
    Set Matches = RE.Execute(strTest)
    
    For Each Match In Matches
        strAns = strAns & "一致する文字列が見つかった位置は、" & Match.FirstIndex & " です。"
        strAns = strAns & "一致した文字列は、" & Match.Value & " です。" & vbCrLf
    Next
    
    MsgBox strAns

    Set Match = Nothing
    Set Matches = Nothing
    Set RE = Nothing
End Sub

比較用サンプル。こいつは動くかな?


    REM 本サイトの色分けの挙動の都合上、コメントは削除したり、アポストロフィーからREMに変更したりしています。

    Option Explicit

    Sub VBScript_001()
        REM 流石に無理なのか
        REM 出典
        REM RegExpオブジェクト:Excel VBA入門
        REM http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_regexp.html
 
        Dim RE As Object
        Dim Match As Object
        Dim Matches As Object
        Dim strPat As String
        Dim strTest As String
        Dim strAns As String

        strTest = "abcdefgabcfdrabc"
        Set RE = CreateObject("VBScript.RegExp")
        strPat = "abc"

        With RE
    	    .Pattern = strPat      
    	    .IgnoreCase = True
    	    .Global = True
        End With
        Set Matches = RE.Execute(strTest)

        Msgbox(Matches.Item(2).FirstIndex)

    End Sub

Markdownなんか嫌いだ(汗

文法パーサ的な懸念点としては…

Itemプロパティと配列の添字の記法が両方丸括弧なんだけど、どうやって処理しよう?デフォルトプロパティの存在は?等。

Option VBASupport 1の機能だった

それと、tdf#118241

コメントありがとうございます。そのコードは問題ないですね。

コレクションを拾ってこないパターンですね。

ちなみに、私も


Sub ShowFolderList()
    Dim fs, f, f1, fc, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder("c:\user")
    Set fc = f.Files
    For Each f1 In fc
        s = s & f1.Name
        s = s & vbCrLf
    Next
    MsgBox s
End Sub

だめでした。tdf#118241で既知だったわけですね。
いつかは反映されるのでしょうか?

ここのルートってどうやったら入るんだろう?

https://opengrok.libreoffice.org/xref/core/basic/source/runtime/runtime.cxx?r=8b0a6949#1186