2

情報:

Demo.xlsm という名前の Excel ファイルがあります。

このファイルには、ファイルを開くと自動的に読み込まれる UserForm1 という名前のユーザーフォームが含まれています。

ファイルを開くと、Demo.xlsm という名前のワークブックもユーザーフォームの背後に表示されます。

問題:

多くの場合、デスクトップで Excel アプリケーションを既に開いており、日常的に使用する情報を含むさまざまなワークブックやワークシートが含まれています。現状では、Demo.xlsm ファイルを開くと、現在の Excel アプリケーションで、使用している他のすべてのワークブック/ワークシートと共に開きます。

最初: Demo.xlsm ファイルを、他の作品とはまったく別のインスタンス/Excel アプリケーションで自動的に開くようにしたいと考えています。

2番目:ユーザーフォームのみを表示したい。(ワークブック/ワークシートをバックグラウンドで表示する必要はありません/使用しません。)

3 番目: ユーザー フォームを表示したまま、Excel アプリケーションの 2 番目のインスタンスを最小化できる場合、それは完璧です。(現在、Excel アプリケーションの 2 番目のインスタンスを最小化しようとすると、ユーザーフォームも最小化されます)

  Private Sub Workbook_Open()
  Dim objExcel
  Set objExcel = CreateObject("Excel.Application")
  objExcel.Visible = True

  UserForm1.Show

  Application.ScreenUpdating = False
  Set newBook = Workbooks.Open(Demo.xlsm)
  Windows(Demo.xlsm).Visible = False
  Application.ScreenUpdating = True 

  End Sub

私はこれについて正しい方法で進んでいないと感じています...

これについて何か助けていただければ幸いです。

4

4 に答える 4

0

ショートカットを Excel にコピーし、右クリックしてプロパティを選択し、ターゲットの末尾に " - "C:\Demo.xlsm"" を追加します (最初と最後の引用符を除外し、ファイルの実際のファイル パスに置き換えます。

于 2016-03-22T15:48:38.360 に答える
0

あなたWorkbook_Openのために、以下のようなことをしてください。

If Application.Workbooks.Count > 1 Then
    Call Shell(Application.Path & Application.PathSeparator & "excel.exe " & ThisWorkbook.FullName)
    ThisWorkbook.Close SaveChanges:=False
Else
    UserForm1.Show
End If

これをテストしたところ、タスク マネージャーに別の "Excel.exe" があるので、正しいはずです。

于 2013-09-13T01:09:08.893 に答える