- 締切済み
エクセル マクロで別のブックに貼り付けたい!
作成したシートを別のブック(既存)にマクロを使って貼り付けたい のですが、いろいろ調べた結果以下のようにはすることができました。 ---------------------------------------------------------------- Sub SaveSheet() Dim sFileName As String 'ファイル名の設定 sFileName = "C:\a\test.xls" 'シートをコピーして新規ブックを作成 Sheets(Array("Sheet1", "Sheet2")).Copy '作成したブックの保存 ActiveWorkbook.SaveAs sFileName End Sub ---------------------------------------------------------------- これはとあるサイトで見つけたもので、私自身が作成したものでは ありません。 このマクロの問題は、 ○あらたにブック(シート)が作成されること (マクロ実行時は上書きになるので、変更できなくても使えないわけ ではない) ○元データはシート丸ごとであり、セル範囲を選択できない。 ○貼り付けるシートにおいても、任意の場所を起点とできない。 ということです。 整理しますと、『作成したシートの任意のセル範囲を、別に存在する ブックに、任意のセルを起点として貼り付けたい』 ということです。 どうかよろしくお願いします。m(_ _)m
- heimdal
- お礼率20% (5/25)
- オフィス系ソフト
- 回答数6
- ありがとう数4
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
Wendy02です。 この設定部分、チェックのために変更しただけなので、 > Book_B = "C:\MY Documents\B.xls" Book_B = "B.xls" 元に戻しておいてください。 急いでいたので、そのままになってしまいました。 スミマセン。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。Wendy02です。 >オートフィルタのプルダウンメニューなどを含む領域が選ばれてしまい、結局すべてのデータ(ある意味シート丸ごと)がコピーされてしまったのであきらめていました。 気が付かなくてすみません。 >currentregionでなんとかなるとは思ったんですけどね・・・ CurrentRegion で範囲を取る場合は、Offset で一行下げて(-1)、Resizeで、CurrentRegion の行数(Rows.Count)から-1を引くと、タイトル行がない部分の範囲が取れます。コードの中に、二種類の方法が書いてありますので、研究してみてください。今回は、AutoFilterのRangeを使っています。 それから、バグを見つけましたので、最初から書き直しました。定数で設定するのはやめることにしました。他のフォルダにある場合、既に開いていた場合に、設定できないことが分りました。なお、ご自分でマクロをお作りになる場合は、二つのブックを開いておけば、単に、Set Bk1 = Workbooks(Book_A) : Set Bk2 = Workbooks(Book_B) だけで、その前の部分は、まったく必要ありません。 '-------------------------------------------------- Sub CopySelectedRangeR() 'オートフィルタの領域をコピーする Dim BK1 As Workbook Dim BK2 As Workbook Dim dummy As Variant Dim Book_A As String Dim Book_Ar As String Dim Sheet_A As String Dim Cell_A As String Dim Cell_A_Last As String Dim Book_B As String Dim Book_Br As String Dim Sheet_B As String Dim Cell_B As String '設定項目 Book_A = "A.xls" Sheet_A = "a" Cell_A = "A7" Cell_A_Last = "L300" 'CELL_Aの終点 Book_B = "C:\MY Documents\B.xls" Sheet_B = "a" Cell_B = "A7" 'ブックの存在の確認 If Dir(Book_A) = "" Then _ MsgBox Book_A & " は、同じフォルダにないか、ブックが見当たりません。", vbInformation: Exit Sub If Dir(Book_B) = "" Then _ MsgBox Book_B & " は、同じフォルダにないか、ブックが見当たりません。", vbInformation: Exit Sub On Error GoTo Quit 'ブック名を取る If InStr(Book_A, "\") > 0 Then Book_Ar = Mid$(Book_A, InStrRev(Book_A, "\") + 1) Else Book_Ar = Book_A End If If InStr(Book_B, "\") > 0 Then Book_Br = Mid$(Book_B, InStrRev(Book_B, "\") + 1) Else Book_Br = Book_B End If dummy = Evaluate("[" & Book_Ar & "]" & Sheet_A & "!" & Cell_A) If IsError(dummy) Then Set BK1 = Workbooks.Open(Book_A) Else Set BK1 = Workbooks(Book_Ar) End If dummy = Evaluate("[" & Book_Br & "]" & Sheet_B & "!" & Cell_B) If IsError(dummy) Then Set BK2 = Workbooks.Open(Book_B) Else Set BK2 = Workbooks(Book_Br) End If '実行準備 If BK1.Worksheets(Sheet_A).AutoFilterMode = False Then Application.Goto BK1.Worksheets(Sheet_A).Range(Cell_A) MsgBox "オートフィルターモードになっておりません。": GoTo Quit Else If BK1.Worksheets(Sheet_A).FilterMode = False Then Application.Goto BK1.Worksheets(Sheet_A).Range(Cell_A) If MsgBox("オートフィルタが選択モードになっておりませんが、続行しますか?", vbOKCancel) = vbCancel Then GoTo Quit End If End If If WorksheetFunction.CountA(BK2.Worksheets(Sheet_B).Range(Cell_B).CurrentRegion) > 0 Then Application.Goto BK2.Worksheets(Sheet_B).Range(Cell_B) If MsgBox("データがあるようです。データを削除してよろしいですか?", vbOKCancel) = vbOK Then BK2.Worksheets(Sheet_B).Range(Cell_B).CurrentRegion.ClearContents Else GoTo Quit End If End If '領域をコピー With BK1.Worksheets(Sheet_A).AutoFilter.Range .Offset(1).Resize(.Rows.Count - 1).Copy _ BK2.Worksheets(Sheet_B).Range(Cell_B) End With '' 以下の方が一般的です。 ' With BK1.Worksheets(SHEET_A).Range(CELL_A).CurrentRegion ' .Offset(1).Resize(.Rows.Count - 1).Copy _ ' BK2.Worksheets(SHEET_B).Range(CELL_B) ' End With Application.Goto BK2.Worksheets(Sheet_B).Range(Cell_B) MsgBox "コピー完了しました。" & vbCrLf & "保存は、手動で行ってください。" & vbCrLf & "終了!" Quit: If Err.Number > 0 Then MsgBox Err.Number & ": " & Err.Description End If Set BK1 = Nothing: Set BK2 = Nothing End Sub '--------------------------------------------------
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。Wendy02です。 返事が遅くなってすみません。 #取得セル範囲 A7:L300 # セル範囲を取得する際、明示的に指示するのではなく、データの入っているセル範囲を取得できれば言うこと無しです。 通常、オートフィルタの場合は、選択モードになっていれば、それをそのまま、範囲を取得すれば、いらないデータは含まれずにコピー&ペーストできるはずなのです。 ためしに以下のコードを試してみていただけますか? このコードは、別の同一フォルダ上のA,B以外のブックでも、コピーする側でも、ペーストされる側でも、「標準モジュール」にありさえすれば、問題なくコピーされると思います。同一フォルダーにない場合は、ファイル名にドライブ\フォルダから、フルネームで書いてください。また、最初に、開けていない場合は、自動的にブックを開けるように作られています。 Sub CopySelectedRange() 'オートフィルタの領域をコピーする Dim BK1 As Workbook Dim BK2 As Workbook Dim dummy As Variant '設定項目 Const BOOK_A As String = "A.xls" 'ブック名 Const SHEET_A As String = "a" 'シート名 Const CELL_A As String = "A7" '基点のセル番地 Const CELL_A_LAST As String = "L300" 'CELL_Aの終点 Const BOOK_B As String = "B.xls" Const SHEET_B As String = "a" Const CELL_B As String = "A7" 'ブックの存在の確認 If Dir(BOOK_A) = "" Then _ MsgBox BOOK_A & " は、同じフォルダにないか、ブックが見当たりません。", vbInformation: Exit Sub If Dir(BOOK_B) = "" Then _ MsgBox BOOK_B & " は、同じフォルダにないか、ブックが見当たりません。", vbInformation: Exit Sub On Error GoTo Quit dummy = Evaluate("[" & BOOK_A & "]" & SHEET_A & "!" & CELL_A) If IsError(dummy) Then Set BK1 = Workbooks.Open(BOOK_A) Else Set BK1 = Workbooks(BOOK_A) End If dummy = Evaluate("[" & BOOK_B & "]" & SHEET_B & "!" & CELL_B) If IsError(dummy) Then Set BK2 = Workbooks.Open(BOOK_B) Else Set BK2 = Workbooks(BOOK_B) End If '実行準備 If BK1.Worksheets(SHEET_A).AutoFilterMode = False Then Application.Goto BK1.Worksheets(SHEET_A).Range(CELL_A) MsgBox "オートフィルターモードになっておりません。": GoTo Quit Else If BK1.Worksheets(SHEET_A).FilterMode = False Then Application.Goto BK1.Worksheets(SHEET_A).Range(CELL_A) If MsgBox("オートフィルタが選択モードになっておりませんが、続行しますか?", vbOKCancel) = vbCancel Then GoTo Quit End If End If If WorksheetFunction.CountA(BK2.Worksheets(SHEET_B).Range(CELL_B).CurrentRegion) > 0 Then Application.Goto BK2.Worksheets(SHEET_B).Range(CELL_B) If MsgBox("データがあるようです。データを削除してよろしいですか?", vbOKCancel) = vbOK Then BK2.Worksheets(SHEET_B).Range(CELL_B).CurrentRegion.ClearContents Else GoTo Quit End If End If '領域をコピー BK1.Worksheets(SHEET_A).Range(CELL_A & ":" & CELL_A_LAST).Copy _ BK2.Worksheets(SHEET_B).Range(CELL_B) Application.Goto BK2.Worksheets(SHEET_B).Range(CELL_B) MsgBox "コピー完了しました。" & vbCrLf & "保存は、手動で行ってください。" & vbCrLf & "終了!" Quit: If Err.Number > 0 Then MsgBox Err.Number & ": " & Err.Description End If Set BK1 = Nothing: Set BK2 = Nothing End Sub
補足
ありがとうございます。 うまくコピーができました。感激です。 もう一つよろしいでしょうか? 前回コピーする範囲について書かせて頂いたのですが、 一覧から取得するので、その一覧そのもの列は日々増えていきます。 ですので、オートフィルタで選択モードにした際に データの入っている範囲を自動で取得できればな と思った次第です。 私自身も以前ない知恵をしぼって一度試してみたのですが、 オートフィルタのプルダウンメニューなどを含む領域が 選ばれてしまい、結局すべてのデータ(ある意味シート丸ごと) がコピーされてしまったのであきらめていました。 currentregionでなんとかなるとは思ったんですけどね・・・ お時間があればよろしくお願いします。m(_ _)m
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 #1のWendy02です。 その回答の補足の内容って、最近、私が作ったばかりの話に良く似ています。一応、私の作ったものも、参考にしていただけますか?ただ、コードだけみても、分りにくいかもしれません。もう少し、詳しい情報として、サンプル用データと、全体の構成が分れば、新たに考えてみます。私の場合、必ず、エラーオプション処理をしますので、コードが長くなってしまいますので。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1918979 (http://security.okwave.jp/kotaeru.php3?q=1918979) ExcelVBAを使っての振り分け処理 つまり、これは、最初に、「初めに振り分け用のシートありき」、「初めに条件ありき」というコードの構造になっているわけなのです。 たぶん、オートフィルタの Range("A1").CurrentRegion だけで、範囲は取れるはずです。非表示データは、コピーされませんので、そのまま貼り付けが聞きます。 つまり、 例えば、サブルーチンで、 rng というのは、 Range("A1").CurrentRegion のことで、これと、shName(シート名)を引数にして、貼り付けてしまいます。 With rng .Offset(1).Resize(.Rows.Count - 1).Copy _ wb.Worksheets(shName).Range("A65536").End(xlUp).Offset(1) End With とすればよいわけですね。ただし、私の設計の仕方は、wb は、必ず明示的に指定します。
補足
何度もありがとうございます。 せっかくコードを載せて頂いたのですが私にはちょっと・・・ サンプルというか、具体的にしたいことを書きますので お時間があれば設計をよろしくお願いします。 一覧のデータをオートフィルタで欲しいデータだけ 表示させます。 その後 コピー元 ワークブック A シート a 取得セル範囲 A7:L300 から コピー先 ワークブック B シート a コピー先(起点となる)セルA7 にデータをコピーします。 以上です。 セル範囲を取得する際、明示的に指示するのではなく、 データの入っているセル範囲を取得できれば言うこと無しです。 好き勝手書きましたが、何卒お願いします。
- papayuka
- ベストアンサー率45% (1388/3066)
意味が違うかも知れませんが、、、 参考程度にはなるでしょうか。 新規ブックを2つ開いて、一方に下記マクロをコピペ 実行するとマクロを記述したブックのSheet1!A1:A10 をもう一方のブックのSheet1のA列にコピーします。 (実行するたびに下に追加コピー) Sub Test() Dim wb As Workbook, r As Range Set r = ThisWorkbook.Worksheets(1).Range("A1:B10") For Each wb In Workbooks If Not wb Is ThisWorkbook And _ Windows(wb.Name).Visible Then r.Copy Destination:= _ wb.Worksheets(1).Range("A65536").End(xlUp).Offset(1, 0) Exit For End If Next wb End Sub
お礼
コピーが出来ました!!! ありがとうございます。 ブック名やシート名、セル範囲は変更可能ですよね。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >『作成したシートの任意のセル範囲を、別に存在するブックに、任意のセルを起点として貼り付けたい』 それは、マクロを対話型にするという意味なのでしょうか? 実務上では、対話型にしたら、逆に使いづらいような気がします。 ふたつのブックを開けておいて、コピー&ペーストでよいと思うのですが、それじゃいけないのでしょうか?そのために、マクロを必要とするとは思えないのですが。 「シートの任意のセル範囲を→他のブックの任意のシートの任意のセル」 に出てくる「任意」は、任意というよりも、その場所自体を、マクロで決めていくような設定をしなければ、マクロとしての意味がありませんね。それは、元の質問に出ていたようなマクロとは、考え方自体が違いますね。
補足
早速解答ありがとうございます。 私の説明がわるかったみたいですね。 おっしゃるとおり、ふたつのブックを開けておいて、コピー&ペースト で全然問題ありません。一つや二つなら・・・ 実は、この操作には流れがありまして、一覧をフィルタで条件別に 表示→その結果を別のブックに貼り付け というこで その『条件別』が結構あります。 そこで、マクロを利用して一度でこの動作を実現させようとしている のです。 ちなみに、任意とは、対話型で指定するわけではなく常に一定です。 シートを丸ごとコピーするのではなく、指定した、つまり任意の場所を こちらで指定しておいてマクロを実行させたいのです。 調べていく中で、rangeというものを使うとセル範囲等を指定できる らしいのですが、いかんせんスキルがないものですからご教授願えたら と思いまして・・・ よろしくお願いします。
関連するQ&A
- Excel VBAでシートを別なBookにするには?
Book ABC.xls の Sheet("TEST") を書式と値(数式でなく)だけコピーし別なBookとして保存したいのです。 その際、Sheets("LOGIC").Range("A1")を、マクロで1回目は2、2回目は3とし、12回目の13まで行います。Sheets("TEST")はSheets("LOGIC").Range("A1")を参照しているので、その結果として、Sheets("TEST")の値は当然12通りに変化します。 新たに自動作成される別なBookは Sheet1~Sheet12の12枚のシートをもち、それぞれがABC.xls の Sheets("TEST") の12通りのコピーとなるようにしたいのです。 このようなマクロはどう作ればいいのでしょうか? お手上げです。何卒よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBA ブック出力方法について(2)
いつもお世話になっています。 以前にも同じ内容の質問をさせて頂いた者です。 回答を頂きましたが、当方説明不足および勉強不足のため、 再度質問させて頂きます。 元のファイルから、特定のセル部分のみを出力先ファイル(新規.xls)へブック出力したいのですが 方法がわかりません。 当方にて記述したVBAは以下ですが、満足のいく作成ができておりません。 矛盾および誤りを指摘できる方はご指摘頂けないでしょうか。よろしくお願いします。 Sub ブック出力() Sheets("Sheet1").Select Sheets("Sheet1").Range("リスト").Copy Sheets("Sheet1").Range("A1:J12").Paste Workbooks.Add ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\新規.xls" End Sub ※リスト→出力元ファイルのA1:J12までの範囲 ※出力元ファイル、出力先ファイルのシート名は不変です。(両方ともsheet1) ※出力先セル、出力元セルともに範囲は同じです。(両方ともA1:J12)
- ベストアンサー
- オフィス系ソフト
- Excel マクロによる新規ブック作成について
Excelで質問です。 ボタンをクリックすると新規ブックを作成するようにしたいのですがうまくいかず・・・。何かいい方法はないでしょうか。よろしくお願いします。 Sub ボタン_Click() Workbooks.Add.SaveAs Filename:="C:\temp\1-50.xls" End Sub にてブックを作成することは出来るのですが、その作成したExcelのシートの数を50個にし、さらにそのシートに「1」から「50」というシート名を付けたいのですが不可能でしょうか。 よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- エクセルマクロ
入力したワークシートを 新しいブックにコピーして保存するマクロを作成しました。 ただ下記の様に保管すると、 数式もそのまま元のエクセルファイルの数式を参照してしまいます。 下記のマクロをあまり変更しないで、 値貼付け(もしくは値貼付けしながら、新しいブックへコピー) するにはどの様に変更するといいでしょうか? よろしくお願いします。 'Sub newfilesave() Sheets("Sheet1").Copy '名前を付け、ファイル形式も決めてデスクトップに日付を付けて保存する。。 'ActiveWorkbook.SaveAs _ ' Filename:="C:\Users\xxxxx\Desktop\" & Format(Now(), "yyyymmdd_hhmm"), _ ' FileFormat:=xlOpenXMLWorkbook 'End Sub
- ベストアンサー
- Excel(エクセル)
- Excel 2007 マクロ 別ブックのシートをコピーする方法
Excel 2007 マクロ 別ブックのシートをコピーする方法 別ブックのシートをコピーして アクティブなブックのシートにコピーしたいと思います。 下記マクロを作成しました。 貼り付ける際に、クリップボードに保存するかどうか 聞かれるメッセージが表示されてうまくいきません。 またもっとシンプルな書き方があればアドバイスお願いします。 Sub 取り込み() Dim wb As Workbook Set wb = Workbooks.Open("\") Sheets("Sheet1").Select Cells.Select Selection.Copy ThisWorkbook.Activate ThisWorkbook.Sheets("特定").Select ActiveSheet.Cells(1, 1).Select ActiveSheet.Paste wb.Close End Sub
- ベストアンサー
- その他MS Office製品
- 新しく作成したBOOKを上書き保存
いつも大変お世話になっております。 新規作成したBOOKを指定の場所に、指定の名前で保存しようとしています。 例)C:\ファイル名.xls 保存したいものの sFileName="C:\ファイル名.xls" WorkbookName="ファイル名.xls" ActiveWorkbook.SaveAs Filename:=sFileName '保存して閉じる Workbooks(WorkbookName & "_" & sNowTime & ".xls").Close SaveChanges:=True 上記のように設定したところ、 既にファイルがある場合はウィンドウが表示されます。 その際、MsgBoxにフルパスで表示されてしまい、大変見づらく困っています。 また、新規作成したブックは必ず上書き保存で良いものになっています。 C:\ファイル名.xls というものが既にある場合は、 メッセージを出さず、上書き保存にしたいと思っています。 下記のように、既にブックがあるかも確認したのですが、 違い?が良く分からず、上手くいきませんでした。 '======================使わない上に、プログラムが間違っているためコメントアウトしてます。=========-- 'Dim buf As String ' buf = Dir(sFileName) 'ファイルの存在を調べる ' If buf <> "" Then ' '保存 ' ActiveWorkbook.SaveAs Filename:=sFileName '保存して閉じる ' ' '=================ファイル作成完了 ' Else ' ActiveWorkbook.SaveAs Filename:=sFileName '保存して閉じる ' Workbooks(WorkbookName & "_" & sNowTime & ".xls").Close SaveChanges:=True ' End If '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 質問内容がぐちゃぐちゃしてきたので、まとめさせて頂きます。 ●新規ブックを指定場所に、指定名で保存したい ●指定場所に指定名のブックがあった場合、メッセージを出さずに上書き保存したい です、よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- Excel2000マクロ_ブック名に一貫性が無くて既に開いている物の間のコピー等
何方か、回答をお願いします。 (A.xlsのAAAシート)(B.xlsのBBBシート)この2つ間のセル値をコピーしたい のですが(共にブック名シート名に一貫性は無しで、既に開いています。) マクロ付.xlsに下記のマクロを書いてA.xlsのAAAシートがアクティブの時にマクロを 実行してtwwにAAAシートをセット出来たのですが、Bk1にB.xlsのBBBシートをセット出来ません。 Application.Waitで止めている間にアクティブシートを変えようとしましたが駄目 Application.Dialogs(xlDialogWorkbookUnhide).Showでも駄目でした。 何方か、マクロ実行中のアクティブシート変更方法を教えて下さい。 又、この様なブック名に一貫性が無くて既に開いている物の間のコピー等はどの様に するのか参考になる物が有れば教えて下さい。 Sub コピー() Dim Bk1 As Worksheet Dim tww As Worksheet Set tww = ActiveWorkbook.Sheets(1) 'ここが分かりません Set Bk1 = ActiveWorkbook.Sheets(1) '-------1個目 tww.Range("D10").Value = Bk1.Range("H9").Value Set Bk1 = Nothing: Set tww = Nothing End Sub
- ベストアンサー
- オフィス系ソフト
- エクセル2000のマクロについて再び
新しいブックを作りさらに他のブックで作成されているシートをコピーして移動するというマクロを作ります。この時、新しく作ったブックの名前がBook1にならないとその時点でマクロのエラーになりなってしまいますが、たまにBook2になってしまうときがあります。必ずBook1になると指定することはできないのでしょうか。 Sheets(Array("sheet1", "sheet2", "sheet3")).Select Sheets(Array("sheet1", "sheet2", "sheet3")).Copy →新しいシートを作成 Workbooks.Open Filename:="C:xxx\○○\△△.xls" Sheets.Copy after:=Workbooks("book1").Sheets(2) →ここで、Book1が存在しないとエラーになってしまう。 お願いします。
- 締切済み
- オフィス系ソフト
- エクセル bookの名称
Sub 登録() Workbooks.Open Filename:= _ "\\buckup1\センタ\データ\連絡をください\シート.xls" Windows("入力.xls").Activate Sheets("管理").Select Sheets("管理").Copy Before:=Workbooks("シート.xls").Sheets(1) End Sub 上記はマクロの自動記録で行ったものですが、このマクロが入ってるbookを名前を変えて保存して(例えば"顧客管理"など)上記を実行すると、上記3行目のbookの名前でないのでエラーが出てきます。上記のbookを名前を変えて保存すると3行目の部分もそれに合わせて自動で変わるように(入力→顧客管理)出来ますでしょうか。
- ベストアンサー
- オフィス系ソフト
- Bookの更新マクロ
現在、D:¥たかし\撤回18年.xlsで10シ-トほどがひとつになったBook(撤回18年)でデ-タの入力作業をしているのですが、年度が変わるために初期画面上に更新マクロボタンを作り、デ-タが入力されたシ-ト(入力シ-ト)内容をクリアして、同じフォルダ(たかし)内に別のBook名(撤回19年)が出来るマクロを考えているのですが、うまくいきません。 Sub 更新() ' ' デ-タ入力内容を消去 Sheets("入力シ-ト").Select Range("B3:T65536").Select Selection.ClearContents Worksheets("初期画面").Activate Range("A1").Select ’更新後の新しいブック(ファイル)の作成 Workbooks.Add ActiveWorkbook.SaveAs Filename:="D:\たかし\撤回19年.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False End Sub
- ベストアンサー
- Visual Basic
お礼
何度も何度もありがとうございました。 本当に親切にして頂いて感激です。 設計して頂いたコードを使わせて頂きます。 m(_ _)m