Excel VBA質問箱 IV

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

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


12699 / 13646 ツリー ←次へ | 前へ→

【8965】ScreenUpdatingについて もとみ 03/11/12(水) 11:15 質問
【8966】Re:ScreenUpdatingについて INA 03/11/12(水) 11:22 回答
【8969】Re:ScreenUpdatingについて もとみ 03/11/12(水) 11:39 発言
【9002】Re:ScreenUpdatingについて しのしの 03/11/14(金) 13:01 回答
【9070】Re:ScreenUpdatingについて もとみ 03/11/17(月) 16:00 質問
【9087】Re:ScreenUpdatingについて INA 03/11/18(火) 8:42 回答
【9095】INAさんありがとうございます もとみ 03/11/18(火) 13:10 お礼
【9099】Re:ScreenUpdatingについて しのしの 03/11/18(火) 16:13 回答
【9125】Re:ScreenUpdatingについて もとみ 03/11/19(水) 9:18 お礼

【8965】ScreenUpdatingについて
質問  もとみ  - 03/11/12(水) 11:15 -

引用なし
パスワード
   複数のエクセルファイルを開いて作業するのですが、
画面上は表示させたくないので

  Application.ScreenUpdating = False
  
  ' ファイルのオープン
  OpenFile1 = Sheet1.TextBox1.Value      ' ファイルのフルパス取得
  Workbooks.Open OpenFile1          ' ファイルオープン
  ActiveWindow.Visible = False        ' 非表示にする
  ' ファイルのオープン
  OpenFile2 = Sheet1.TextBox1.Value      ' ファイルのフルパス取得
  Workbooks.Open OpenFile2          ' ファイルオープン
  ActiveWindow.Visible = False        ' 非表示にする

  Application.ScreenUpdating = True

と記述しました
ファイルをオープンした時点で画面に表示されてしまいます。
ファイルサイズが1000KBを超えるものなのですが、
出来ますでしょうか?

【8966】Re:ScreenUpdatingについて
回答  INA  - 03/11/12(水) 11:22 -

引用なし
パスワード
   >  Application.ScreenUpdating = False
>  
>  ' ファイルのオープン
>  OpenFile1 = Sheet1.TextBox1.Value      ' ファイルのフルパス取得
>  Workbooks.Open OpenFile1          ' ファイルオープン

     ↑
 ここで画面にオープンしたブックが表示されてしまうのでしょうか・・?

【8969】Re:ScreenUpdatingについて
発言  もとみ  - 03/11/12(水) 11:39 -

引用なし
パスワード
   ▼INA さん:
>>  Application.ScreenUpdating = False
>>  
>>  ' ファイルのオープン
>>  OpenFile1 = Sheet1.TextBox1.Value      ' ファイルのフルパス取得
>>  Workbooks.Open OpenFile1          ' ファイルオープン
>
>     ↑
> ここで画面にオープンしたブックが表示されてしまうのでしょうか・・?

その通りです。
画面の左下に『開いています・・・』の文字が表示されている間、
ブックが見えてしまうのです。

【9002】Re:ScreenUpdatingについて
回答  しのしの  - 03/11/14(金) 13:01 -

引用なし
パスワード
   今Excelが手元にないので、いい加減ですが、

提案1 GetObject関数で取得
Sub dd()
  Dim f As Excel.Workbook
  Set f = GetObject(OpenFile1)
End Sub
取得したブックfは非表示となるはず。詳しくはヘルプを見てください。

提案2 isAddinプロパティを利用(非現実的か?)
あらかじめ、開くブックのISAddinプロパティをtrueにしておくと、
非表示で開かれるはずです。


PS
質問とかけはなれているのですが。
>  OpenFile1 = Sheet1.TextBox1.Value      ' ファイルのフルパス取得
>  OpenFile2 = Sheet1.TextBox1.Value      ' ファイルのフルパス取得
で同じコントロール値を参照にしていて、2つめ開くときに、エラーになりませんか?
(それともこの間に他の処理が入っているのかな?)

新しいブックを開いていて
>  OpenFile2 = Sheet1.TextBox1.Value
Sheet1オブジェクトは、ご希望とおりのシートオブジェクトを参照している?

【9070】Re:ScreenUpdatingについて
質問  もとみ  - 03/11/17(月) 16:00 -

引用なし
パスワード
   ▼しのしの さん:
>今Excelが手元にないので、いい加減ですが、
>
>提案1 GetObject関数で取得
>Sub dd()
>  Dim f As Excel.Workbook
>  Set f = GetObject(OpenFile1)
>End Sub
>取得したブックfは非表示となるはず。詳しくはヘルプを見てください。

 ↑
この方法でやってみました。確かに出来るのですが、
この非表示にしたファイルのファイル名を取得したい場合には
どうしたらよいのでしょうか?

>PS
>質問とかけはなれているのですが。
>>  OpenFile1 = Sheet1.TextBox1.Value      ' ファイルのフルパス取得
>>  OpenFile2 = Sheet1.TextBox1.Value      ' ファイルのフルパス取得
>で同じコントロール値を参照にしていて、2つめ開くときに、エラーになりませんか?
>(それともこの間に他の処理が入っているのかな?)
>
>新しいブックを開いていて
>>  OpenFile2 = Sheet1.TextBox1.Value
>Sheet1オブジェクトは、ご希望とおりのシートオブジェクトを参照している?
  ↑
すみません。書き方が違ってました。
正確には、

Dim OpenFile1 As String       'ファイル1のフルパス
Dim OpenFile2 As String       'ファイル2のフルパス
  
Application.ScreenUpdating = False
  
  OpenFile1 = Sheet1.TextBox1.Value
  Workbooks.Open OpenFile1
  OpenfName1 = ActiveWindow.Caption
  ActiveWindow.Visible = False

  OpenFile2 = Sheet1.TextBox2.Value
  Workbooks.Open OpenFile2
  OpenfName2 = ActiveWindow.Caption
  ActiveWindow.Visible = False

Application.ScreenUpdating = True

となっています。
シートのテキストボックスにあるフルパスを取得して、
ファイルをOPENし、ファイル名を取得して、非表示にしています。

追加の質問になりますが、
Application.ScreenUpdating はエクセルのファイル毎に
指定した方が良いのでしょうか?

【9087】Re:ScreenUpdatingについて
回答  INA  - 03/11/18(火) 8:42 -

引用なし
パスワード
   >Application.ScreenUpdating はエクセルのファイル毎に
>指定した方が良いのでしょうか?
プロシージャ毎にせっていするのが良いと思います。

【9095】INAさんありがとうございます
お礼  もとみ  - 03/11/18(火) 13:10 -

引用なし
パスワード
   今後とも宜しくお願いいたします。

【9099】Re:ScreenUpdatingについて
回答  しのしの  - 03/11/18(火) 16:13 -

引用なし
パスワード
   もとみ さん
>▼しのしの さん:
>>今Excelが手元にないので、いい加減ですが、
>>
>>提案1 GetObject関数で取得
>>Sub dd()
>>  Dim f As Excel.Workbook
>>  Set f = GetObject(OpenFile1)
>>End Sub
>>取得したブックfは非表示となるはず。詳しくはヘルプを見てください。
>
> ↑
>この方法でやってみました。確かに出来るのですが、
>この非表示にしたファイルのファイル名を取得したい場合には
>どうしたらよいのでしょうか?

変数fにOpenしたワークブックオブジェクトが参照されています。
ですから
 f.nameでファイル名が取得できます。

【9125】Re:ScreenUpdatingについて
お礼  もとみ  - 03/11/19(水) 9:18 -

引用なし
パスワード
   しのしのさん、ありがとうございました。
おかげで見栄えが良くなりました。
今後とも質問の際にはよろしくお願いします。m(_ _)m

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