エクセル小僧:別のエクセルファイルから文字列をコピーするマクロ【解説編2】 [コンピューター]
別のエクセルファイル(以下、ワークブックと呼ぶ)から、文字列をコピーしてくるマクロのファイル名ボタンのマクロのコード解説 その2を記します。
ワークシート側の設定については、
http://blog.so-net.ne.jp/cheese999/2012-12-23
を参照して下さい。
マクロのコードについては、
http://cheese999.blog.so-net.ne.jp/2012-12-24
http://cheese999.blog.so-net.ne.jp/2012-12-25
を参照して下さい。
【解説2:シートが存在するか確認する関数】
今回は、ワークブックの中に、指定された名前のシートが存在するか調べる関数について説明します。
01:Function UFShtChk1(mySheet As Variant, Wb1 As Workbook) As Boolean
02: ' 【機能】シートが存在するか確認
03: ' 【引数】
04: ' mySheet : シート名
05: ' Wb1 : コピー元のエクセルファイル
06: ' 【変数】
07: Dim i As Integer ' 整数
08: ' 【コード】
09: UFShtChk1 = False
10: ' シート枚数分、繰り返す
11: For i = 1 To Wb1.Worksheets.Count
12: If Wb1.Worksheets(i).Name = mySheet Then
13: UFShtChk1 = True ' 見つかった!
14: Exit For
15: End If
16: Next
17:End Function
この関数は引数として、Workbook型のWb1と、Variant型のmySheetの2つを受け取ります。11行目から、16行目までをWb1で指定されるワークブックに含まれる全てのシートにつき、1シートずつ調べていきます。
11行目のWb1.Worksheets.Countで、Wb1ワークブックに含まれるシート枚数を調べます。12行目のWb1.Worksheets(i).Nameでiシート目のシートの名前を調べます。Wb1.Worksheets(i).NameとmySheetが同じとき、Wb1ワークブックにmySheetと同じ名前のシートが存在するとして、Trueを返り値にセットして関数を終了します。
mySheetと同じ名前のシートが存在しない場合、9行目でセットしたFalseを返します。
----------------------------------------
久々にU2聞いてました。。
U2- new years day (Lyrics)
I will be with you again.
人は独りでは生きていけないからね。
I... I will begin again.
もう一度、始めようと思う。。。
ワークシート側の設定については、
http://blog.so-net.ne.jp/cheese999/2012-12-23
を参照して下さい。
マクロのコードについては、
http://cheese999.blog.so-net.ne.jp/2012-12-24
http://cheese999.blog.so-net.ne.jp/2012-12-25
を参照して下さい。
【解説2:シートが存在するか確認する関数】
今回は、ワークブックの中に、指定された名前のシートが存在するか調べる関数について説明します。
01:Function UFShtChk1(mySheet As Variant, Wb1 As Workbook) As Boolean
02: ' 【機能】シートが存在するか確認
03: ' 【引数】
04: ' mySheet : シート名
05: ' Wb1 : コピー元のエクセルファイル
06: ' 【変数】
07: Dim i As Integer ' 整数
08: ' 【コード】
09: UFShtChk1 = False
10: ' シート枚数分、繰り返す
11: For i = 1 To Wb1.Worksheets.Count
12: If Wb1.Worksheets(i).Name = mySheet Then
13: UFShtChk1 = True ' 見つかった!
14: Exit For
15: End If
16: Next
17:End Function
この関数は引数として、Workbook型のWb1と、Variant型のmySheetの2つを受け取ります。11行目から、16行目までをWb1で指定されるワークブックに含まれる全てのシートにつき、1シートずつ調べていきます。
11行目のWb1.Worksheets.Countで、Wb1ワークブックに含まれるシート枚数を調べます。12行目のWb1.Worksheets(i).Nameでiシート目のシートの名前を調べます。Wb1.Worksheets(i).NameとmySheetが同じとき、Wb1ワークブックにmySheetと同じ名前のシートが存在するとして、Trueを返り値にセットして関数を終了します。
mySheetと同じ名前のシートが存在しない場合、9行目でセットしたFalseを返します。
----------------------------------------
久々にU2聞いてました。。
U2- new years day (Lyrics)
I will be with you again.
人は独りでは生きていけないからね。
I... I will begin again.
もう一度、始めようと思う。。。
新年明けましておめでとうございます。
昨年は大変お世話になりました。
皆様のご健康とご多幸を心よりお祈り申し上げます。
本年もよろしくご厚情のほどお願い申し上げます。
by yayu-chang (2013-01-03 23:15)
nice! ありがとうございます。
(^_0)ノ
yayu-changさん、
心温まるお言葉、ありがとうございます。
私にできることなら、なんでも。。。
できることは限られますが。。
(*_*)ノ
by cheese999 (2013-01-04 07:36)