予約語を判定するFunction

予約語を判定するFunction

作った。

予約語リストを手に入れる

手っ取り早く

kazusa-pg.com

こちらの方がうpしているやつをいただいた。

ありがとうございます。

予約語を判定するメソッドのコード

むつかしく考えずに……。

リスト1 標準モジュール
Public Function isReservedWord(ByVal targetStr As String) As Boolean
  Const RESERVED_WORDS As String = _
    "Abs AddressOf And Any Array As Attribute Boolean ByRef Byte " & _
    "ByVal Call Case Cbool Cbyte Ccur Cdate CDbl Cdec Cdecl Cint " & _
    "Circle CLng CLngLng CLngPtr Close Const CSng CStr Currency " & _
    "CVar CVErr Date Debug Decimal Declare DefBool DefByte DefCur " & _
    "DefDate DefDbl DefDec DefInt DefLng DefLngLng DefLngPtr DefObj " & _
    "DefSng DefStr DefVar Dim Do DoEvents Double Each Else ElseIf " & _
    "Empty End EndIf Enum Eqv Erase Event Exit False Fix For Friend " & _
    "Function Get Global GoSub GoTo If Imp Implements In Input InputB" & _
    "Int Integer Is Lbound Len LenB Let Like LINEINPUT Lock Long " & _
    "LongLong LongPtr Loop Lset Me Mod New Next Not nothing null On " & _
    "Open Option Optional Or ParamArray Preserve Print Private PSet " & _
    "Public Put RaiseEvent ReDim Rem Resume Return Rset Scale Seek " & _
    "Select Set Sgn Shared Single Spc Static Stop String Sub Tab Then " & _
    "To True Type TypeOf Ubound Unlock Until Variant VB_Base VB_Control " & _
    "VB_Creatable VB_Customizable VB_Description VB_Exposed VB_Ext_KEY " & _
    "VB_GlobalNameSpace VB_HelpID VB_Invoke_Func VB_Invoke_Property " & _
    "VB_Invoke_PropertyPut VB_Invoke_PropertyPutRefVB_MemberFlags " & _
    "VB_Name VB_PredeclaredId VB_ProcData VB_TemplateDerived " & _
    "VB_UserMemId VB_VarDescription VB_VarHelpID VB_VarMemberFlags " & _
    "VB_VarProcData VB_VarUserMemId Wend While With WithEvents Write Xor"
  isReservedWord = True
  Dim arr() As String
  arr = Split(RESERVED_WORDS)
  Dim i As Long
  For i = LBound(arr) To UBound(arr)
    If targetStr = arr(i) Then Exit Function
  Next
  isReservedWord = False
End Function

超絶力ワザwww

使ってみる

f:id:akashi_keirin:20191011230803j:plain

こんな感じ。

おわりに

あいかわらず、役に立つ場面が思い浮かばない。