VBAの関数から参照できるMeオブジェクトについて興味が湧いたので色々遊んでみた
結果、VBAのとほほな仕様が色々わかったでござる・・・・
Private Sub CommandButton1_Click() 'これはワークシート名が表示される MsgBox (Me.Name) 'これはアプリケーション名(Excel)が表示される MsgBox (Me.Application.Name) 'これはワークブック名が表示される MsgBox (Me.Application.ActiveWorkbook.Name) 'これはシート名が表示される 'しかし、最後の.Nameは自動補完できない。 'VBAは配列にオブジェクトを格納するとすべてObject型になってしまうからだと思われる 'ジェネリックがないとか、言語的には終わっている・・・・ MsgBox (Me.Application.ActiveWorkbook.Sheets(1).Name) '仕方がないので、自動補完ができるように型を自前でキャストする Dim activeWorkSheet As worksheet Set activeWorkSheet = Me.Application.ActiveWorkbook.Sheets(1) MsgBox (activeWorkSheet.Name) 'WorkSheetから取得できるCellsの型はRange型 Dim cells As Range Set cells = activeWorkSheet.cells 'sheets(1,1)がプロパティを自動補完できないのと同様に、cells(1,1)も自動補完できない 'cells(1, 1)も自動補完できるように自前でキャストしたいけれど、 'cells(1,1)の型が分からないでござる MsgBox (cells(1, 1).Value) End Sub