Page 101 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼Activesheetだけを新規BOOKに別名で保存 123 02/9/13(金) 19:01 ┗Re:Activesheetだけを新規BOOKに別名で保存 ichinose 02/9/14(土) 11:01 ┗Re:Activesheetだけを新規BOOKに別名で保存 123 02/9/17(火) 14:20 ┗Re:Activesheetだけを新規BOOKに別名で保存 ichinose 02/9/17(火) 18:37 ┗Re:Activesheetだけを新規BOOKに別名で保存 123 02/9/18(水) 10:27 ┗シートの非表示って・・・ ichinose 02/9/18(水) 12:55 ┗Re:シートの非表示って・・・ 123 02/9/18(水) 13:06 ┗Re:シートの非表示って・・・ ichinose 02/9/18(水) 21:24 ┗コメント間違いの訂正です 123 02/9/18(水) 22:11 ┗ひょっとして・・・ ichinose 02/9/18(水) 22:26 ┗感謝、感謝 123 02/9/19(木) 20:46 ─────────────────────────────────────── ■題名 : Activesheetだけを新規BOOKに別名で保存 ■名前 : 123 ■日付 : 02/9/13(金) 19:01 -------------------------------------------------------------------------
ユーザーフォームを使ってデータを作成し、 その作成したActivesheetだけを 別名で新規BOOKとして 保存したいのです。 また、 ユーザーフォームを使って 沢山のBookから 目的のBOOKを立上げ、ユーザーフォームを使って データの修正を行いたいのです。 また、 ユーザーフォームは どの(開いた)ActiveWorkbook にも使えるように したいのです。(つまりユーザーフォームが独立しているイメージです) 可能でしょうか。 |
▼123 さん: こんにちは。 >ユーザーフォームを使ってデータを作成し、 >その作成したActivesheetだけを 別名で新規BOOKとして >保存したいのです。 これは、こんな感じでどうでしょうか? '======================= Sub test() Dim bk As Workbook Dim retcode As Long retcode = mkbk_from_sht(ActiveSheet, bk, "D:\My Documents\TESTエリア\test.xls") If retcode <> 0 Then MsgBox Error$(retcode) Else MsgBox bk.Name End If End Sub '============================================= Function mkbk_from_sht(sht As Worksheet, bk As Workbook, flnm As String) As Long On Error Resume Next sht.Copy Set bk = ActiveWorkbook bk.SaveAs Filename:=flnm mkbk_from_sht = Err.Number On Error GoTo 0 End Function >また、 >ユーザーフォームを使って 沢山のBookから >目的のBOOKを立上げ、ユーザーフォームを使って >データの修正を行いたいのです。 >また、 >ユーザーフォームは どの(開いた)ActiveWorkbook にも使えるように >したいのです。(つまりユーザーフォームが独立しているイメージです) > >可能でしょうか。 可能だと思いますが、具体的な例がありませんか? |
▼ichinose さん こんにちは。 これまで 皆さんのおかげで、個人データ入力フォームで、 データを入力するものを作ることが出来ました。 (毎月個人の残業時間等のデータ10項目以上を入力するもの) 会社側の新たな要求で、8月分のデータを入力し終えたら 「2002_8月分.xls」というWorkbookで保存し、9月分は 新たに「2002_9月分.xls」というWorkbookを作るとうものです。 作成したユーザーフォームを各事業所へ配布し、各事業所毎に データを入力しなければなりません。 今後、必要に応じてユーザーフォームを修正していくことになると 思いますので、ユーザーフォームがデータの入力されるWorkbookとは 別に独立しているものでなくてはなりません。 とまあ こんな感じなのです。 漠然として分かりにくいですよね。 Activesheetだけを 別名で新規BOOKとして 保存したい件は 大変ありがとうございました。 後半の方は、もう少し自分なりにやってみます。 ひとつだけ、関連で教えていただきたいのですが、 ユーザーフォームのあるBookのsheetを全て非表示に したいのですが、どうしてもできません。 以下のように、 そのBookを開くと 「ファイルを開く」というフォームを開くようにしています。 ThisWorkbook Sub フォーム表示() ファイルを開く.Show End Sub Module1 Private Sub Workbook_Open() フォーム表示 End Sub この「ファイルを開く」というフォームのバックにあるsheetを 非表示にしたいのですが、どうしても最後の1枚が非表示にできません。 非表示はBookを開いたときに行いたいのですが、 どのようにしたらよいのでしょうか。 |
▼123 さん: こんにちは。 >ThisWorkbook Mudule1 >Sub フォーム表示() load ファイルを開く Thisworkbook.Windows(1).Visible=false >ファイルを開く.Show Thisworkbook.Windows(1).Visible=true >End Sub としてはどうでしょうか? >Module1 Thisworkbook ですよね >Private Sub Workbook_Open() >フォーム表示 >End Sub >この「ファイルを開く」というフォームのバックにあるsheetを >非表示にしたいのですが、どうしても最後の1枚が非表示にできません。 >どのようにしたらよいのでしょうか。 シート全部の非表示はできないと思いますよ。 |
▼ichinose さん: こんにちは。 度々すみません。 Module1とThisworkbookを逆にしていました。 それと Module1に以下を記述しましたが、Bookを開くと、 Sheetが開いて、閉じて、フォームが表示されます。 ThisWorkbook.Windows(1).Visible = False の部分は不要でしょうか。 ======================================= Sub フォーム表示() Load ファイルを開く ThisWorkbook.Windows(1).Visible = False ファイルを開く.Show ThisWorkbook.Windows(1).Visible = True End Sub ======================================= >>この「ファイルを開く」というフォームのバックにあるsheetを >>非表示にしたいのですが、どうしても最後の1枚が非表示にできません。 >>どのようにしたらよいのでしょうか。 >シート全部の非表示はできないと思いますよ。 やはりできませんか。 残念残念 |
▼123 さん: こんにちは。 >Sheetが開いて、閉じて、フォームが表示されます。 そのつもり紹介させていただいたんですが、 そもそも全てのシートを非表示にした時って、どのような画面を想定されているんですか? >ThisWorkbook.Windows(1).Visible = False >の部分は不要でしょうか。 私は、↑が一番近い状態かなと思ったものですから・・・。 バックにExcelも見えなくするということでしょうか? >======================================= >Sub フォーム表示() > >Load ファイルを開く >ThisWorkbook.Windows(1).Visible = False >ファイルを開く.Show >ThisWorkbook.Windows(1).Visible = True > >End Sub >======================================= |
▼ichinose さん: こんにちは。 度々ありがとうございます。 >>Sheetが開いて、閉じて、フォームが表示されます。 >そのつもり紹介させていただいたんですが、 >そもそも全てのシートを非表示にした時って、どのような画面を想定されているんですか? >>ThisWorkbook.Windows(1).Visible = False >>の部分は不要でしょうか。 >私は、↑が一番近い状態かなと思ったものですから・・・。 >バックにExcelも見えなくするということでしょうか? 分かりにくくてすみません。 Excelは立ち上がっていて、シートが閉じられていて、フォームだけが 表示されている状態が理想なんです。 そのフォームを使い、毎月CSVファイルのデータを入力あるいは更新していく という感じです。 不可能でしたら、一枚のシートに色をつけてグリッド線を非表示にして 使おうかと思っています。 |
▼123 さん: こんばんは。 >>>Sheetが開いて、閉じて、フォームが表示されます。 >>そのつもり紹介させていただいたんですが、 >>そもそも全てのシートを非表示にした時って、どのような画面を想定されているんですか? >>>ThisWorkbook.Windows(1).Visible = False >>>の部分は不要でしょうか。 >>私は、↑が一番近い状態かなと思ったものですから・・・。 >>バックにExcelも見えなくするということでしょうか? > >分かりにくくてすみません。 >Excelは立ち上がっていて、シートが閉じられていて、フォームだけが >表示されている状態が理想なんです。 一瞬、ブックが見えてしまうのがよくないということでしょうか? 私には、そのくらいしか違いがわからないのですが、 もしそうだとしたら、 http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=one;id=Excel;no=10310 にVbscriptを利用した方法があります。 参考にしてみては? |
▼ichinose さんこんばんは。 以前の私のコメントに間違いがありました。 以下の >>>>Sheetが開いて、閉じて、フォームが表示されます。 のところですが、Sheetが開いて、閉じて、また開いて、 開いたSheetにフォームが表示されます。だったのです。 ということで、私が不要な部分を記述してしまって いるのかと思い、お聞きしました。 混乱させてしまってすみませんでした。 >>>>Sheetが開いて、閉じて、フォームが表示されます。 >>>そのつもり紹介させていただいたんですが、 >>>そもそも全てのシートを非表示にした時って、どのような画面を想定されているんですか? >>>>ThisWorkbook.Windows(1).Visible = False >>>>の部分は不要でしょうか。 >>>私は、↑が一番近い状態かなと思ったものですから・・・。 >>>バックにExcelも見えなくするということでしょうか? >> >>分かりにくくてすみません。 >>Excelは立ち上がっていて、シートが閉じられていて、フォームだけが >>表示されている状態が理想なんです。 >一瞬、ブックが見えてしまうのがよくないということでしょうか? >私には、そのくらいしか違いがわからないのですが、 >もしそうだとしたら、 >http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=one;id=Excel;no=10310 >にVbscriptを利用した方法があります。 >参考にしてみては? |
▼123 さん: こんばんは。 >以前の私のコメントに間違いがありました。 >以下の >>>>>Sheetが開いて、閉じて、フォームが表示されます。 >のところですが、Sheetが開いて、閉じて、また開いて、 >開いたSheetにフォームが表示されます。だったのです。 ユーザーフォームのShowModalプロパティをfalseに設定していませんか? モーダレスで表示しているとすれば、そうなりますね。 その場合は、 Thisworkbookモジュール '==================================================== Private Sub Workbook_Open() フォーム表示 End Sub '標準モジュール '==================================================== Sub フォーム表示() ファイルを開く.Show End Sub 'フォーム(例では、"ファイルを開く"というユーザーフォーム)モジュール '================================================================ Private Sub UserForm_Initialize() ThisWorkbook.Windows(1).Visible = False End Sub '============================================================== Private Sub UserForm_Terminate() ThisWorkbook.Windows(1).Visible = True End Sub '=============================================================== 尚、この例では、このコードを記述してあるブックのみを非表示にしています。 他にブックが開いていて、それも非表示にするは場合は、追加処理が必要です。 |
▼ichinose さん: こんばんは。 出来ました。出来ました。理想のものが出来ました。 お付き合いいただきまして、本当にありがとうございました。 ichinoseさんの書かれたもの そのまま記述しました。 (モードレスにはなっていませんでした) 本当にうれしいです。 今後とも宜しくお願いいたします。 |