Excel VBA(エクセル マクロ) 関数集 サブルーチン Function

同じ命令はユーザー定義関数を作成し、サブルーチンとして呼び出す。
同じ関数を毎回作成する必要がなくなり、変更があってもユーザー定義関数のみ変更すれば良い。

・Function 関数名(引数1 As 型式 , 引数2 As 型式)As String〜 End Function
実際に作成したプログラムで説明する。

Sub関数はExcel VBAで実行するプログラム。
Function関数はSub関数からさらに呼び出す関数(ユーザー定義関数)。

以下のプログラムは、外部データ取り込み部分をユーザー定義関数化して、他のマクロから呼び出せるようにした。


[本体部分]

Sub torikomi()
  Dim path As String
  Dim path1 As String
  Dim path2 As String
  Dim page As String
  path1 = Sheets("Sheet2").Cells(2, 1)
  path2 = Sheets("Sheet2").Cells(3, 1)
  path = path1 & "\" & path2
  page = "データ"
  Sheets("Sheet2").Cells(4, 1)=torikomi1 path, page
  
  torikomi1関数を呼び出している。
  引数としてpath(外部データ取り込みアドレス)、page(取り込むシート)を渡している。
  戻り値をSheets("Sheet2").Cells(4, 1)に代入するようにしている。


End Sub


[サブルーチン部分]

Function torikomi1(path As String, page As String) As String

Function関数設定部分。
引数path、pageを文字列で受け取る設定をしている。
戻り値を文字列と設定している。


  Sheets(page).Cells.Clear
  With Sheets(page).QueryTables.Add(Connection:="TEXT;" & path, Destination:=Sheets(page).Range("A1"))
  
  引数path、pageを使用

  
  .Name = "test"
  .FieldNames = True
  .RowNumbers = False
  .RefreshPeriod = 0
  .RefreshOnFileOpen = False
  .Refresh BackgroundQuery:=False
  .RefreshStyle = xlInsertEntireRows
  .SavePassword = False
  .SaveData = True
  .FillAdjacentFormulas = False
  .PreserveFormatting = True
  .AdjustColumnWidth = True
  .TextFilePromptOnRefresh = False
  .TextFileStartRow = 1
  .TextFilePlatform = 932
  .TextFilePlatform = xlWindows
  .TextFileParseType = xlFixedWidth
  .TextFileTextQualifier = xlTextQualifierDoubleQuote
  .TextFileConsecutiveDelimiter = False
  .TextFileTabDelimiter = False
  .TextFileSemicolonDelimiter = False
  .TextFileCommaDelimiter = False
  .TextFileSpaceDelimiter = False
  .TextFileTrailingMinusNumbers = True
  .TextFileColumnDataTypes = Array(5, 9, 1, 9, 2)
  .TextFileFixedColumnWidths = Array(10, 2, 8, 4, 200)
  .Refresh
  .Refresh BackgroundQuery:=False
  .Parent.Names(.Name).Delete
  .Delete
  End With
  torikomi1 = "完了"
  
  戻り値は関数名torikomi1に入れる。
  完了という文字列を入れている。


End Function

以上が使用方法。

忍者Admaxのテキスト広告で収入UP!

実践!ExcelデータベースTOP