Excelスキルアップコレクション
           〜 Something U Want 〜


Google  

WWW を検索
Excelスキルアップコレクション内 を検索
 @     Top  >     Excelプロフェッショナルエンジニアテクニック Topics  >     (10) モジュール内のx行目〜x+y行目を調べる

 
(10) モジュール内のx行目〜x+y行目を調べる

 CodeModuleのLinesプロパティを用いると、モジュール内のコードそのものにVBAからアクセスすることができます。

 Visual Baisc プロジェクトへのアクセスを許可します。

  「(04) Visual Baisc プロジェクトへのアクセスを許可する方法」

 下記サンプルコードをModule1に記載して下さい。Module1の3行目〜22行目にアクセスして記載内容を取得する例です。
<Module1>

 1行目:  Option Explicit
 2行目:  
 3行目:  Public Sub Sample_Lines_01()
 4行目:  
 5行目:      ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 6行目:      ' 参照設定:
 7行目:      ' 「Microsoft Visual Basic for Application Extensibility」
 8行目:      ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 9行目:      
10行目:      ' このブックのVBProjectをオブジェクト変数に格納する。
11行目:      Dim Obj As VBIDE.VBProject
12行目:      Set Obj = ThisWorkbook.VBProject
13行目:  
14行目:      ' Linesプロパティを用いて、3行目〜22行目のコードを調べる。
15行目:      Dim code As String
16行目:      code = Obj.VBComponents("Module1").CodeModule.Lines(3, 22)
17行目:      MsgBox code
18行目:  
19行目:      ' オブジェクトを破棄する。
20行目:      Set Obj = Nothing
21行目:  
22行目:  End Sub
 ここで利用しているのはCodeModuleのLinesプロパティです。
Lines(x,y)モジュール内のx行目からx+y行目を返す。

 このサンプルコードを実行すると、以下のメッセージボックスが表示されます。
  
ページの先頭へ