[[20150730221207]] 『EXCEL/ユーザーフォーム、コンボボックスのデータ』(シー・パイロット) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『EXCEL/ユーザーフォーム、コンボボックスのデータを別のBOOKより取得することができますか。』(シー・パイロット)

 初めて質問いたします。
 私は船会社でEXCELを使用して書類を作っております。
 1枚のEXCEL BOOKにデータシート("VESSEL")および入力シートを用意し、ユーザーフォームを使用しデータを取り込み、データを転記します。
 その際入力シートのユーザーフォームにコンボボックス及びテキストボックスを配置し、下記のプログラムをセットしました。
 
Private Sub UserForm_Initialize()
'==============================================
' [コントロールボックス]にデータを返す。
'==============================================
 
   cboVessel.RowSource = "Vessel!A2:A" & Worksheets("Vessel").Range("A" & Rows.Count) _
    .End(xlUp).Row
 
End Sub
 
Private Sub cboVessel_Change()
    On Error Resume Next

    '==============================================
    ' [本船明細]を選択する。
    '==============================================

        txtCallSign = ClearContents
        txtCallSign.Text = Application.WorksheetFunction.VLookup(cboVessel.Text, _
        Worksheets("Vessel").Range("A2:I100"), 3, False)         ' コールサイン

        txtGT = ClearContents
        txtGT.Text = Application.WorksheetFunction.VLookup(cboVessel.Text, _
        Worksheets("Vessel").Range("A2:I100"), 6, False)         ' 総トン数

        txtNT = ClearContents
        txtNT.Text = Application.WorksheetFunction.VLookup(cboVessel.Text, _
        Worksheets("Vessel").Range("A2:I100"), 7, False)         ' 純トン数

        txtDWT = ClearContents
        txtDWT.Text = Application.WorksheetFunction.VLookup(cboVessel.Text, _
        Worksheets("Vessel").Range("A2:I100"), 9, False)         ' 載貨重量トン数
End Sub
 
 同一のBOOK内であればデータを転記できます。
 ところが用途に応じて複数のBOOKを用意する必要があり、それぞれのBOOKに必ずデータシートおよび入力シートを用意しなければならず、
 できればデータシート専用のBOOKを1個だけ用意し、別の複数のBOOKの入力シートそれぞれのユーザーフォームにコンボボックス及びテキストボックスを配置し、
 1つのデータシート専用のBOOKからすべての入力シートにデータを取り込むことは可能でしょうか。

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 一言で言ってしまえば、やりたいことが理解できません。
 一つのデータシートに対して、このシートのデータ処理を行うユーザーフォームがあるのですよね!!
 このユーザーフォームの動作は出来ているのですね?

 これを 一つのデータシートに対して(仮にAブックのVesselシート)、他の複数のブックに
 AブックのVesselシートを処理するユーザーフォームを持たせたい

 ということだと思いますが、この意味がわかりません。

 データシートが一つなら、それを処理するユーザーフォームも一つで良いと思います。
 何故、複数のブックそれぞれにこのユーザーフォームを持たせなければならないのか?

 まったくもって わかりません。

 それなら、Aブックにあるユーザーフォームを他のブックから表示させることができればよいですよね?
 これは、出来ます。

 まず、仕様を理解させてください

(ichinose) 2015/07/30(木) 23:57


 ichinoseさんからも指摘がありますが、回答側で誤解をして無駄な時間を使ってしまうことを避けるためにも
 複数のブックでの処理要件(仕様)を明確にしましょう。

 1.まず、データブックというのが、本船明細シートがあるブックだとは思いますが、念のためそれを明確にしましょう。
 2.で、そのデータブックが、このマクロブックなのか、それとは別に存在するブックなのかも明確にしましょう。
 3.複数の入力ブックですけど、ここに転記するんですよね。もちろん、各ブックのレイアウトは完全に同じということも
   明確にしましょう。
 4.コードでは、テキストボックス(かな?)にデータを取り込むところはアップされていますが、実際に
   入力シートに転記するところは記載されていませんね。そこもアップされると、よりイメージが明確になると思います。
 5.何より重要なのは、これら複数の入力ブックが、実行時、すでにエクセル区画で開かれているのかどうか。
   また、複数のブックが開かれている状態で1つ選択するのか、そうではなく、対象の入力ブックを1つだけ開いて処理するのか?
   開く操作は、マクロ実行前に、手作業で行うのか、マクロ内で、ファイル選択ダイアログを表示して選ばせて開くのか。
   そういったことも、明確にしてください。

(β) 2015/07/31(金) 06:10


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.