メソッド集~VBA作成の最強部品~

メソッド1

最終行取得(getLastRow)

使い道

範囲を取得するのに使用。For~Nextなどの繰り返し処理とあわせて使用されることも多い

文法

最終行=Worksheets(シート名).cells(rows.count,列名).end(xlup).row

メソッド実際

  • クラスモジュール(clsLastRow)
    Function getLastRow() getLastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row End Function
  • 標準モジュール
      Sub method1()
    ‘クラス設定
    Dim myClass As clsLastRow: Set myClass = New clsLastRow
    ‘メソッド呼出⇒最終行出メソッド1
  • 最終行取得(getLastRow)
  • 使い道
  • 範囲を取得するのに使用。For~Nextなどの繰り返し処理とあわせて使用されることも多い
  • 文法
  • 最終行=Worksheets(シート名).cells(rows.count,列名).end(xlup).row
  • 対象シート、列名(列位置)は変更が必要
  • メソッド実際
  • クラスモジュール(clsLastRow)
    Function getLastRow() getLastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row End Function
  • 標準モジュール
      Sub method1()
    ‘クラス設定
    Dim myClass As clsLastRow: Set myClass = New clsLastRow
    ‘メソッド呼出⇒最終行出力
    MsgBox myClass.getLastRow End Sub

メソッド2

文字列の分割取得(getSplitToFirst,getSplitToLast)

使い道

区切り記号を含む文字列から特定の位置の文字列を取得するのに使用。今回で言えば「ABC-DEFG-HIJK」の文字列から最初の-の前の文字列(ABC)や最後の-の後の文字列を取得する

文法

変数:myTEMP = Split(対象文字列, 対象区切り記号)
 ⇒こじれでABC-DEFG-HIJKならば(0):ABC、(1):DEFG、(2):HIJKに分割される
   ⇒myTEMP(0)でABC、myTEMP(2)でHIJKが取得できる

  • 変数:myTEMPはVARIANT型で宣言してください

メソッド実際

  • クラスモジュール(clsSplit)
    Function getSplitToFirst(ByVal vWord As String) ‘引数:分割する文字列
    Dim myCheckWord As String: myCheckWord = “-” ‘位置に注目する区切り記号
    Dim myTEMP As Variant ‘分割した文字列を一旦格納するための変数 myTEMP = Split(vWord,myCheckWord) getSplitToFirst = myTEMP(0) End Function Function getSplitToLast(ByVal vWord As String) ‘引数:分割する文字列
    Dim myCheckWord As String: myCheckWord = “-” ‘位置に注目する区切り記号
    Dim myTEMP As Variant ‘分割した文字列を一旦格納するための変数 myTEMP = Split(vWord, myCheckWord) getSplitToLast = myTEMP(2) End Function
  • 標準モジュール
    Sub method2_1()
    ‘クラス設定
    Dim myClass As clsSplit: Set myClass = New clsSplit
    Dim myWord As String
    ‘対象文字列取得
    myWord = ActiveSheet.Range(“A2”).Value
    ‘メッセージの表示 
    MsgBox myClass.getSplitToFirst(myWord) End Sub   Sub method2_2()
    ‘クラス設定
    Dim myClass As clsSplit: Set myClass = New clsSplit
    Dim myWord As String
    ‘対象文字列取得
    myWord = ActiveSheet.Range(“A2”).Value
    ‘メッセージの表示 
    MsgBox myClass.getSplitToLast(myWord) End Sub
*****Sponsered Link***** ************************

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です