Excel VBA質問箱 IV

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

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


1596 / 13645 ツリー ←次へ | 前へ→

【73231】2画面表示 亜矢 12/12/9(日) 14:26 質問[未読]
【73232】Re:2画面表示 ウッシ 12/12/10(月) 9:04 回答[未読]
【73233】Re:2画面表示 亜矢 12/12/10(月) 9:34 質問[未読]
【73234】Re:2画面表示 ウッシ 12/12/10(月) 10:43 回答[未読]
【73235】Re:2画面表示 亜矢 12/12/10(月) 11:01 お礼[未読]
【73236】Re:2画面表示 ウッシ 12/12/10(月) 11:24 回答[未読]
【73237】Re:2画面表示 亜矢 12/12/10(月) 11:28 発言[未読]
【73238】Re:2画面表示 ウッシ 12/12/10(月) 11:46 回答[未読]

【73231】2画面表示
質問  亜矢  - 12/12/9(日) 14:26 -

引用なし
パスワード
   よろしくお願いします。
 エクセルファイルが何個か開いている状態で
Aというブックを開いた時

Aというファイルに下記のプログラム(途中略)
  Workbooks.Open Filename:="C:\B.xlsb"
  Windows.CompareSideBySideWith "B.xlsb"
  Windows.Arrange ArrangeStyle:=xlVertical
 この時’インデックスが有効範囲にありません'とのエラーメッセージが
 でます。
 どのようにしたらよいか教えて頂きたいと思います。
 AのブックとBのブックを並べて表示したいと思います。

【73232】Re:2画面表示
回答  ウッシ  - 12/12/10(月) 9:04 -

引用なし
パスワード
   こんにちは

こんな感じでしょうか?

Private Sub Workbook_Open()
  Dim a As Workbook
  Set a = ThisWorkbook
  Workbooks.Open Filename:="C:\B.xls"
  Windows.CompareSideBySideWith a.Name
  Windows.Arrange ArrangeStyle:=xlVertical
  a.Activate
End Sub


▼亜矢 さん:
>よろしくお願いします。
> エクセルファイルが何個か開いている状態で
>Aというブックを開いた時
>
>Aというファイルに下記のプログラム(途中略)
>  Workbooks.Open Filename:="C:\B.xlsb"
>  Windows.CompareSideBySideWith "B.xlsb"
>  Windows.Arrange ArrangeStyle:=xlVertical
> この時’インデックスが有効範囲にありません'とのエラーメッセージが
> でます。
> どのようにしたらよいか教えて頂きたいと思います。
> AのブックとBのブックを並べて表示したいと思います。

【73233】Re:2画面表示
質問  亜矢  - 12/12/10(月) 9:34 -

引用なし
パスワード
   ▼ウッシ さん:
>こんにちは
>
>こんな感じでしょうか?
>
>Private Sub Workbook_Open()
>  Dim a As Workbook
>  Set a = ThisWorkbook
>  Workbooks.Open Filename:="C:\B.xls"
>  Windows.CompareSideBySideWith a.Name
>  Windows.Arrange ArrangeStyle:=xlVertical
>  a.Activate
>End Sub
早速のアドバイスありがとうございます。上記で試してみましたが
aだけが表示されて2画面になりませんでした。
 よろしくお願いします。

【73234】Re:2画面表示
回答  ウッシ  - 12/12/10(月) 10:43 -

引用なし
パスワード
   なんかうまく行かないですね。

Private Sub Workbook_Open()
  Workbooks.Open Filename:="C:\B.xls"
  Windows.Arrange _
    ArrangeStyle:=xlArrangeStyleVertical, _
    ActiveWorkbook:=False, SyncVertical:=True
  Windows.CompareSideBySideWith ThisWorkbook.Name
End Sub

こうするとどうでしょうか?

【73235】Re:2画面表示
お礼  亜矢  - 12/12/10(月) 11:01 -

引用なし
パスワード
   ▼ウッシ さん:
>なんかうまく行かないですね。
>
>Private Sub Workbook_Open()
>  Workbooks.Open Filename:="C:\B.xls"
>  Windows.Arrange _
>    ArrangeStyle:=xlArrangeStyleVertical, _
>    ActiveWorkbook:=False, SyncVertical:=True
>  Windows.CompareSideBySideWith ThisWorkbook.Name
>End Sub
>
>こうするとどうでしょうか?
いろいろありがとうございます。下記プログラムでうまくいきました。
  Workbooks.Open Filename:="C:\B.xls"
  Workbooks("B.xls").Activate
  Application.Windows.CompareSideBySideWith "B.xls"
  Application.Windows.Arrange ArrangeStyle:=xlVertical,      SyncHorizontal:=False, SyncVertical:=False
  Workbooks("B.xls").Activate
Windowsの前にApplicationを付ける
 お手数をお掛けしました。

【73236】Re:2画面表示
回答  ウッシ  - 12/12/10(月) 11:24 -

引用なし
パスワード
   >いろいろありがとうございます。下記プログラムでうまくいきました。
>  Workbooks.Open Filename:="C:\B.xls"
>  Workbooks("B.xls").Activate
>  Application.Windows.CompareSideBySideWith "B.xls"
>  Application.Windows.Arrange ArrangeStyle:=xlVertical,      SyncHorizontal:=False, SyncVertical:=False
>  Workbooks("B.xls").Activate
>Windowsの前にApplicationを付ける

それでは、
「エクセルファイルが何個か開いている状態でAというブックを開いた時」
にうまく行かないのでは?

【73237】Re:2画面表示
発言  亜矢  - 12/12/10(月) 11:28 -

引用なし
パスワード
   ▼ウッシ さん:
>>いろいろありがとうございます。下記プログラムでうまくいきました。
>>  Workbooks.Open Filename:="C:\B.xls"
>>  Workbooks("B.xls").Activate
>>  Application.Windows.CompareSideBySideWith "B.xls"
>>  Application.Windows.Arrange ArrangeStyle:=xlVertical,      SyncHorizontal:=False, SyncVertical:=False
>>  Workbooks("B.xls").Activate
>>Windowsの前にApplicationを付ける
>
>それでは、
>「エクセルファイルが何個か開いている状態でAというブックを開いた時」
>にうまく行かないのでは?
上のプログラムの前に下記を挿入しています。
  For i = 1 To Workbooks.Count
   If StrComp("発注書", Left(Workbooks(i).Name, 3), 1) <> 0 Then
    Workbooks(i).Windows(1).WindowState = xlMinimized
   End If
  Next

【73238】Re:2画面表示
回答  ウッシ  - 12/12/10(月) 11:46 -

引用なし
パスワード
   >上のプログラムの前に下記を挿入しています。
>  For i = 1 To Workbooks.Count
>   If StrComp("発注書", Left(Workbooks(i).Name, 3), 1) <> 0 Then
>    Workbooks(i).Windows(1).WindowState = xlMinimized
>   End If
>  Next

そうですか。

73234のコードだとそれも不要になると思うのですが、
そのままでうまく行っているのであればそれでいいですね。
どちらにしても最大化はAというブックを閉じるときとかに必要ですし。

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