Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4530 / 13644 ツリー ←次へ | 前へ→

【56054】ユーザーフォームがアクティブの状態と同時に別ファイル操作 savex 08/5/30(金) 16:46 質問[未読]
【56055】Re:ユーザーフォームがアクティブの状態と... Jaka 08/5/30(金) 17:12 発言[未読]
【56056】Re:ユーザーフォームがアクティブの状態と... savex 08/5/30(金) 17:22 発言[未読]
【56058】Re:ユーザーフォームがアクティブの状態と... Yuki 08/5/31(土) 8:01 発言[未読]
【56102】Re:ユーザーフォームがアクティブの状態と... savex 08/6/2(月) 8:31 お礼[未読]

【56054】ユーザーフォームがアクティブの状態と同...
質問  savex  - 08/5/30(金) 16:46 -

引用なし
パスワード
   質問させていただきます。

基本的に、ユーザーフォームにより操作を行うExcelファイル(仮名:Tool.xls)から
別ファイル(仮名:Out.xls)を開いたとします。
この時、同時に2つのファイルを操作したいのですが、
Tool.xlsはユーザーフォームにより操作を行っているため、
Tool.xlsが起動している間は、起動したファイル(Out.xls)の操作ができません。

ユーザーフォームにより操作を行っているファイルと同時に他のExcelファイルの操作を行う方法はないでしょうか。
尚、ユーザーフォームは基本モーダル表示のみとします。
(モーダル表示をしている場合は、他の操作はできませんよね。。)
(そこをなんとかなりませんでしょうか。;;)

どなたかお知恵をお貸し下さい。
宜しくお願い致します。


開発環境
*Windows XP
*Microsoft Office 2000

【56055】Re:ユーザーフォームがアクティブの状態...
発言  Jaka  - 08/5/30(金) 17:12 -

引用なし
パスワード
   意味がちょっと解ってないけど、

WorkBooks("ブック名").Sheets("シート名").Range("A1")
と、明確にブック、シート名を指定してやれば他のブックも操作できますけど。

Dim WB as workbook
set WB = Workbooks.Open(XXXXXX)

ってやれば、
WB.Sheets("Sheet1").range("A1")

ともできますが。
こういうのじゃない?

【56056】Re:ユーザーフォームがアクティブの状態...
発言  savex  - 08/5/30(金) 17:22 -

引用なし
パスワード
   お返事ありがとうございます。

申し訳ございません。
詳細の記載不足でした。

別ファイル操作というのは、手動によりExcelシートへ入力したり、
印刷したりすることを指します。

宜しくお願い致します。

【56058】Re:ユーザーフォームがアクティブの状態...
発言  Yuki  - 08/5/31(土) 8:01 -

引用なし
パスワード
   ▼savex さん:
こんにちは。
>
>別ファイル操作というのは、手動によりExcelシートへ入力したり、
>印刷したりすることを指します。

別インスタンスのApplicationを作成して
そこから開けばいいと思います。
但し、自分のブックは編集できませんよ。


Private xlApp  As Application

Private Sub CommandButton1_Click()
  Dim strFname  As String
  strFname = Application.GetOpenFilename
  If strFname = "False" Then Exit Sub
  If xlApp Is Nothing Then
    Set xlApp = New Application
    xlApp.Visible = True
  End If
  xlApp.Workbooks.Open strFname
End Sub

【56102】Re:ユーザーフォームがアクティブの状態...
お礼  savex  - 08/6/2(月) 8:31 -

引用なし
パスワード
   おはようございます。
返信が遅くなり大変申し訳ございません!


>別インスタンスのApplicationを作成して
>そこから開けばいいと思います。
>但し、自分のブックは編集できませんよ。


>例
>Private xlApp  As Application
>
>Private Sub CommandButton1_Click()
>  Dim strFname  As String
>  strFname = Application.GetOpenFilename
>  If strFname = "False" Then Exit Sub
>  If xlApp Is Nothing Then
>    Set xlApp = New Application
>    xlApp.Visible = True
>  End If
>  xlApp.Workbooks.Open strFname
>End Sub

上記のサンプルコードを試してみたところ、
私のイメージ通りの動きが実現できました!
また、自分のブックが操作できないということでしたが、
画面下のタスクバーをクリックし、
自分のブックをアクティブにすると操作は可能でした。

サンプルコードの内部をもう一度確認し、自分のものにしたいと思います。

とても助かりました。
ありがとうございました!

4530 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free