2017年10月 / 09月≪ 12345678910111213141516171819202122232425262728293031≫11月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2008.05.24 (Sat)

C#.NETで可変数引数

引数が可変数のメソッドを宣言する場合、可変数にする引数部分に「params」を使って宣言すれば
簡単に可変数の引数を取ることができます。

/// 
/// 文字列を結合する
///

/// 結合する文字
///
private string StrCombine(params string[] str)
{
string result = "";
// 引数分ループ
for (int i = 0; i < str.Length; i++)
{
result += str[i];
}
return result;
}

// 使用時
private void button1_Click(object sender, EventArgs e)
{
string s = "";

s = StrCombine("f");
s = StrCombine("aa", "bb");
s = StrCombine("あああああ", "いいいい", "うううう", "えええ");
}

こんな感じで何個でも引数に渡せるようになります。

paramsは最後の引数にのみ使えるので

こういう宣言はOKだけど
private string StrCombine(int n, params string[] str)


こういう宣言はコンパイルエラーになります。
private string StrCombine(params string[] str, int n)
スポンサーサイト


 |  00:42  |  C#.NET  |  トラックバック(0)  |  コメント(0)  |  Top↑

2008.04.30 (Wed)

ファイルパスをつなげる関数&可変数引数

C#.NETで言う「System.IO.Path.Combine」みたいなファイルパスをつなげる関数を
VBAでも使いたいなと思って作りました。


Function Combine(ParamArray paths()) As String
Dim i As Integer
Dim path As String
Dim result As String
For i = LBound(paths) To UBound(paths)
path = CStr(paths(i))
If i = LBound(paths) Then
result = path
Else
If Right(result, 1) = "\" Then result = Left(result, Len(result) - 1)
If Left(path, 1) = "\" Then path = Mid(path, 2)
result = result & "\" & path
End If
Next

Combine = result
End Function


VBAで引数の数を可変数にする場合は「ParamArray」を使うそうです。
ちなみにParamArrayを使う場合、型はVariant型じゃないとだめみたい。

○ Function Combine(ParamArray paths() As Variant) As String
× Function Combine(ParamArray paths() As String) As String <-コンパイルエラー


使う場合は
path = Combine("aaa\","bbb")
path = Combine("aaa", "bbb\", "\ccc\")
こんな感じで。


 |  10:19  |  VBA  |  トラックバック(0)  |  コメント(0)  |  Top↑
 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。