目的
2種類のサンプルコードを示す。
- Worksheet関数で参照セル範囲を文字列化する方法が面倒だったので、ユーザ定義関数を作成した。
- CSVファイルを読み込み、指定セルへコピーするマクロの雛形を作成した。
用途/特長
-
RangeToText Function
セル参照範囲を文字列化するユーザ定義関数。文字列にシート名を付与するので、別シートを参照する場合にも対応できる。 -
CopyFromCSV Subroutine
CSVファイルを読み込み、指定したセルに書き出すマクロ。第1引数には相対パス(..\sample.csv など)を使用できる。
Attribute VB_Name = "utils"
Option Explicit
Function RangeToText(rng As Range) As String
Dim sheetName As String
sheetName = rng.Parent.Name
RangeToText = "'" & sheetName & "'!" & rng.Address
End Function
Sub CopyFromCSV(path As String, rng As Range)
Dim absPath As String
Dim lineText As String
Dim splitText As Variant, result As Variant
Dim fp As Integer, i As Integer, j As Integer
absPath = ThisWorkbook.path & "\" & path
fp = FreeFile
result = rng ' result is One origin.
i = 0
j = 0
Open absPath For Input As fp
Do Until EOF(1)
i = i + 1
Line Input #fp, lineText
splitText = Split(lineText, ",") ' splitText is ZERO origin.
For j = 0 To UBound(splitText)
result(i, j + 1) = splitText(j)
Next j
Loop
Close #fp
rng = result
End Sub